From: W.C.A. Wijngaards Date: Wed, 8 Sep 2021 12:38:36 +0000 (+0200) Subject: Merge branch 'feature/configure-outbound_msg_retry' of git://github.com/countsudoku... X-Git-Tag: release-1.14.0rc1~51^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=204edd229e1430dec42979fdfbbc52f89de5e234;p=thirdparty%2Funbound.git Merge branch 'feature/configure-outbound_msg_retry' of git://github.com/countsudoku/unbound into countsudoku-feature/configure-outbound_msg_retry --- 204edd229e1430dec42979fdfbbc52f89de5e234 diff --cc doc/Changelog index e0610e957,a998119c8..dbd5dcfe0 --- a/doc/Changelog +++ b/doc/Changelog @@@ -1,1720 -1,5 +1,1724 @@@ -12 June 2019: Moritz Schneider - - made outbound-msg-retry configurable ++8 September 2021: Wouter ++ - Merged #41 from Moritz Schneider: made outbound-msg-retry ++ configurable. ++ +3 September 2021: Wouter + - Fix #538: Fix subnetcache statistics. + +1 September 2021: Wouter + - Fix tcp fastopen failure when disabled, try normal connect instead. + +27 August 2021: Wouter + - Fix #533: Negative responses get cached even when setting + cache-max-negative-ttl: 1 + +25 August 2021: Wouter + - Merge #401: RPZ triggers. This add additional RPZ triggers, + unbound supports a full set of rpz triggers, and this now + includes nsdname, nsip and clientip triggers. Also actions + are fully supported, and this now includes the tcp-only action. + - Fix #536: error: RPZ: name of record (drop.spamhaus.org.rpz.local.) + to insert into RPZ. + - Fix the stream wait stream_wait_count_lock and http2 buffer locks + setup and desetup from race condition. + - Fix RPZ locks. Do not unlock zones lock if requested and rpz find + zone does not find the zone. Readlock the clientip that is found + for ipbased triggers. Unlock the nsdname zone lock when done. + Unlock zone and ip in rpz nsip and nsdname callback. Unlock + authzone and localzone if clientip found in rpz worker call. + - Fix compile warning in libunbound for listen desetup routine. + - Fix asynclook unit test for setup of lockchecks before log. + +20 August 2021: Wouter + - Fix #529: Fix: log_assert does nothing if UNBOUND_DEBUG is + undefined. + - Fix #531: Fix: passed to proc after free. + +17 August 2021: Wouter + - Fix that --with-ssl can use "/usr/include/openssl11" to pass the + location of a different openssl version. + - Fix #527: not sending quad9 cert to syslog (and may be more). + - Fix sed script in ssldir split handling. + +16 August 2021: George + - Merge PR #528 from fobser: Make sldns_str2wire_svcparam_buf() + static. + +16 August 2021: Wouter + - Fix to support harden-algo-downgrade for ZONEMD dnssec checks. + +13 August 2021: Wouter + - Support using system-wide crypto policies. + - Fix for #431: Squelch permission denied errors for udp connect, + and udp send, they are visible at higher verbosity settings. + - Fix zonemd verification of key that is not in DNS but in the zone + and needs a chain of trust. + - zonemd, fix order of bogus printout string manipulation. + +12 August 2021: George + - Merge PR #514, from ziollek: Docker environment for run tests. + - For #514: generate configure. + +12 August 2021: Wouter + - And 1.13.2rc1 became the 1.13.2 with the fix for the python module + build. The current code repository continues with version 1.13.3. + - Add test tool readzone to .gitignore. + - Merge #521: Update mini_event.c. + - Merge #523: fix: free() call more than once with the same pointer. + - Merge #519: Support for selective enabling tcp-upstream for + stub/forward zones. + - For #519: note stub-tcp-upstream and forward-tcp-upstream in + the example configuration file. + - For #519: yacc and lex. And fix python bindings, and test program + unbound-dnstap-socket. + - For #519: fix comments for doxygen. + - Fix to print error from unbound-anchor for writing to the key + file, also when not verbose. + +5 August 2021: Wouter + - Tag for 1.13.2rc1 release. + - Fix #520: Unbound 1.13.2rc1 fails to build python module. + +4 August 2021: George + - Merge PR #415 from sibeream: Use + /proc/sys/net/ipv4/ip_local_port_range to determine available outgoing + ports. (New --enable-linux-ip-local-port-range configuration option) + - Bump MAX_RESTART_COUNT to 11 from 8; in relation to #438. This + allows longer CNAME chains in Unbound. + +4 August 2021: Wouter + - In unit test use openssl set security level to allow keys in test. + - Fix static analysis warnings about localzone locks that are unused. + - Fix missing locks in zonemd unit test. + - Fix readzone compile under debug config. + - Fix out of sourcedir run of zonemd unit tests. + - Fix libnettle zonemd unit test. + - Fix unit test zonemd_reload for use in run_vm. + +3 August 2021: George + - Listen to read or write events after the SSL handshake. + Sticky events on windows would stick on read when write was needed. + +3 August 2021: Wouter + - Merge PR #517 from dyunwei: #420 breaks the mesh reply list + function that need to reuse the dns answer. + - Annotate assertion into error printout; we think it may be an + error, but the situation looks harmless. + - Fix sign comparison warning on FreeBSD. + +2 August 2021: Wouter + - Prepare for OpenSSL 3.0.0 provider API usage, move the sldns + keyraw functions to produce EVP_PKEY results. + - Move RSA and DSA to use OpenSSL 3.0.0 API. + - Move ECDSA functions to use OpenSSL 3.0.0 API. + - iana portlist update. + - Fix verbose printout failure in tcp reuse unit test. + +30 July 2021: Wouter + - Fix #515: Compilation against openssl 3.0.0 beta2 is failing to + build unbound. + - For #515: Fix compilation with openssl 3.0.0 beta2, lib64 dir and + SSL_get_peer_certificate. + - Move acx_nlnetlabs.m4 to version 41, with lib64 openssl dir check. + +26 July 2021: George + - Merge #513: Stream reuse, attempt to fix #411, #439, #469. This + introduces a couple of fixes for the stream reuse functionality + that could result in broken internal structures. + +26 July 2021: Wouter + - Merge #512: unbound.service.in: upgrade hardening to latest + standards. + - Fix readzone unknown type print for memory resize. + +21 July 2021: Wouter + - Fix that ldns_zone_new_frm_fp_l counts the line number for an empty + line after a comment. + +16 July 2021: George + - Introduce 'http-user-agent:' and 'hide-http-user-agent:' options. + +16 July 2021: Wouter + - Merge #510 from ndptech: Don't call a function which hasn't been + defined. + - Fix for #510: in depth, use ifdefs for windows api event calls. + - Fix spelling in doc/unbound.doxygen comment. + - Fix spelling in localzone.h comment. + - Fix unbound-control local_data and local_datas to print detailed + syntax errors. + - review fix to remove duplicate error printout. + - Insert header into testcode/readzone.c, it was missing. + - Fix from lint for ignored return value. + - Fix for older parsers for function call in serve expired get cached. + +6 July 2021: Wouter + - iana portlist update. + +5 July 2021: George + - Fix compiler warnings for #491. + - Fix clang-analysis warnings for testcode/readzone.c. + +4 July 2021: George + - Fix Wunused-result compile warnings. + +2 July 2021: Tom + - Merge PR #491: Add SVCB and HTTPS types and handling according to + draft-ietf-dnsop-svcb-https. + +2 July 2021: Wouter + - Fix #506: Python Module Seems to Leak Memory if it Experiences an + Unhandled Exception. + +25 June 2021: Wouter + - Fix up permissions on rpl data file in tests. + - Fix testbound newline treatment in moment_read and tempfile write. + - Fix configure grep for reuseport default for failure. + - Fix compat ctime_r return value + - Fix configure does not require pkg-config if not needed. + - Fix unit test in the ctime_r calls for autotrust and in testbound. + - Fix auth zone download on windows to unlink before rename. + +24 June 2021: Wouter + - Add analyzer and port compile github workflow. + +23 June 2021: Wouter + - Fix #503: DNS over HTTPS response truncated. + - Fix warnings reported by the gcc analyzer. + +21 June 2021: George + - Fix #495: Documentation or implementation of "verbosity" option. + +18 June 2021: Wouter + - Fix a number of warnings reported by the gcc analyzer. + +15 June 2021: George + - Merge #440 by kimheino: Various fixes to contrib/unbound_munin_ file. + +14 June 2021: Wouter + - Fix configure nonblocking test and onmingw test to use host. + +10 June 2021: Wouter + - Fix #500: SPEC file in version 1.13.1 references version 1.4; + unable to build RPM from source. + - Fix contrib/unbound.spec, fixed url and comment. + +9 June 2021: George + - Merge #486 by fobster: Make VAL_MAX_RESTART_COUNT configurable. + - Generated lexer and parser for #486; updated example.conf. + - Fix #413 (based on patch by k-ronny): unbound: does not compile + on macOS 11.1-x86_64 host. + - Use host_os instead of target_os in configure for Darwin8 build. + +8 June 2021: George + - Fix unused variable warning when compiling with --enable-dnstap. + +7 June 2021: George + - Merge #448 from shoeper: Update unbound-control.8.in, fix + rpz_disable typo. + - Fix #425: Document auth-zone supports communication with DNS + primary on nondefault port. + +1 June 2021: George + - Fix test for zonemd-check option. + +27 May 2021: Wouter + - Merge #496 from banburybill: Use build system endianness if + available, otherwise try to work it out. + - zonemd-check: yesno option, default no, enables the processing + of ZONEMD records for that zone. + +25 May 2021: Wouter + - Move the NSEC3 max iterations count in line with the 150 value + used by BIND, Knot and PowerDNS. This sets the default value + for it in the configuration to 150 for all key sizes. + - Fix #492: module-config respip missing in unbound.conf.5.in man + page. Merges #494 from he32. + - For #492: Fix font highlighting for the man page on emacs. + +21 May 2021: Wouter + - Test code has -q option for quiet output. + +19 May 2021: George + - Fix for #411, #439, #469: Reset the DNS message ID when moving queries + between TCP streams. + - Refactor for uniform way to produce random DNS message IDs. + +17 May 2021: Wouter + - Fix #489: Compile using MSYS2 MinGW 64-bit. + +12 May 2021: Wouter + - Fix that auth-zone zonefiles use last TTL if no TTL is specified. + +10 May 2021: Wouter + - Merge PR #487: ifdef RLIMIT_AS in recently added check. + +7 May 2021: Wouter + - Fix #485: Unbound occasionally reports broken stats. + - Add ./configure --with-deprecate-rsa-1024 that turns off RSA 1024. + - Remove case fallthrough from deprecate-rsa-1024 code. + +4 May 2021: George + - Fix for #367: only attempt to get the interface for queries that are no + longer on the tcp_waiting_list. + - Add more logging for out-of-memory cases. + +4 May 2021: Wouter + - Merge #478: Allow configuration of TCP timeout while waiting for + response. + - Fix to squelch tcp socket bind failures when the interface is gone. + - Rerun flex and bison. + +3 May 2021: Wouter + - Fix #481: Fix comment in configuration file. + +29 April 2021: Wouter + - Add that log-servfail prints an IP address and more information + about one of the last failures for that query. + +28 April 2021: George + - Fix compiler warning for signed/unsigned comparison for + max_reuse_tcp_queries. + +28 April 2021: Wouter + - Fix #474: always_null and others inside view. + +26 April 2021: Wouter + - Merge #470 from edevil: Allow configuration of persistent TCP + connections. + +22 April 2021: Wouter + - Merge #466 from FGasper: Support OpenSSLs that lack + SSL_get0_alpn_selected. + - Fix #468: OpenSSL 1.0.1 can no longer build Unbound. + - Further fix for #468: detect SSL_CTX_set_alpn_protos for build with + OpenSSL 1.0.1. + - Fix that testcode dohclient has OpenSSL initialisation calls. + +13 April 2021: George + - Fix documentation comment for files previously residing in checkconf/. + - Remove unused functions worker_handle_reply and libworker_handle_reply. + +13 April 2021: Wouter + - Fix that nxdomain synthesis does not happen above the stub or + forward definition. + +12 April 2021: George + - Fix (increase) verbosity level for iterator error log in + processQueryTargets(). + +12 April 2021: Wouter + - Fix permission denied sendto log, squelch the log messages + unless high verbosity is set. + +9 April 2021: Wouter + - rebuild configure to set EXTRALINK to libunbound.la for #460. + +7 April 2021: Wouter + - Fix for #411: Depth protect for crash on deleted element timeout. + +1 April 2021: Wouter + - Merge #460 from orbea: build: Link with the libtool archive. + - Fix to stop IPv6 PMTU discovery. + +31 March 2021: George + - Clean makedist.sh. + +31 March 2021: Wouter + - Fix stack-protector change to not override other CFLAGS options. + +30 March 2021: George + - Disable the use of stack-protector for cross compiled 32-bit windows + builds; relates to #444. + +25 March 2021: Wouter + - Fix #429: Also fix end of transfer for http download of auth zones. + +24 March 2021: Wouter + - Fix deprecation test to work for iOS TVOS and WatchOS, it uses + CFLAGS and CPPFLAGS and also checks if the item is unavailable. + - Travis, fix script to fail when tasks fail. + - Travis, fix warning in ubsan compile. + - Fix configure Targetconfiditionals.h header check, to use compile. + - Fix that cachedb does not produce empty object files when disabled. + +23 March 2021: Wouter + - Travis enable all tests again. Clang analyzer only a couple times, + when there is a difference. homebrew updates disabled, so it does + not hang. removed trailing slashes from configure paths. Moved iOS + tests to allow-failure. + - travis, analyzer disabled on test without debug, that does not + run anway. Turn off failing tests except one. Update iOS test + to xcode image 12.2. + +22 March 2021: George + - Fix unused-function warning when compiling with --enable-dnscrypt. + - Fix for #367: fix memory leak when cannot bind to listening port. + - Reformat pythonmod/pythonmod_utils.{c,h}. + +22 March 2021: Wouter + - Merge #449 from orbea: build: Add missing linker flags. + - iana portlist update. + - Comment out nonworking OSX and IOS travis tests, vm fails to start. + - Fix compile error in listen_dnsport on Android. + - Fix memory leak reported by asan in rpz SOA record query name. + +19 March 2021: Wouter + - Fix for #447: squelch connection refused tcp connection failures + from the log, unless verbosity is high. + +17 March 2021: Wouter + - Fix #441: Minimal NSEC range not accepted for top level domains. + +11 March 2021: Wouter + - Fix parse of LOC RR type for decimetres. + +5 March 2021: Wouter + - Workaround for #439: prevent loops in the reuse rbtree. + - Debug output for #411 and #439: printout internal error and details. + +4 March 2021: Wouter + - iana portlist update. + - Fix spurious errors about "Could not generate request: out of + memory". The mesh detect cycle routine no longer wrongly stops + the check when the calling mesh state is unique. + +26 February 2021: George + - Fix for #367: rc_ports don't have ub_sock; skip cleaning up. + +26 February 2021: Wouter + - Fix: Resolve interface names on control-interface too. + +25 February 2021: Wouter + - Merge PR #367 : DNSTAP log local address. With code from PR #365 + and fixes #368 : dnstap does not log the DNS message ID for + FORWARDER_QUERY. + - Fix to allow rpz with wildcard that applies to all TLDs at once. + +24 February 2021: George + - Fix #384: (1) A minor request to improve the log (2) A minor bug in one + log message. + - ipsecmod: Better logging for detecting a cycle when attaching the + A/AAAA subquery. + +24 February 2021: Wouter + - On startup of unbound it checks if rlimits on memory size look + sufficient for the configured cache size, and logs warning if not. + - Fix function documentation. + - Fix unit test for added ulimit checks. + - spelling fix in header. + +23 February 2021: Wouter + - Fix for zonemd, that domain-insecure zones work without dnssec. + - Fix for zonemd, do not reject insecure result from trust anchor + validation step in dnssec chain of trust. + +22 February 2021: Wouter + - Fix #431: Squelch permission denied errors for tcp connect + and udp connect from the logs, unless at high verbosity. + - Fix for zonemd, that nxdomain for the chain of trust is allowed + for island zones, it is treated as an insecure zone for verification. + +18 February 2021: Wouter + - Merge PR #317: ZONEMD Zone Verification, with RFC 8976 support. + ZONEMD records are checked for zones loaded as auth-zone, + with DNSSEC if available. There is an added option + zonemd-permissive-mode that makes it log but not fail wrong zones. + With zonemd-reject-absence for an auth-zone the presence of a + zonemd can be mandated for specific zones. + - Fix doxygen and pydoc warnings. + - Fix #429: rpz: url: with https: broken (regression in 1.13.1). + - rpz skip nsec3param records, and nicer log for unsupported actions. + +15 February 2021: Wouter + - Fix #422: IPv6 fallback issues when IPv6 is not properly + enabled/configured. + - Fix to make tests work with support indicators set for iterator. + - Fix build on Python 3.10. + +10 February 2021: Wouter + - Merge PR #420 from dyunwei: DOH not responsing with + "http2_query_read_done failure" logged. + +9 February 2021: Wouter + - Fix for Python 3.9, no longer use deprecated functions of + PyEval_CallObject (now PyObject_Call), PyEval_InitThreads (now + none), PyParser_SimpleParseFile (now Py_CompileString). + +4 February 2021: Wouter + - release 1.13.1rc2 tag on branch-1.13.1 with added changes of 2 feb. + This became 1.13.1 release tag on 9 feb. The main branch is set + to version 1.13.2. + +2 February 2021: Wouter + - branch-1.13.1 is created, with release-1.13.1rc1 tag. + - Fix dynlibmod link on rhel8 for -ldl inclusion. + - Fix windows dependency on libssp.dll because of default stack + protector in mingw. + - Fix indentation of root anchor for use by windows install script. + +1 February 2021: George + - Attempt to fix NULL keys in the reuse_tcp tree; relates to #411. + +29 January 2021: Wouter + - Fix for doxygen 1.8.20 compatibility. + +28 January 2021: Wouter + - Annotate that we ignore the return value of if_indextoname. + - Fix to use correct type for label count in rpz routine. + - Fix empty clause warning in config_file nsid parse. + - Fix to use correct type for label count in ipdnametoaddr rpz routine. + - Fix empty clause warning in edns pass for padding. + - Fix fwd ancil test post script when not supported. + +26 January 2021: George + - Merge PR #408 from fobser: Prevent a few more yacc clashes. + - Merge PR #275 from Roland van Rijswijk-Deij: Add feature to return the + original instead of a decrementing TTL ('serve-original-ttl') + - Merge PR #355 from noloader: Make ICANN Update CA and DS Trust Anchor + static data. + - Ignore cache blacklisting when trying to reply with expired data from + cache (#394). + +26 January 2021: Wouter + - Fix compile of unbound-dnstap-socket without dnstap installed. + +22 January 2021: Willem + - Padding of queries and responses with DNS over TLS as specified in + RFC7830 and RFC8467. + +22 January 2021: George + - Fix TTL of SOA record for negative answers (localzone and + authzone data) to be the minimum of the SOA TTL and the SOA.MINIMUM. + +19 January 2021: Willem + - Support for RFC5001: DNS Name Server Identifier (NSID) Option + with the nsid: option in unbound.conf + +18 January 2021: Wouter + - Fix #404: DNS query with small edns bufsize fail. + - Fix declaration before statement and signed comparison warning in + dns64. + +15 January 2021: Wouter + - Merge #402 from fobser: Implement IPv4-Embedded addresses according + to RFC6052. + +14 January 2021: Wouter + - Fix for #93: dynlibmodule import library is named libunbound.dll.a. + +13 January 2021: Wouter + - Merge #399 from xiangbao227: The lock of lruhash table should + unlocked after markdel entry. + - Fix for #93: dynlibmodule link fix for Windows. + +12 January 2021: Wouter + - Fix #397: [Feature request] add new type always_null to local-zone + similar to always_nxdomain. + - Fix so local zone types always_nodata and always_deny can be used + from the config file. + +8 January 2021: Wouter + - Merge PR #391 from fhriley: Add start_time to reply callbacks so + modules can compute the response time. + - For #391: use struct timeval* start_time for callback information. + - For #391: fix indentation. + - For #391: more double casts in python start time calculation. + - Add comment documentation. + - Fix clang analysis warning. + +6 January 2021: Wouter + - Fix #379: zone loading over HTTP appears to have buffer issues. + - Merge PR #395 from mptre: add missing null check. + - Fix #387: client-subnet-always-forward seems to effectively bypass + any caching? + +5 January 2021: Wouter + - Fix #385: autoconf 2.70 impacts unbound build + - Merge PR #375 by fhriley: Add rpz_enable and rpz_disable commands + to unbound-control. + +4 January 2021: Wouter + - For #376: Fix that comm point event is not double removed or double + added to event map. + - iana portlist updated. + +16 December 2020: George + - Fix error cases when udp-connect is set and send() returns an error + (modified patch from Xin Li @delphij). + +11 December 2020: Wouter + - Fix #371: unbound-control timeout when Unbound is not running. + - Fix to squelch permission denied and other errors from remote host, + they are logged at higher verbosity but not on low verbosity. + - Merge PR #335 from fobser: Sprinkle in some static to prevent + missing prototype warnings. + - Merge PR #373 from fobser: Warning: arithmetic on a pointer to void + is a GNU extension. + - Fix missing prototypes in the code. + +3 December 2020: Wouter + - make depend. + - iana portlist updated. + +2 December 2020: Wouter + - Fix #360: for the additionally reported TCP Fast Open makes TCP + connections fail, in that case we print a hint that this is + happening with the error in the logs. + - Fix #356: deadlock when listening tcp. + - Fix unbound-dnstap-socket to not use log routine from interrupt + handler and not print so frequently when invoked in sequence. + - Fix on windows to ignore connection failure on UDP, unless verbose. + - Fix for #283: fix stream reuse and tcp fast open. + - Fix update, with write event check with streamreuse and fastopen. + +1 December 2020: Wouter + - Fix #358: Squelch udp connect 'no route to host' errors on low + verbosity. + +30 November 2020: Wouter + - Fix assertion failure on double callback when iterator loses + interest in query at head of line that then has the tcp stream + not kept for reuse. + - tag for the 1.13.0rc4 release. This also became the 1.13.0 + release version on 3 dec 2020 with the streamreuse and fastopen + fix from 2 dec 2020. The code repo continues for 1.13.1 in + development. + +27 November 2020: Wouter + - Fix compile warning for type cast in http2_submit_dns_response. + - Fix when use free buffer to initialize rbtree for stream reuse. + - Fix compile warnings for windows. + - Fix compile warnings in rpz initialization. + - Fix contrib/metrics.awk for FreeBSD awk compatibility. + - tag for the 1.13.0rc3 release. + +26 November 2020: Wouter + - Fix to omit UDP receive errors from log, if verbosity low. + These happen because of udp-connect. + - For #352: contrib/metrics.awk for Prometheus style metrics output. + - Fix that after failed read, the readagain cannot activate. + - Clear readagain upon decommission of pending tcp structure. + +25 November 2020: Wouter + - with udp-connect ignore connection refused with UDP timeouts. + - Fix udp-connect on FreeBSD, do send calls on connected UDP socket. + - Better fix for reuse tree comparison for is-tls sockets. Where + the tree key identity is preserved after cleanup of the TLS state. + - Remove debug commands from reuse tests. + - Fix memory leak for edns client tag opcode config element. + - Attempt fix for libevent state in tcp reuse cases after a packet + is written. + - Fix readagain and writeagain callback functions for comm point + cleanup. + - tag for the 1.13.0rc2 release. + +24 November 2020: Wouter + - Merge PR #283 : Stream reuse. This implements upstream stream + reuse for performing several queries over the same TCP or TLS + channel. + - set version of main branch to 1.13.0 for upcoming release. + - iana portlist updated. + - Fix one port unit test for udp-connect. + - tag for the 1.13.0rc1 release. + - Fix crash when TLS connection is closed prematurely, when + reuse tree comparison is not properly identical to insertion. + - Fix padding of struct regional for 32bit systems. + +23 November 2020: George + - Merge PR #313 from Ralph Dolmans: Replace edns-client-tag with + edns-client-string option. + +23 November 2020: Wouter + - Merge #351 from dvzrv: Add AF_NETLINK to set of allowed socket + address families. + - Fix #350: with the AF_NETLINK permission, to fix 1.12.0 error: + failed to list interfaces: getifaddrs: Address family not + supported by protocol. + - Fix #347: IP_DONTFRAG broken on Apple xcode 12.2. + - Option to toggle udp-connect, default is enabled. + - Fix for #303 CVE-2020-28935 : Fix that symlink does not interfere + with chown of pidfile. + - Further fix for it and retvalue 0 fix for it. + +12 November 2020: Wouter + - Fix to connect() to UDP destinations, default turned on, + this lowers vulnerability to ICMP side channels. + - Retry for interfaces with unused ports if possible. + +10 November 2020: Wouter + - Fix #341: fixing a possible memory leak. + - Fix memory leak after fix for possible memory leak failure. + - Fix #343: Fail to build --with-libnghttp2 with error: 'SSIZE_MAX' + undeclared. + +27 October 2020: Wouter + - In man page note that tls-cert-bundle is read before permission + drop and chroot. + +22 October 2020: Wouter + - Fix #333: Unbound Segmentation Fault w/ log_info Functions From + Python Mod. + - Fix that minimal-responses does not remove addresses from a priming + query response. + +21 October 2020: George + - Fix #327: net/if.h check fails on some darwin versions; contribution by + Joshua Root. + - Fix #320: potential memory corruption due to size miscomputation upton + custom region alloc init. + +21 October 2020: Wouter + - Merge PR #228 : infra-keep-probing option to probe hosts that are + down. Add infra-keep-probing: yes option. Hosts that are down are + probed more frequently. + With the option turned on, it probes about every 120 seconds, + eventually after exponential backoff, and that keeps that way. If + traffic keeps up for the domain. It probes with one at a time, eg. + one query is allowed to probe, other queries within that 120 second + interval are turned away. + +19 October 2020: George + - Merge PR #324 from James Renken: Add modern X.509v3 extensions to + unbound-control TLS certificates. + - Fix for PR #324 to attach the x509v3 extensions to the client + certificate. + +19 October 2020: Ralph + - local-zone regional allocations outside of chunk + +19 October 2020: Wouter + - Fix that http settings have colon in set_option, for + http-endpoint, http-max-streams, http-query-buffer-size, + http-response-buffer-size, and http-nodelay. + - Fix memory leak of https port string when reading config. + - Fix #330: [Feature request] Add unencrypted DNS over HTTPS support. + This adds the option http-notls-downstream: yesno to change that, + and the dohclient test code has the -n option. + - Fix python documentation warning on functions.rst inplace_cb_reply. + - Fix dnstap test to wait for log timer to see if queries are logged. + - Log ip address when http session recv fails, eg. due to tls fail. + - Fix to set the tcp handler event toggle flag back to default when + the handler structure is reused. + - Clean the fix for out of order TCP processing limits on number + of queries. It was tested to work. + +16 October 2020: Wouter + - Fix that the out of order TCP processing does not limit the + number of outstanding queries over a connection. + +15 October 2020: George + - Fix that if there are reply callbacks for the given rcode, those + are called per reply and a new message created if that was modified + by the call. + - Pass the comm_reply information to the inplace_cb_reply* functions + during the mesh state and update the documentation on that. + +15 October 2020: Wouter + - Merge PR #326 from netblue30: DoH: implement content-length + header field + - DoH content length, simplify code, remove declaration after + statement and fix cast warning. + +14 October 2020: Wouter + - Fix for python reply callback to see mesh state reply_list member, + it only removes it briefly for the commpoint call so that it does + not drop it and attempt to modify the reply list during reply. + - Fix that if there are on reply callbacks, those are called per + reply and a new message created if that was modified by the call. + - Free up auth zone parse region after use for lookup of host + +13 October 2020: Wouter + - Fix #323: unbound testsuite fails on mock build in systemd-nspawn + if systemd support is build. + +9 October 2020: Wouter + - Fix dnstap socket and the chroot not applied properly to the dnstap + socket path. + - Fix warning in libnss compile, nss_buf2dsa is not used without DSA. + +8 October 2020: Wouter + - Tag for 1.12.0 release. + - Current repo is version 1.12.1 in development. + - Fix #319: potential memory leak on config failure, in rpz config. + +1 October 2020: Wouter + - Current repo is version 1.12.0 for release. Tag for 1.12.0rc1. + +30 September 2020: Wouter + - Fix doh tests when not compiled in. + - Add dohclient test executable to gitignore. + - Fix stream_ssl, ssl_req_order and ssl_req_timeout tests for + alloc check debug output. + - Easier kill of unbound-dnstap-socket tool in test. + - Fix memory leak of edns tags at libunbound context delete. + - Fix double loopexit for unbound-dnstap-socket after sigterm. + +29 September 2020: Ralph + - DNS Flag Day 2020: change edns-buffer-size default to 1232. + +28 September 2020: Wouter + - Fix unit test for dnstap changes, so that it waits for the timer. + +23 September 2020: Wouter + - Fix #305: dnstap logging significantly affects unbound performance + (regression in 1.11). + - Fix #305: only wake up thread when threshold reached. + - Fix to ifdef fptr wlist item for dnstap. + +23 September 2020: Ralph + - Fix edns-client-tags get_option typo + - Add edns-client-tag-opcode option + - Use inclusive language in configuration + +21 September 2020: Ralph + - Fix #304: dnstap logging not recovering after dnstap process restarts + +21 September 2020: Wouter + - Merge PR #311 by luismerino: Dynlibmod leak. + - Error message is logged for dynlibmod malloc failures. + - iana portlist updated. + +18 September 2020: Wouter + - Fix that prefer-ip4 and prefer-ip6 can be get and set with + unbound-control, with libunbound and the unbound-checkconf option + output function. + - iana portlist updated. + +15 September 2020: George + - Introduce test for statistics. + +15 September 2020: Wouter + - Spelling fix. + +11 September 2020: Wouter + - Remove x file mode on ipset/ipset.c and h files. + +9 September 2020: Wouter + - Fix num.expired statistics output. + +31 August 2020: Wouter + - Merge PR #293: Add missing prototype. Also refactor to use the new + shorthand function to clean up the code. + - Refactor to use sock_strerr shorthand function. + - Fix #296: systemd nss-lookup.target is reached before unbound can + successfully answer queries. Changed contrib/unbound.service.in. + +27 August 2020: Wouter + - Similar to NSD PR#113, implement that interface names can be used, + eg. something like interface: eth0 is resolved at server start and + uses the IP addresses for that named interface. + - Review fix, doxygen and assign null in case of error free. + +26 August 2020: George + - Update documentation in python example code. + +24 August 2020: Wouter + - Fix that dnstap reconnects do not spam the log with the repeated + attempts. Attempts on the timer are only logged on high verbosity, + if they produce a connection failure error. + - Fix to apply chroot to dnstap-socket-path, if chroot is enabled. + - Change configure to use EVP_sha256 instead of HMAC_Update for + openssl-3.0.0. + +20 August 2020: Ralph + - Fix stats double count issue (#289). + +13 August 2020: Ralph + - Create and init edns tags data for libunbound. + +10 August 2020: Ralph + - Merge (modified) PR #277, use EVP_MAC_CTX_set_params if available, + by Vítězslav Čížek. + +10 August 2020: Wouter + - Fix #287: doc typo: "Additionaly". + - Rerun autoconf + +6 August 2020: Wouter + - Merge PR #284 and Fix #246: Remove DLV entirely from Unbound. + The DLV has been decommisioned and in unbound 1.5.4, in 2015, there + was advise to stop using it. The current code base does not contain + DLV code any more. The use of dlv options displays a warning. + +5 August 2020: Wouter + - contrib/aaaa-filter-iterator.patch file renewed diff content to + apply cleanly to the current coderepo for the current code version. + +5 August 2020: Ralph + - Merge PR #272: Add EDNS client tag functionality. + +4 August 2020: George + - Improve error log message when inserting rpz RR. + - Merge PR #280, Make tvOS & watchOS checks verify truthiness as well as + definedness, by Felipe Gasper. + +4 August 2020: Wouter + - Fix mini_event.h on OpenBSD cannot find fd_set. + +31 July 2020: Wouter + - Fix doxygen comment for no ssl for tls session ticket key callback + routine. + +27 July 2020: George + - Merge PR #268, draft-ietf-dnsop-serve-stale-10 has become RFC 8767 on + March 2020, by and0x000. + +27 July 2020: Ralph + - Merge PR #269, Fix python module len() implementations, by Torbjörn + Lönnemark + +27 July 2020: Wouter + - branch now named 1.11.1. 1.11.0rc1 became the 1.11.0 release. + - Merge PR #270 from cgzones: munin plugin: always exit 0 in autoconf + +20 July 2020: Wouter + - Fix streamtcp to print packet data to stdout. This makes the + stdout and stderr not mix together lines, when parsing its output. + - Fix contrib/fastrpz.patch to apply cleanly. It fixes for changes + due to added libdynmod, but it does not compile, it conflicts with + new rpz code. + - branch now named 1.11.0 and 1.11.0rc1 tag. + +17 July 2020: Wouter + - Fix libnettle compile for session ticket key callback function + changes. + - Fix lock dependency cycle in rpz zone config setup. + +17 July 2020: Ralph + - Merge PR #234 - Ensure proper alignment of cmsg buffers by Jérémie + Courrèges-Anglas. + - Fix PR #234 log_assert sizeof to use union buffer. + +16 July 2020: Wouter + - Fix check conf test for referencing installation paths. + - Fix unused variable warning for clang analyzer. + +16 July 2020: George + - Introduce 'include-toplevel:' configuration option. + +16 July 2020: Ralph + - Add bidirectional frame streams support. + +8 July 2020: Wouter + - Fix add missing DSA header, for compilation without deprecated + OpenSSL APIs. + - Fix to use SSL_CTX_set_tlsext_ticket_key_evp_cb in OpenSSL + 3.0.0-alpha4. + - Longer keys for the test set, this avoids weak crypto errors. + +7 July 2020: Wouter + - Fix #259: Fix unbound-checkconf does not check view existence. + unbound-checkconf checks access-control-view, access-control-tags, + access-control-tag-actions and access-control-tag-datas. + - Fix offset of error printout for access-control-tag-datas. + - Review fixes for checkconf #259 change. + +6 July 2020: Wouter + - run_vm cleanup better and removes trailing slash on single argument. + +29 June 2020: Wouter + - Move reply list clean for serve expired mesh callback to after + the reply is sent, so that script callbacks have reply_info. + - Also move reply list clean for mesh callbacks to the scrip callback + can see the reply_info. + - Fix for mesh accounting if the reply list already empty to begin + with. + - Fix for mesh accounting when rpz decides to drop a reply with a + tcp stream waiting for it. + - Review fix for number of detached states due to use of variable + after end of loop. + - Fix tcp req info drop due to size call into mesh accounting + removal of mesh state during mesh send reply. + +24 June 2020: Wouter + - iana portlist updated. + - doxygen file comments for dynlibmodule. + +17 June 2020: Wouter + - Fix default explanation in man page for qname-minimisation-strict. + - Fix display of event loop method with libev. + +8 June 2020: Wouter + - Mention tls name possible when tls is enabled for stub-addr in the + man page. + +27 May 2020: George + - Merge PR #241 by Robert Edmonds: contrib/libunbound.pc.in: Do not use + "Requires:". + +25 May 2020: George + - Update contrib/aaaa-filter-iterator.patch for the recent + generate_sub_request() change and to apply cleanly. + +21 May 2020: George + - Fix for integer overflow when printing RDF_TYPE_TIME. + +19 May 2020: Wouter + - CVE-2020-12662 Unbound can be tricked into amplifying an incoming + query into a large number of queries directed to a target. + - CVE-2020-12663 Malformed answers from upstream name servers can be + used to make Unbound unresponsive. + - Release 1.10.1 is 1.10.0 with fixes, code repository continues, + including those fixes, towards the next release. Configure has + version 1.10.2 version number in it. + - For PR #93: windows compile warnings removal + - windows compile warnings removal for ip dscp option code. + - For PR #93: unit test for dynlib module. + +18 May 2020: Wouter + - For PR #93: dynlibmod can handle reloads and deinit and inits again, + with dlclose and dlopen of the library again. Also for multiple + modules. Fix memory leak by not closing dlopened content. Fix + to allow one dynlibmod instance by unbound-checkconf. + - For PR #93: checkconf allows multiple dynlib in module-config, for + a couple cases. + - For PR #93: checkconf allows python dynlib in module-config, for + a couple cases. + - For PR #93: man page spelling reference fix. + - For PR #93: fix link of other executables for dynlibmod dependency. + +15 May 2020: Wouter + - Merge PR #93: Add dynamic library support. + - Fixed conflicts for PR #93 and make configure, yacc, lex. + - For PR #93: Fix warnings for dynlibmodule. + +15 May 2020: Ralph + - Cache ECS answers with longest scope of CNAME chain. + +22 April 2020: George + - Explicitly use 'rrset-roundrobin: no' for test cases. + +21 April 2020: Wouter + - Merge #225 from akhait: KSK-2010 has been revoked. It removes the + KSK-2010 from the default list in unbound-anchor, now that the + revocation period is over. KSK-2017 is the only trust anchor in + the shipped default now. + +21 April 2020: George + - Change default value for 'rrset-roundrobin' to yes. + - Fix tests for new rrset-roundrobin default. + +20 April 2020: Wouter + - Fix #222: --enable-rpath, fails to rpath python lib. + - Fix for count of reply states in the mesh. + - Remove unneeded was_mesh_reply check. + +17 April 2020: George + - Add SNI support on more TLS connections (fixes #193). + - Add SNI support to unbound-anchor. + +16 April 2020: George + - Add doxygen documentation for DSCP. + +16 April 2020: Wouter + - Fix help return code in unbound-control-setup script. + - Fix for posix shell syntax for trap in nsd-control-setup. + - Fix for posix shell syntax for trap in run_msg.sh test script. + +15 April 2020: George + - Fix #220: auth-zone section in config may lead to segfault. + +7 April 2020: Wouter + - Merge PR #214 from gearnode: unbound-control-setup recreate + certificates. With the -r option the certificates are created + again, without it, only the files that do not exist are created. + +6 April 2020: Ralph + - Keep track of number of timeouts. Use this counter to determine if + capsforid fallback should be started. + +6 April 2020: George + - More documentation for redis-expire-records option. + +1 April 2020: George + - Merge PR #206: Redis TTL, by Talkabout. + +30 March 2020: Wouter + - Merge PR #207: Clarify if-automatic listens on 0.0.0.0 and :: + - Merge PR #208: Fix uncached CLIENT_RESPONSE'es on stateful + transports. + +27 March 2020: Wouter + - Merge PR #203 from noloader: Update README-Travis.md with current + procedures. + +27 March 2020: Ralph + - Make unbound-control error returned on missing domain name more user + friendly. + +26 March 2020: Ralph + - Fix RPZ concurrency issue when using auth_zone_reload. + +25 March 2020: George + - Merge PR #201 from noloader: Fix OpenSSL cross-compaile warnings. + - Fix on #201. + +24 March 2020: Wouter + - Merge PR #200 from yarikk: add ip-dscp option to specify the DSCP + tag for outgoing packets. + - Fixes on #200. + - Travis fix for ios by omitting tools from install. + +23 March 2020: Wouter + - Fix compile on Solaris for unbound-checkconf. + +20 March 2020: George + - Merge PR #198 from fobser: Declare lz_enter_rr_into_zone() static, it's + only used in this file. + +20 March 2020: Wouter + - Merge PR #197 from fobser: Make log_ident_revert_to_default() a + proper prototype. + +19 March 2020: Ralph + - Merge PR#191: Update iOS testing on Travis, by Jeffrey Walton. + - Fix #158: open tls-session-ticket-keys as binary, for Windows. By + Daisuke HIGASHI. + - Merge PR#134, Allow the kernel to provide random source ports. By + Florian Obser. + - Log warning when using outgoing-port-permit and outgoing-port-avoid + while explicit port randomisation is disabled. + - Merge PR#194: Add libevent testing to Travis, by Jeffrey Walton. + - Fix .travis.yml error, missing 'env' option. + +16 March 2020: Wouter + - Fix #192: In the unbound-checkconf tool, the module config of + dns64 subnetcache respip validator iterator is whitelisted, it was + reported it seems to work. + +12 March 2020: Wouter + - Fix compile of test tools without protobuf. + +11 March 2020: Ralph + - Add check to make sure RPZ records are subdomains of configured + zone origin. + +11 March 2020: George + - Fix #189: mini_event.h:142:17: error: field 'ev_timeout' has incomplete + type, by noloader. + - Changelog entry for (Fix #189, Merge PR #190). + +11 March 2020: Wouter + - Fix #188: unbound-control.c:882:6: error: 'execlp' is + unavailable: not available on tvOS. + +6 March 2020: George + - Merge PR #186, fix #183: Fix unrecognized 'echo -n' option on OS X, by + noloader + +5 March 2020: Wouter + - Fix PR #182 from noloader: Add iOS testing to Travis. + +4 March 2020: Ralph + - Update README-Travis.md (from PR #179), by Jeffrey Walton. + +4 March 2020: George + - Merge PR #181 from noloader: Fix OpenSSL -pie warning on Android. + +4 March 2020: Wouter + - Merge PR #180 from noloader: Avoid calling exit in Travis script. + +3 March 2020: George + - Upgrade config.guess(2020-01-01) and config.sub(2020-01-01). + +2 March 2020: Ralph + - Fix #175, Merge PR #176: fix link error when OpenSSL is configured + with no-engine, thanks noloader. + +2 March 2020: George + - Fix compiler warning in dns64/dns64.c + - Merge PR #174: Add Android to Travis testing, by noloader. + - Move android build scripts to contrib/ and allow android tests to fail. + +2 March 2020: Wouter + - Fix #177: dnstap does not build on macOS. + +28 February 2020: Ralph + - Merge PR #172: Add IBM s390x arch for testing, by noloader. + +28 February 2020: Wouter + - Merge PR #173: updated makedist.sh for config.guess and + config.sub and sha256 digest for gpg, by noloader. + - Merge PR #164: Framestreams, this branch implements dnstap + unidirectional connectivity in unbound. This has a number of + new features. + + The dependency on libfstrm is removed. The fstrm protocol code + resides in dnstap/dnstap_fstrm.h and dnstap/dnstap_fstrm.c. This + contains a brief definition of what unbound needs. + + The make unbound-dnstap-socket builds a debug tool, + unbound-dnstap-socket. It can listen, accept multiple DNSTAP + streams and print information. Commandline options control it. + + Unbound can reconnect if the unix domain socket file socket is + closed. This uses exponential backoff after which it uses a + one second timer to throttle cpu down. There is also support + to use TCP and TLS for connecting to the log server. There + are new config options to turn them on, in the dnstap section + in the man page and example config file. dnstap-ip with IP + address of server for TCP or TLS use. dnstap-tls to turn + on TLS. And dnstap-tls-server-name, dnstap-tls-cert-bundle, + dnstap-tls-client-key-file and dnstap-tls-client-cert-file + to configure the certificates for server authentication and + client authentication, or leave at "" to not use that. + +27 February 2020: George + - Merge PR #171: Add additional compilers and platforms to Travis + testing, by noloader. + +27 February 2020: Wouter + - Fix #169: Fix warning for daemon/remote.c output may be truncated + from snprintf. + - Fix #170: Fix gcc undefined sanitizer signed integer overflow + warning in signature expiry RFC1982 serial number arithmetic. + - Fix more undefined sanitizer issues, in respip copy_rrset null + dname, and in the client_info_compare routine for null memcmp. + +26 February 2020: Wouter + - iana portlist updated. + +25 February 2020: Wouter + - Fix #165: Add prefer-ip4: yesno config option to prefer ipv4 for + using ipv4 filters, because the hosts ip6 netblock /64 is not owned + by one operator, and thus reputation is shared. + +24 February 2020: George + - Merge PR #166: Fix typo in unbound.service.in, by glitsj16. + +20 February 2020: Wouter + - Updated contrib/unbound_smf23.tar.gz with Solaris SMF service for + Unbound from Yuri Voinov. + - master branch has 1.10.1 version. + +18 February 2020: Wouter + - protect X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS with ifdef for + different openssl versions. + +17 February 2020: Wouter + - changelog point where the tag for 1.10.0rc2 release is. And with + the unbound_smf23 commit added to it, that is the 1.10.0 release. + +17 February 2020: Ralph + - Add respip to supported module-config options in unbound-checkconf. + +17 February 2020: George + - Remove unused variable. + +17 February 2020: Wouter + - contrib/drop2rpz: perl script that converts the Spamhaus DROP-List + in RPZ-Format, contributed by Andreas Schulze. + +14 February 2020: Wouter + - Fix spelling in unbound.conf.5.in. + - Stop unbound-checkconf from insisting that auth-zone and rpz + zonefiles have to exist. They can not exist, and download later. + +13 February 2020: Wouter + - tag for 1.10.0rc1 release. + +12 February 2020: Wouter + - Fix with libnettle make test with dsa disabled. + - Fix contrib/fastrpz.patch to apply cleanly. Fix for serve-stale + fixes, but it does not compile, conflicts with new rpz code. + - Fix to clean memory leak of respip_addr.lock when ip_tree deleted. + - Fix compile warning when threads disabled. + - updated version number to 1.10.0. + +10 February 2020: George + - Document 'ub_result.was_ratelimited' in libunbound. + - Fix use after free on log-identity after a reload; Fixes #163. + +6 February 2020: George + - Fix num_reply_states and num_detached_states counting with + serve_expired_callback. + - Cleaner code in mesh_serve_expired_lookup. + - Document in unbound.conf manpage that configuration clauses can be + repeated in the configuration file. + +6 February 2020: Wouter + - Fix num_reply_addr counting in mesh and tcp drop due to size + after serve_stale commit. + - Fix to create and destroy rpz_lock in auth_zones structure. + - Fix to lock zone before adding rpz qname trigger. + - Fix to lock and release once in mesh_serve_expired_lookup. + - Fix to put braces around empty if body when threading is disabled. + +5 February 2020: George + - Added serve-stale functionality as described in + draft-ietf-dnsop-serve-stale-10. `serve-expired-*` options can be used + to configure the behavior. + - Updated cachedb to honor `serve-expired-ttl`; Fixes #107. + - Renamed statistic `num.zero_ttl` to `num.expired` as expired replies + come with a configurable TTL value (`serve-expired-reply-ttl`). + - Fixed stats when replying with cached, cname-aliased records. + - Added missing default values for redis cachedb backend. + +3 February 2020: Ralph + - Add assertion to please static analyzer + +31 January 2020: Wouter + - Fix fclose on error in TLS session ticket code. + +30 January 2020: Ralph + - Fix memory leak in error condition remote.c + - Fix double free in error condition view.c + - Fix memory leak in do_auth_zone_transfer on success + - Merge RPZ support into master. Only QNAME and Response IP triggers are + supported. + - Stop working on socket when socket() call returns an error. + - Check malloc return values in TLS session ticket code + +30 January 2020: Wouter + - Fix subnet tests for disabled DSA algorithm by default. + - Update contrib/fastrpz.patch for clean diff with current code. + - Merge PR#151: Fixes for systemd units, by Maryse47, Edmonds + and Frzk. Updates the unbound.service systemd file and adds + a portable systemd service file. + - updated .gitignore for added contrib file. + - Add build rule for ipset to Makefile + - Add getentropy_freebsd.o to Makefile dependencies. + +29 January 2020: Ralph + - Merge PR#156 from Alexander Berkes; Added unbound-control + view_local_datas_remove command. + +29 January 2020: Wouter + - Fix #157: undefined reference to `htobe64'. + +28 January 2020: Ralph + - Merge PR#147; change rfc reference for reserved top level dns names. + +28 January 2020: Wouter + - iana portlist updated. + - Fix to silence the tls handshake errors for broken pipe and reset + by peer, unless verbosity is set to 2 or higher. + +27 January 2020: Ralph + - Merge PR#154; Allow use of libbsd functions with configure option + --with-libbsd. By Robert Edmonds and Steven Chamberlain. + - Merge PR#148; Add some TLS stats to unbound_munin_. By Fredrik Pettai. + +27 January 2020: Wouter + - Merge PR#155 from Robert Edmonds: contrib/libunbound.pc.in: Fixes + to Libs/Requires for crypto library dependencies. + - Fix #153: Disable validation for DSA algorithms. RFC 8624 + compliance. + +23 January 2020: Wouter + - Merge PR#150 from Frzk: Systemd unit without chroot. It add + contrib/unbound_nochroot.service.in, a systemd file for use with + chroot: "", see comments in the file, it uses systemd protections + instead. + +14 January 2020: Wouter + - Removed the dnscrypt_queries and dnscrypt_queries_chacha tests, + because dnscrypt-proxy (2.0.36) does not support the test setup + any more, and also the config file format does not seem to have + the appropriate keys to recreate that setup. + - Fix crash after reload where a stats lookup could reference old key + cache and neg cache structures. + - Fix for memory leak when edns subnet config options are read when + compiled without edns subnet support. + - Fix auth zone support for NSEC3 records without salt. + +10 January 2020: Wouter + - Fix the relationship between serve-expired and prefetch options, + patch from Saksham Manchanda from Secure64. + - Fix unreachable code in ssl set options code. + +8 January 2020: Ralph + - Fix #138: stop binding pidfile inside chroot dir in systemd service + file. + +8 January 2020: Wouter + - Fix 'make test' to work for --disable-sha1 configure option. + - Fix out-of-bounds null-byte write in sldns_bget_token_par while + parsing type WKS, reported by Luis Merino from X41 D-Sec. + - Updated sldns_bget_token_par fix for also space for the zero + delimiter after the character. And update for more spare space. + +6 January 2020: George + - Downgrade compat/getentropy_solaris.c to version 1.4 from OpenBSD. + The dl_iterate_phdr() function introduced in newer versions raises + compilation errors on solaris 10. + - Changes to compat/getentropy_solaris.c for, + ifdef stdint.h inclusion for older systems. + ifdef sha2.h inclusion for older systems. + +6 January 2020: Wouter + - Merge #135 from Florian Obser: Use passed in neg and key cache + if non-NULL. + - Fix #140: Document slave not downloading new zonefile upon update. + +16 December 2019: George + - Update mailing list URL. + +12 December 2019: Ralph + - Master is 1.9.7 in development. + - Fix typo to let serve-expired-ttl work with ub_ctx_set_option(), by + Florian Obser + +10 December 2019: Wouter + - Fix to make auth zone IXFR to fallback to AXFR if a single + response RR is received over TCP with the SOA in it. + +6 December 2019: Wouter + - Fix ipsecmod compile. + - Fix Makefile.in for ipset module compile, from Adi Prasaja. + - release-1.9.6 tag, which became the 1.9.6 release + +5 December 2019: Wouter + - unbound-fuzzers.tar.bz2: three programs for fuzzing, that are 1:1 + replacements for unbound-fuzzme.c that gets created after applying + the contrib/unbound-fuzzme.patch. They are contributed by + Eric Sesterhenn from X41 D-Sec. + - tag for 1.9.6rc1. + +4 December 2019: Wouter + - Fix lock type for memory purify log lock deletion. + - Fix testbound for alloccheck runs, memory purify and lock checks. + - update contrib/fastrpz.patch to apply more cleanly. + - Fix Make Test Fails when Configured With --enable-alloc-nonregional, + reported by X41 D-Sec. + +3 December 2019: Wouter + - Merge pull request #124 from rmetrich: Changed log lock + from 'quick' to 'basic' because this is an I/O lock. + - Fix text around serial arithmatic used for RRSIG times to refer + to correct RFC number. + - Fix Assert Causing DoS in synth_cname(), + reported by X41 D-Sec. + - Fix similar code in auth_zone synth cname to add the extra checks. + - Fix Assert Causing DoS in dname_pkt_copy(), + reported by X41 D-Sec. + - Fix OOB Read in sldns_wire2str_dname_scan(), + reported by X41 D-Sec. + - Fix Out of Bounds Write in sldns_str2wire_str_buf(), + reported by X41 D-Sec. + - Fix Out of Bounds Write in sldns_b64_pton(), + fixed by check in sldns_str2wire_int16_data_buf(), + reported by X41 D-Sec. + - Fix Insufficient Handling of Compressed Names in dname_pkt_copy(), + reported by X41 D-Sec. + - Fix Out of Bound Write Compressed Names in rdata_copy(), + reported by X41 D-Sec. + - Fix Hang in sldns_wire2str_pkt_scan(), + reported by X41 D-Sec. + This further lowers the max to 256. + - Fix snprintf() supports the n-specifier, + reported by X41 D-Sec. + - Fix Bad Indentation, in dnscrypt.c, + reported by X41 D-Sec. + - Fix Client NONCE Generation used for Server NONCE, + reported by X41 D-Sec. + - Fix compile error in dnscrypt. + - Fix _vfixed not Used, removed from sbuffer code, + reported by X41 D-Sec. + - Fix Hardcoded Constant, reported by X41 D-Sec. + - make depend + +2 December 2019: Wouter + - Merge pull request #122 from he32: In tcp_callback_writer(), + don't disable time-out when changing to read. + +22 November 2019: George + - Fix compiler warnings. + +22 November 2019: Wouter + - Fix dname loop maximum, reported by Eric Sesterhenn from X41 D-Sec. + - Add make distclean that removes everything configure produced, + and make maintainer-clean that removes bison and flex output. + +20 November 2019: Wouter + - Fix Out of Bounds Read in rrinternal_get_owner(), + reported by X41 D-Sec. + - Fix Race Condition in autr_tp_create(), + reported by X41 D-Sec. + - Fix Shared Memory World Writeable, + reported by X41 D-Sec. + - Adjust unbound-control to make stats_shm a read only operation. + - Fix Weak Entropy Used For Nettle, + reported by X41 D-Sec. + - Fix Randomness Error not Handled Properly, + reported by X41 D-Sec. + - Fix Out-of-Bounds Read in dname_valid(), + reported by X41 D-Sec. + - Fix Config Injection in create_unbound_ad_servers.sh, + reported by X41 D-Sec. + - Fix Local Memory Leak in cachedb_init(), + reported by X41 D-Sec. + - Fix Integer Underflow in Regional Allocator, + reported by X41 D-Sec. + - Upgrade compat/getentropy_linux.c to version 1.46 from OpenBSD. + - Synchronize compat/getentropy_win.c with version 1.5 from + OpenBSD, no changes but makes the file, comments, identical. + - Upgrade compat/getentropy_solaris.c to version 1.13 from OpenBSD. + - Upgrade compat/getentropy_osx.c to version 1.12 from OpenBSD. + - Changes to compat/getentropy files for, + no link to openssl if using nettle, and hence config.h for + HAVE_NETTLE variable. + compat definition of MAP_ANON, for older systems. + ifdef stdint.h inclusion for older systems. + ifdef sha2.h inclusion for older systems. + - Fixed Compat Code Diverging from Upstream, reported by X41 D-Sec. + - Fix compile with --enable-alloc-checks, reported by X41 D-Sec. + - Fix Terminating Quotes not Written, reported by X41 D-Sec. + - Fix Useless memset() in validator, reported by X41 D-Sec. + - Fix Unrequired Checks, reported by X41 D-Sec. + - Fix Enum Name not Used, reported by X41 D-Sec. + - Fix NULL Pointer Dereference via Control Port, + reported by X41 D-Sec. + - Fix Bad Randomness in Seed, reported by X41 D-Sec. + - Fix python examples/calc.py for eval, reported by X41 D-Sec. + - Fix comments for doxygen in dns64. + +19 November 2019: Wouter + - Fix CVE-2019-18934, shell execution in ipsecmod. + - 1.9.5 is 1.9.4 with bugfix, trunk is 1.9.6 in development. + - Fix authzone printout buffer length check. + - Fixes to please lint checks. + - Fix Integer Overflow in Regional Allocator, + reported by X41 D-Sec. + - Fix Unchecked NULL Pointer in dns64_inform_super() + and ipsecmod_new(), reported by X41 D-Sec. + - Fix Out-of-bounds Read in rr_comment_dnskey(), + reported by X41 D-Sec. + - Fix Integer Overflows in Size Calculations, + reported by X41 D-Sec. + - Fix Integer Overflow to Buffer Overflow in + sldns_str2wire_dname_buf_origin(), reported by X41 D-Sec. + - Fix Out of Bounds Read in sldns_str2wire_dname(), + reported by X41 D-Sec. + - Fix Out of Bounds Write in sldns_bget_token_par(), + reported by X41 D-Sec. + +18 November 2019: Wouter + - In unbound-host use separate variable for get_option to please + code checkers. + - update to bison output of 3.4.1 in code repository. + - Provide a prototype for compat malloc to remove compile warning. + - Portable grep usage for reuseport configure test. + - Check return type of HMAC_Init_ex for openssl 0.9.8. + - gitignore .source tempfile used for compatible make. + +13 November 2019: Wouter + - iana portlist updated. + - contrib/fastrpz.patch updated to apply for current code. + - fixes for splint cleanliness, long vs int in SSL set_mode. + +11 November 2019: Wouter + - Fix #109: check number of arguments for stdin-pipes in + unbound-control and fail if too many arguments. + - Merge #102 from jrtc27: Add getentropy emulation for FreeBSD. + +24 October 2019: Wouter + - Fix #99: Memory leak in ub_ctx (event_base will never be freed). + +23 October 2019: George + - Add new configure option `--enable-fully-static` to enable full static + build if requested; in relation to #91. + +23 October 2019: Wouter + - Merge #97: manpage: Add missing word on unbound.conf, + from Erethon. + +22 October 2019: Wouter + - drop-tld.diff: adds option drop-tld: yesno that drops 2 label + queries, to stop random floods. Apply with + patch -p1 < contrib/drop-tld.diff and compile. + From Saksham Manchanda (Secure64). Please note that we think this + will drop DNSKEY and DS lookups for tlds and hence break DNSSEC + lookups for downstream clients. + +7 October 2019: Wouter + - Add doxygen comments to unbound-anchor source address code, in #86. + +3 October 2019: Wouter + - Merge #90 from vcunat: fix build with nettle-3.5. + - Merge 1.9.4 release with fix for vulnerability CVE-2019-16866. + - Continue with development of 1.9.5. + - Merge #86 from psquarejho: Added -b source address option to + smallapp/unbound-anchor.c, from Lukas Wunner. + +26 September 2019: Wouter + - Merge #87 from hardfalcon: Fix contrib/unbound.service.in, + Drop CAP_KILL, use + prefix for ExecReload= instead. + +25 September 2019: Wouter + - The unbound.conf includes are sorted ascending, for include + statements with a '*' from glob. + +23 September 2019: Wouter + - Merge #85 for #84 from sam-lunt: Add kill capability to systemd + service file to fix that systemctl reload fails. + +20 September 2019: Wouter + - Merge #82 from hardfalcon: Downgrade CAP_NET_ADMIN to CAP_NET_RAW + in unbound.service. + - Merge #81 from Maryse47: Consistently use /dev/urandom instead + of /dev/random in scripts and docs. + - Merge #83 from Maryse47: contrib/unbound.service.in: do not fork + into the background. + +19 September 2019: Wouter + - Fix #78: Memory leak in outside_network.c. + - Merge pull request #76 from Maryse47: Improvements and fixes for + systemd unbound.service. + - oss-fuzz badge on README.md. + - Fix fix for #78 to also free service callback struct. + - Fix for oss-fuzz build warning. + - Fix wrong response ttl for prepended short CNAME ttls, this would + create a wrong zero_ttl response count with serve-expired enabled. + - Merge #80 from stasic: Improve wording in man page. + +11 September 2019: Wouter + - Use explicit bzero for wiping clear buffer of hash in cachedb, + reported by Eric Sesterhenn from X41 D-Sec. + +9 September 2019: Wouter + - Fix #72: configure --with-syslog-facility=LOCAL0-7 with default + LOG_DAEMON (as before) can set the syslog facility that the server + uses to log messages. + +4 September 2019: Wouter + - Fix #71: fix openssl error squelch commit compilation error. + +3 September 2019: Wouter + - squelch DNS over TLS errors 'ssl handshake failed crypto error' + on low verbosity, they show on verbosity 3 (query details), because + there is a high volume and the operator cannot do anything for the + remote failure. Specifically filters the high volume errors. + +2 September 2019: Wouter + - ipset module #28: log that an address is added, when verbosity high. + - ipset: refactor long routine into three smaller ones. + - updated Makefile dependencies. + +23 August 2019: Wouter + - Fix contrib/fastrpz.patch asprintf return value checks. + +22 August 2019: Wouter + - Fix that pkg-config is setup before --enable-systemd needs it. + - 1.9.3rc2 release candidate tag. And this became the 1.9.3 release. + Master is 1.9.4 in development. + +21 August 2019: Wouter + - Fix log_dns_msg to log irrespective of minimal responses config. + +19 August 2019: Ralph + - Document limitation of pidfile removal outside of chroot directory. + +16 August 2019: Wouter + - Fix unittest valgrind false positive uninitialised value report, + where if gcc 9.1.1 uses -O2 (but not -O1) then valgrind 3.15.0 + issues an uninitialised value for the token buffer at the str2wire.c + rrinternal_get_owner() strcmp with the '@' value. Rewritten to use + straight character comparisons removes the false positive. Also + valgrinds --expensive-definedness-checks=yes can stop this false + positive. + - Please doxygen's parser for "@" occurrence in doxygen comment. + - Fixup contrib/fastrpz.patch + - Remove warning about unknown cast-function-type warning pragma. + +15 August 2019: Wouter + - iana portlist updated. + - Fix autotrust temp file uniqueness windows compile. + - avoid warning about upcast on 32bit systems for autotrust. + - escape commandline contents for -V. + - Fix character buffer size in ub_ctx_hosts. + - 1.9.3rc1 release candidate tag. + - Option -V prints if TCP fastopen is available. + +14 August 2019: George + - Fix #59, when compiled with systemd support check that we can properly + communicate with systemd through the `NOTIFY_SOCKET`. + +14 August 2019: Wouter + - Generate configlexer with newer flex. + - Fix warning for unused variable for compilation without systemd. + +12 August 2019: George + - Introduce `-V` option to print the version number and build options. + Previously reported build options like linked libs and linked modules + are now moved from `-h` to `-V` as well for consistency. + - PACKAGE_BUGREPORT now also includes link to GitHub issues. + +1 August 2019: Wouter + - For #52 #53, second context does not close logfile override. + - Fix #52 #53, fix for example fail program. + - Fix to return after failed auth zone http chunk write. + - Fix to remove unused test for task_probe existance. + - Fix to timeval_add for remaining second in microseconds. + - Check repinfo in worker_handle_request, if null, drop it. + +29 July 2019: Wouter + - Add verbose log message when auth zone file is written, at level 4. + - Add hex print of trust anchor pointer to trust anchor file temp + name to make it unique, for libunbound created multiple contexts. + +23 July 2019: Wouter + - Fix question section mismatch in local zone redirect. + +19 July 2019: Wouter + - Fix #49: Set no renegotiation on the SSL context to stop client + session renegotiation. + +12 July 2019: Wouter + - Fix #48: Unbound returns additional records on NODATA response, + if minimal-responses is enabled, also the additional for negative + responses is removed. + +9 July 2019: Ralph + - Fix in respip addrtree selection. Absence of addr_tree_init_parents() + call made it impossible to go up the tree when the matching netmask is + too specific. + +5 July 2019: Ralph + - Fix for possible assertion failure when answering respip CNAME from + cache. + +25 June 2019: Wouter + - For #45, check that 127.0.0.1 and ::1 are not used in unbound.conf + when do-not-query-localhost is turned on, or at default on, + unbound-checkconf prints a warning if it is found in forward-addr or + stub-addr statements. + +24 June 2019: Wouter + - Fix memleak in unit test, reported from the clang 8.0 static analyzer. + +18 June 2019: Wouter + - PR #28: IPSet module, by Kevin Chou. Created a module to support + the ipset that could add the domain's ip to a list easily. + Needs libmnl, and --enable-ipset and config it, doc/README.ipset.md. + - Fix to omit RRSIGs from addition to the ipset. + - Fix to make unbound-control with ipset, remove unused variable, + use unsigned type because of comparison, and assign null instead + of compare with it. Remade lex and yacc output. + - make depend + - Added documentation to the ipset files (for doxygen output). + - Merge PR #6: Python module: support multiple instances + - Merge PR #5: Python module: define constant MODULE_RESTART_NEXT + - Merge PR #4: Python module: assign something useful to the + per-query data store 'qdata' + - Fix python dict reference and double free in config. + +17 June 2019: Wouter + - Master contains version 1.9.3 in development. + - Fix #39: In libunbound, leftover logfile is close()d unpredictably. + - Fix for #24: Fix abort due to scan of auth zone masters using old + address from previous scan. + +12 June 2019: Wouter + - Fix another spoolbuf storage code point, in prefetch. + - 1.9.2rc3 release candidate tag. Which became the 1.9.2 release + on 17 June 2019. + +11 June 2019: Wouter + - Fix that fixes the Fix that spoolbuf is not used to store tcp + pipelined response between mesh send and callback end, this fixes + error cases that did not use the correct spoolbuf. + - 1.9.2rc2 release candidate tag. 6 June 2019: Wouter - 1.9.2rc1 release candidate tag. diff --cc iterator/iterator.c index e5a855282,0b6236ad2..cd8b23b67 --- a/iterator/iterator.c +++ b/iterator/iterator.c @@@ -2296,9 -2186,9 +2296,9 @@@ processQueryTargets(struct module_qstat iq->qinfo_out.qname = iq->qchase.qname; iq->qinfo_out.qname_len = iq->qchase.qname_len; iq->minimise_count++; - iq->minimise_timeout_count = 0; + iq->timeout_count = 0; - iter_dec_attempts(iq->dp, 1); + iter_dec_attempts(iq->dp, 1, ie->outbound_msg_retry); /* Limit number of iterations for QNAMEs with more * than MAX_MINIMISE_COUNT labels. Send first MINIMISE_ONE_LAB diff --cc util/configlexer.c index 6ead5bf93,280c85e36..015df164c --- a/util/configlexer.c +++ b/util/configlexer.c @@@ -354,8 -354,8 +354,8 @@@ static void yynoreturn yy_fatal_error (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 354 - #define YY_END_OF_BUFFER 355 -#define YY_NUM_RULES 292 -#define YY_END_OF_BUFFER 293 ++#define YY_NUM_RULES 355 ++#define YY_END_OF_BUFFER 356 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@@ -363,394 -363,329 +363,396 @@@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; - static const flex_int16_t yy_accept[3508] = -static const flex_int16_t yy_accept[2921] = ++static const flex_int16_t yy_accept[3524] = { 0, - 1, 1, 328, 328, 332, 332, 336, 336, 340, 340, - 1, 1, 344, 344, 348, 348, 355, 352, 1, 326, - 326, 353, 2, 353, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 328, 329, 329, 330, - 353, 332, 333, 333, 334, 353, 339, 336, 337, 337, - 338, 353, 340, 341, 341, 342, 353, 351, 327, 2, - 331, 353, 351, 347, 344, 345, 345, 346, 353, 348, - 349, 349, 350, 353, 352, 0, 1, 2, 2, 2, - 2, 352, 352, 352, 352, 352, 352, 352, 352, 352, - - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 328, - 0, 332, 0, 339, 0, 336, 340, 0, 351, 0, - 2, 2, 351, 347, 0, 344, 348, 0, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 351, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 130, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 139, - 352, 352, 352, 352, 352, 352, 352, 351, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 112, 352, 325, - 352, 352, 352, 352, 352, 352, 352, 8, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - - 352, 352, 352, 352, 352, 352, 352, 131, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 144, 352, 352, 351, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 318, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 1, 1, 274, 274, 278, 278, 282, 282, 286, 286, - 1, 1, 293, 290, 1, 272, 272, 291, 2, 291, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 274, 275, 275, 276, 291, 278, 279, 279, - 280, 291, 285, 282, 283, 283, 284, 291, 286, 287, - 287, 288, 291, 289, 273, 2, 277, 291, 289, 290, - 0, 1, 2, 2, 2, 2, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 351, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 67, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 250, 352, 14, 15, 352, 19, 18, 352, - 352, 234, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 274, - 0, 278, 0, 285, 0, 282, 286, 0, 289, 0, - 2, 2, 289, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 137, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 232, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 3, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 289, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 351, 352, 352, 352, 352, 352, 352, 352, 312, 352, - 352, 311, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 335, 352, 352, 352, 352, 352, 352, 352, 352, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 114, 290, 290, 290, 290, 290, 290, 290, 289, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 66, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 70, 352, 281, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 319, - 320, 352, 352, 352, 352, 352, 352, 352, 71, 352, - 352, 138, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 134, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 221, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 21, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 96, 290, 290, 290, 290, 290, 290, 290, 8, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 119, 290, 289, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 164, 352, 352, 352, 352, 352, 351, 335, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 110, 352, 352, 352, 352, 352, 352, 352, 289, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 190, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 352, 352, 352, 352, 352, 352, 352, 352, 163, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 109, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 35, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 289, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 54, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 214, 290, 14, - 15, 290, 18, 17, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 352, 352, 352, 352, 352, 352, 36, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 68, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 136, 352, 352, 352, 351, 352, 352, - 352, 352, 352, 129, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 69, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 254, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 191, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 113, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 198, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 3, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 57, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 272, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 290, 290, 290, 290, 290, 289, 290, 290, 290, 290, - 290, 290, 290, 265, 290, 290, 264, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 281, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 57, 290, 239, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 352, 61, 352, 62, 352, 352, 352, 352, 352, 113, - 352, 114, 352, 352, 352, 352, 352, 111, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 7, 352, 352, 352, 352, 351, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 243, 352, 352, 352, 352, 167, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 255, 352, 352, 352, - 290, 290, 58, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 187, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 20, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 138, 290, 290, 281, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 94, 290, 290, 290, -- - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 48, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 58, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 213, 352, 212, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 16, 17, 352, 352, 352, 352, 352, - 290, 290, 290, 290, 247, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 159, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 137, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 93, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 352, 352, 352, 352, 352, 352, 352, 352, 72, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 220, 352, 352, 352, 352, 352, 352, 116, 352, - 115, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 204, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 145, 352, 352, 352, - 351, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 104, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 92, 352, 352, 352, 352, 352, 352, 352, 352, - 290, 290, 290, 290, 290, 290, 31, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 32, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 55, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 112, 290, 290, 290, 290, 290, 111, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 56, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 160, 290, 290, 290, 290, 290, 290, -- - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 233, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 97, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 65, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 207, 208, 352, 352, 352, 283, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 6, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 45, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 229, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 49, 290, 50, - 290, 290, 290, 290, 290, 97, 290, 98, 290, 290, -- - 352, 352, 352, 352, 352, 352, 302, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 287, 352, 352, 352, 352, 352, - 352, 313, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 45, 352, 352, 352, - 352, 47, 352, 352, 352, 93, 352, 352, 352, 352, - 352, 55, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 351, 352, 200, 352, 352, 352, 140, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 290, 290, 95, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 7, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 207, - 290, 290, 290, 290, 140, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 225, 352, 201, 352, 352, 352, 240, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 56, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 142, 122, - 352, 123, 352, 352, 352, 352, 121, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 160, 352, 352, 53, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 271, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 202, 352, 352, - 352, 352, 352, 205, 352, 211, 352, 352, 352, 352, - 290, 290, 290, 290, 46, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 179, 290, - 178, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 16, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 59, 290, 290, 290, 290, 290, 290, 290, 290, - 186, 290, 290, 290, 290, 290, 290, 100, 290, 99, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 352, 352, 239, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 108, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 135, 352, - 352, 352, 352, 352, 352, 352, 63, 352, 352, 352, - 29, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 20, 352, 352, 352, 352, 352, 352, - 30, 39, 352, 172, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 198, 352, - 352, 351, 352, 352, 352, 352, 352, 352, 80, 82, - 170, 290, 290, 290, 290, 290, 290, 290, 290, 120, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 78, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 82, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 53, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 291, 352, 352, 352, 352, 251, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 124, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 159, 352, 49, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 306, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 166, 352, - 290, 173, 174, 290, 290, 290, 241, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 6, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 245, 290, 290, 290, 266, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 41, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 43, - 290, 290, 290, 290, 290, 290, 290, 290, 166, 290, - 290, 290, 115, 290, 290, 290, 290, 290, 290, 290, -- - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 300, 352, 352, 352, 231, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 316, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 184, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 117, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 179, 352, 192, 352, 352, 352, 352, 352, 352, 352, - 351, 352, 148, 352, 352, 352, 352, 352, 103, 352, - 352, 352, 352, 223, 352, 352, 352, 352, 352, 352, - 290, 290, 290, 191, 290, 167, 290, 290, 290, 204, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 44, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 117, 105, 290, 106, - 290, 290, 290, 104, 290, 290, 290, 290, 290, 290, - 290, 290, 135, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 228, 290, 290, 290, 290, 290, - 290, 290, 290, 168, 290, 290, 290, 290, 290, 171, - 290, 177, 290, 290, 290, 290, 290, 203, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 241, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 263, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 141, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 183, 352, 352, 352, - 352, 352, 352, 83, 352, 84, 352, 352, 352, 352, - 352, 64, 309, 352, 352, 352, 352, 352, 91, 193, - 352, 214, 352, 244, 352, 352, 206, 284, 352, 352, - 352, 352, 352, 352, 76, 352, 195, 352, 352, 352, - 352, 352, 9, 352, 352, 352, 352, 352, 107, 352, - 290, 290, 290, 92, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 51, 290, 290, 290, 25, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 19, - 290, 290, 290, 290, 290, 290, 26, 35, 290, 145, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 67, - 69, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 249, 290, 290, 290, 215, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 352, 352, 352, 276, 352, 352, 352, 352, 222, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 351, 352, 352, 352, 352, 182, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 168, 352, 290, - 352, 352, 352, 352, 352, 262, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 235, 352, 352, - 290, 290, 290, 290, 290, 290, 290, 107, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 134, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 260, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 139, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 197, 290, 290, - 290, 290, 290, 290, 290, 290, 269, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 156, 290, 290, 290, - 290, 290, 290, 290, 290, 101, 290, 290, 290, 290, -- - 352, 352, 352, 282, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 165, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 310, 352, 194, - 352, 352, 352, 352, 352, 352, 352, 352, 75, 77, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 106, - 352, 352, 352, 352, 274, 352, 352, 352, 352, 286, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 227, 37, 31, 33, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 38, 352, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 151, 290, 161, 290, 290, - 290, 290, 290, 123, 290, 290, 290, 290, 290, 88, - 290, 290, 290, 290, 189, 290, 290, 290, 290, 290, - 290, 205, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 220, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 116, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 155, 290, 290, 290, 290, - 290, 70, 71, 290, 290, 290, 290, 290, 52, 290, - 290, 290, 290, 290, 77, 162, 290, 180, 290, 208, -- - 32, 34, 352, 352, 352, 352, 352, 352, 352, 352, - 102, 352, 178, 352, 352, 352, 352, 352, 352, 352, - 351, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 229, 226, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 74, 352, 352, 352, 143, 352, 125, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 161, - 50, 352, 352, 352, 343, 13, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 304, 352, 307, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 290, 290, 172, 242, 290, 290, 290, 290, 290, 63, - 290, 164, 290, 290, 290, 290, 290, 290, 9, 290, - 290, 290, 91, 290, 290, 290, 290, 233, 290, 290, - 290, 188, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 154, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 141, 290, - 248, 290, 290, 290, 290, 219, 290, 290, 290, 290, -- - 12, 352, 352, 22, 352, 352, 352, 352, 352, 280, - 352, 352, 352, 352, 288, 352, 352, 352, 78, 352, - 237, 352, 352, 352, 352, 352, 228, 352, 352, 73, - 352, 352, 352, 352, 352, 352, 23, 352, 352, 46, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 177, 176, 352, 352, 343, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 230, 224, 352, 242, - 352, 352, 292, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 290, 290, 290, 290, 199, 290, 290, 290, 290, 240, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 263, 290, 163, 290, 290, 290, - 290, 290, 290, 290, 62, 64, 290, 290, 290, 290, - 290, 290, 290, 290, 90, 290, 290, 290, 290, 231, - 290, 290, 290, 244, 290, 290, 290, 290, 290, 290, - 290, 193, 33, 27, 29, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 34, 290, 28, 30, 290, 290, - 290, 290, 290, 290, 290, 290, 87, 290, 290, 290, -- - 352, 352, 352, 352, 352, 352, 352, 85, 352, 352, - 352, 352, 275, 352, 352, 352, 352, 210, 352, 352, - 352, 352, 352, 236, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 314, 315, 174, 352, 352, - 79, 352, 352, 352, 352, 185, 352, 352, 352, 118, - 120, 119, 352, 352, 352, 25, 352, 352, 169, 352, - 171, 352, 215, 352, 352, 352, 352, 175, 352, 352, - 352, 352, 245, 352, 352, 352, 352, 352, 352, 352, - 150, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 253, 352, 352, 352, 352, 352, 352, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 195, 192, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 61, 290, 290, 118, 290, 108, 290, 290, 290, 290, - 290, 290, 290, 290, 136, 13, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 258, 290, 261, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 12, - 290, 290, 21, 290, 290, 290, 237, 290, 290, 290, - 246, 290, 65, 290, 201, 290, 290, 194, 290, 290, - 60, 290, 290, 290, 290, 22, 290, 42, 290, 290, -- - 352, 323, 352, 27, 352, 285, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 89, 216, 352, 352, 273, 352, 308, 352, - 209, 352, 352, 352, 352, 352, 59, 352, 352, 352, - 352, 352, 352, 4, 352, 352, 352, 352, 133, 149, - 352, 352, 352, 189, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 248, 40, 41, 352, 352, 352, 352, 352, - 352, 352, 293, 352, 352, 352, 352, 352, 352, 352, - 261, 352, 352, 352, 352, 352, 352, 352, 352, 219, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 150, 149, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 196, 190, 290, 206, 290, 290, 250, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 72, 290, 290, 290, 232, 290, 290, 290, - 290, 176, 290, 290, 290, 290, 200, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 267, 268, 147, 66, - 290, 290, 157, 290, 290, 102, 103, 290, 290, 290, - 290, 142, 290, 144, 290, 181, 290, 290, 290, 290, -- - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 88, 352, 60, 279, 352, 249, - 352, 352, 352, 352, 352, 11, 352, 352, 352, 352, - 352, 352, 352, 352, 132, 352, 352, 352, 352, 217, - 94, 352, 352, 43, 352, 352, 352, 352, 352, 352, - 352, 352, 181, 352, 352, 352, 352, 352, 352, 352, - 152, 352, 352, 352, 352, 252, 352, 352, 352, 352, - 352, 260, 352, 352, 352, 352, 146, 352, 352, 352, - 126, 128, 127, 352, 352, 352, 96, 100, 95, 162, - 352, 352, 352, 352, 86, 352, 352, 352, 352, 352, - 148, 290, 290, 209, 290, 290, 290, 290, 290, 290, - 290, 125, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 216, 290, 290, 290, 23, 290, 243, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 182, 290, 290, 230, 290, 262, 290, 175, 290, - 290, 290, 290, 238, 47, 290, 290, 290, 290, 4, - 290, 290, 124, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 212, - 36, 37, 290, 290, 290, 290, 290, 290, 290, 251, - 290, 290, 290, 290, 290, 290, 218, 290, 290, 290, -- - 352, 10, 352, 352, 352, 352, 352, 277, 317, 352, - 352, 352, 352, 352, 322, 42, 352, 352, 352, 352, - 352, 180, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 101, 99, 352, - 54, 352, 352, 87, 305, 352, 352, 352, 352, 24, - 352, 352, 352, 352, 352, 203, 352, 352, 352, 352, - 352, 218, 352, 352, 352, 352, 352, 352, 352, 352, - 199, 352, 352, 170, 81, 352, 352, 352, 352, 352, - 294, 352, 352, 352, 352, 352, 352, 352, 257, 352, - 185, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 75, 290, 48, 236, 290, 213, 290, 290, 290, 290, - 11, 290, 290, 290, 290, 290, 290, 290, 183, 79, - 290, 39, 290, 290, 290, 290, 290, 290, 290, 290, - 153, 290, 290, 290, 290, 290, 127, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 217, 121, 290, 290, - 109, 110, 290, 290, 290, 81, 85, 80, 290, 73, - 290, 290, 290, 290, 290, 10, 290, 290, 290, 234, - 290, 290, 271, 38, 290, 290, 290, 290, 290, 152, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 352, 256, 147, 352, 352, 98, 51, 352, 153, 154, - 157, 158, 155, 156, 90, 303, 352, 352, 278, 352, - 352, 352, 26, 352, 173, 352, 352, 352, 352, 197, - 352, 247, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 187, 186, 44, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 301, 352, 352, - 352, 352, 105, 352, 246, 352, 270, 298, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 324, - 290, 290, 290, 290, 290, 290, 290, 290, 86, 84, - 290, 74, 259, 290, 290, 290, 290, 290, 290, 290, - 169, 290, 290, 290, 184, 290, 290, 290, 290, 290, - 290, 290, 290, 143, 68, 290, 290, 290, 290, 290, - 252, 290, 290, 290, 290, 290, 290, 290, 122, 290, - 83, 128, 129, 132, 133, 130, 131, 76, 290, 235, - 290, 290, 146, 290, 290, 290, 290, 290, 211, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 158, 40, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- - 352, 52, 5, 352, 352, 238, 352, 352, 299, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 258, 28, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 259, 352, 352, 352, 151, 352, 352, 352, - 352, 352, 352, 352, 352, 188, 352, 196, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 295, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 321, 352, 352, 266, 352, - 352, 352, 352, 352, 296, 352, 352, 352, 352, 352, - 352, 297, 352, 352, 352, 264, 352, 267, 268, 352, - 290, 290, 290, 290, 290, 290, 89, 290, 210, 290, - 227, 256, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 5, 290, 202, 290, 290, 257, 290, 290, - 290, 290, 290, 290, 290, 290, 24, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 126, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 165, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 253, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 270, 290, - 290, 223, 290, 290, 290, 290, 290, 254, 290, 290, -- - 352, 352, 352, 352, 265, 269, 0 - 290, 290, 290, 290, 255, 290, 290, 290, 221, 290, - 224, 225, 290, 290, 290, 290, 290, 222, 226, 0 ++ 1, 1, 329, 329, 333, 333, 337, 337, 341, 341, ++ 1, 1, 345, 345, 349, 349, 356, 353, 1, 327, ++ 327, 354, 2, 354, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 329, 330, 330, 331, ++ 354, 333, 334, 334, 335, 354, 340, 337, 338, 338, ++ 339, 354, 341, 342, 342, 343, 354, 352, 328, 2, ++ 332, 354, 352, 348, 345, 346, 346, 347, 354, 349, ++ 350, 350, 351, 354, 353, 0, 1, 2, 2, 2, ++ 2, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 329, ++ 0, 333, 0, 340, 0, 337, 341, 0, 352, 0, ++ 2, 2, 352, 348, 0, 345, 349, 0, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 352, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 130, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 139, 353, 353, 353, 353, 353, 353, 353, 352, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 112, 353, ++ 326, 353, 353, 353, 353, 353, 353, 353, 353, 8, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 131, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 144, 353, 353, 352, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 319, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 352, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 67, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 250, 353, 14, 15, 353, ++ 19, 18, 353, 353, 234, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 137, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 232, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 3, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 352, 353, 353, 353, 353, 353, ++ 353, 353, 313, 353, 353, 312, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 336, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 66, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 70, 353, 282, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 320, 321, 353, 353, 353, 353, 353, ++ 353, 353, 353, 71, 353, 353, 138, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 134, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 221, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 21, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 164, 353, 353, 353, ++ 353, 353, 352, 336, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 110, 353, 353, 353, 353, ++ 353, 353, 353, 290, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 190, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 163, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 109, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 35, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 36, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 68, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 136, ++ 353, 353, 353, 352, 353, 353, 353, 353, 353, 129, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 69, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 254, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 191, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 57, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 272, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 61, 353, ++ 62, 353, 353, 353, 353, 353, 113, 353, 114, 353, ++ 353, 353, 353, 353, 111, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 7, 353, 353, ++ 353, 353, 352, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 243, 353, 353, 353, 353, 167, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 255, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 48, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 58, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 213, 353, ++ 212, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 16, 17, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 72, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 220, ++ 353, 353, 353, 353, 353, 353, 116, 353, 115, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 204, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 145, 353, 353, 353, 352, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 104, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 92, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 233, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 97, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 65, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 207, 208, ++ 353, 353, 353, 284, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 6, 353, 353, ++ 353, 353, 353, 353, 353, 303, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 288, 353, 353, 353, 353, 353, 353, ++ 314, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 45, 353, 353, 353, 353, ++ 47, 353, 353, 353, 93, 353, 353, 353, 353, 353, ++ 55, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 352, 353, 200, 353, 353, 353, 140, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 225, ++ 353, 201, 353, 353, 353, 240, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 56, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 142, 122, 353, ++ 123, 353, 353, 353, 353, 121, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 160, 353, 353, 53, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 271, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 202, 353, 353, 353, ++ ++ 353, 353, 205, 353, 211, 353, 353, 353, 353, 353, ++ 353, 239, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 108, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 135, 353, ++ 353, 353, 353, 353, 353, 353, 63, 353, 353, 353, ++ 29, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 20, 353, 353, 353, 353, 353, 353, ++ 30, 39, 353, 172, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 198, 353, ++ ++ 353, 352, 353, 353, 353, 353, 353, 353, 80, 82, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 292, 353, 353, 353, 353, 251, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 124, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 159, 353, 49, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 307, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 166, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 301, 353, 353, 353, 231, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 317, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 184, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 117, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 179, 353, 192, 353, 353, 353, 353, 353, 353, ++ 353, 352, 353, 148, 353, 353, 353, 353, 353, 103, ++ ++ 353, 353, 353, 353, 223, 353, 353, 353, 353, 353, ++ 353, 241, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 263, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 141, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 183, 353, 353, ++ 353, 353, 353, 353, 83, 353, 84, 353, 353, 353, ++ 353, 353, 64, 310, 353, 353, 353, 353, 353, 91, ++ 193, 353, 214, 353, 244, 353, 353, 206, 285, 353, ++ 353, 353, 353, 353, 353, 76, 353, 195, 353, 353, ++ ++ 353, 353, 353, 353, 9, 353, 353, 353, 353, 353, ++ 107, 353, 353, 353, 353, 276, 353, 353, 353, 353, ++ 222, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 352, 353, 353, 353, 353, 182, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 168, ++ 353, 291, 353, 353, 353, 353, 353, 262, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 235, ++ 353, 353, 353, 353, 353, 283, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 165, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 311, ++ 353, 194, 353, 353, 353, 353, 353, 353, 353, 353, ++ 75, 77, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 106, 353, 353, 353, 353, 274, 353, 353, ++ 353, 353, 287, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 227, 37, 31, 33, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 38, 353, 32, 34, 353, 353, 353, 353, 353, ++ 353, 353, 353, 102, 353, 178, 353, 353, 353, 353, ++ 353, 353, 353, 352, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 229, 226, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 74, 353, 353, 353, 143, ++ 353, 125, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 161, 50, 353, 353, 353, 344, 13, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 305, ++ ++ 353, 308, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 12, 353, 353, 22, 353, 353, ++ 353, 353, 353, 280, 353, 353, 353, 353, 289, 353, ++ 353, 353, 78, 353, 237, 353, 353, 353, 353, 353, ++ 228, 353, 353, 73, 353, 353, 353, 353, 353, 353, ++ 23, 353, 353, 46, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 177, 176, 353, 353, ++ 344, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 230, 224, 353, 242, 353, 353, 293, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 85, 353, 353, 353, 353, 275, 353, 353, 353, ++ 353, 210, 353, 353, 353, 353, 353, 236, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 315, 316, 174, 353, 353, 79, 353, 353, 353, 353, ++ 185, 353, 353, 353, 118, 120, 119, 353, 353, 353, ++ 25, 353, 353, 169, 353, 171, 353, 215, 353, 353, ++ 353, 353, 175, 353, 353, 353, 353, 245, 353, 353, ++ 353, 353, 353, 353, 353, 150, 353, 353, 353, 353, ++ ++ 353, 353, 353, 353, 353, 353, 353, 353, 253, 353, ++ 353, 353, 353, 353, 353, 353, 324, 353, 27, 353, ++ 286, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 89, 216, 353, ++ 353, 273, 353, 309, 353, 209, 353, 353, 353, 353, ++ 353, 281, 59, 353, 353, 353, 353, 353, 353, 4, ++ 353, 353, 353, 353, 133, 149, 353, 353, 353, 189, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 248, 40, ++ 41, 353, 353, 353, 353, 353, 353, 353, 294, 353, ++ ++ 353, 353, 353, 353, 353, 353, 261, 353, 353, 353, ++ 353, 353, 353, 353, 353, 219, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 88, 353, 60, 279, 353, 249, 353, 353, 353, 353, ++ 353, 11, 353, 353, 353, 353, 353, 353, 353, 353, ++ 132, 353, 353, 353, 353, 217, 94, 353, 353, 43, ++ 353, 353, 353, 353, 353, 353, 353, 353, 181, 353, ++ 353, 353, 353, 353, 353, 353, 152, 353, 353, 353, ++ 353, 252, 353, 353, 353, 353, 353, 260, 353, 353, ++ 353, 353, 146, 353, 353, 353, 126, 128, 127, 353, ++ ++ 353, 353, 96, 100, 95, 162, 353, 353, 353, 353, ++ 86, 353, 353, 353, 353, 353, 353, 10, 353, 353, ++ 353, 353, 353, 277, 318, 353, 353, 353, 353, 353, ++ 323, 42, 353, 353, 353, 353, 353, 180, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 101, 99, 353, 54, 353, 353, 87, ++ 306, 353, 353, 353, 353, 24, 353, 353, 353, 353, ++ 353, 203, 353, 353, 353, 353, 353, 218, 353, 353, ++ 353, 353, 353, 353, 353, 353, 199, 353, 353, 170, ++ ++ 81, 353, 353, 353, 353, 353, 295, 353, 353, 353, ++ 353, 353, 353, 353, 257, 353, 353, 256, 147, 353, ++ 353, 98, 51, 353, 153, 154, 157, 158, 155, 156, ++ 90, 304, 353, 353, 278, 353, 353, 353, 26, 353, ++ 173, 353, 353, 353, 353, 197, 353, 247, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 187, 186, ++ 44, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 302, 353, 353, 353, 353, 105, 353, ++ ++ 246, 353, 270, 299, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 325, 353, 52, 5, 353, ++ 353, 238, 353, 353, 300, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 258, 28, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 259, 353, ++ 353, 353, 151, 353, 353, 353, 353, 353, 353, 353, ++ 353, 188, 353, 196, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 296, 353, 353, 353, 353, 353, 353, ++ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ++ 353, 322, 353, 353, 266, 353, 353, 353, 353, 353, ++ ++ 297, 353, 353, 353, 353, 353, 353, 298, 353, 353, ++ 353, 264, 353, 267, 268, 353, 353, 353, 353, 353, ++ 265, 269, 0 } ; static const YY_CHAR yy_ec[256] = @@@ -793,2310 -728,1928 +795,2322 @@@ static const YY_CHAR yy_meta[41] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; - static const flex_int16_t yy_base[3526] = -static const flex_int16_t yy_base[2935] = ++static const flex_int16_t yy_base[3542] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 96, 118, 124, 136, 3772, 3465, 81, 6844, - 6844, 6844, 129, 52, 130, 63, 131, 152, 70, 140, - 90, 112, 2511, 2423, 81, 5700, 5700, 5700, 96, 52, - 106, 63, 107, 111, 70, 128, 130, 133, 57, 88, - 76, 135, 141, 117, 148, 145, 160, 164, 185, 176, - 191, 152, 2327, 5700, 5700, 5700, 107, 2112, 5700, 5700, - 5700, 165, 2031, 1612, 5700, 5700, 5700, 211, 1164, 5700, - 5700, 5700, 180, 1103, 5700, 217, 5700, 221, 168, 952, - 225, 189, 0, 232, 0, 0, 226, 189, 85, 221, - 114, 227, 234, 156, 219, 235, 239, 236, 238, 132, - 246, 242, 241, 252, 244, 247, 266, 243, 258, 273, - - 275, 187, 277, 278, 267, 274, 280, 283, 287, 289, - 295, 297, 298, 299, 304, 305, 306, 311, 307, 315, - 309, 313, 330, 318, 329, 325, 320, 335, 336, 339, - 340, 343, 345, 342, 346, 350, 349, 355, 357, 821, - 373, 750, 376, 672, 382, 633, 365, 386, 198, 390, - 394, 0, 386, 374, 396, 388, 392, 393, 257, 391, - 395, 397, 398, 400, 402, 415, 404, 413, 421, 423, - 427, 424, 431, 434, 435, 436, 437, 419, 448, 446, - 451, 443, 452, 454, 455, 458, 459, 474, 460, 461, - 410, 468, 476, 478, 485, 470, 488, 489, 486, 493, - - 491, 501, 503, 502, 499, 500, 505, 508, 510, 511, - 513, 515, 518, 516, 517, 521, 523, 522, 530, 524, - 535, 536, 543, 538, 539, 545, 542, 556, 557, 548, - 559, 552, 560, 561, 566, 569, 576, 571, 568, 572, - 580, 575, 578, 579, 583, 581, 595, 602, 593, 600, - 603, 601, 606, 607, 608, 609, 585, 618, 611, 582, - 623, 629, 613, 627, 632, 619, 615, 634, 636, 638, - 645, 641, 648, 644, 649, 650, 651, 653, 662, 657, - 660, 659, 661, 663, 665, 666, 669, 667, 675, 670, - 679, 681, 689, 687, 686, 699, 691, 692, 696, 702, - - 694, 709, 703, 724, 713, 725, 714, 706, 720, 695, - 729, 733, 736, 739, 730, 737, 743, 744, 746, 747, - 754, 749, 751, 758, 759, 760, 767, 761, 773, 768, - 778, 780, 781, 782, 804, 788, 790, 783, 784, 787, - 5700, 793, 800, 828, 802, 797, 816, 813, 818, 822, - 809, 826, 829, 838, 833, 834, 836, 851, 837, 846, - 849, 852, 853, 856, 863, 861, 864, 865, 868, 876, - 872, 873, 874, 883, 875, 878, 885, 886, 888, 753, - 887, 892, 896, 898, 902, 899, 905, 903, 907, 904, - 910, 911, 927, 922, 924, 928, 926, 929, 933, 935, - - 936, 937, 938, 946, 947, 942, 944, 953, 954, 955, - 960, 961, 945, 962, 966, 967, 968, 975, 973, 970, - 982, 5700, 984, 977, 979, 986, 988, 989, 990, 5700, - 992, 993, 994, 1001, 996, 1006, 999, 1003, 1011, 1020, - 1015, 1018, 1029, 1016, 1026, 1024, 1027, 1028, 1033, 1025, - 1034, 1036, 1037, 1041, 1057, 1042, 1044, 1045, 1050, 1051, - 1060, 1061, 1053, 1074, 1072, 1075, 1086, 1078, 1082, 1081, - 1087, 1089, 1092, 1095, 1093, 1043, 1097, 1099, 1098, 1100, - 1101, 1102, 1109, 1113, 5700, 1106, 1122, 1129, 1116, 1125, - 1111, 1127, 1131, 1114, 1133, 1134, 1136, 1135, 1145, 1148, - - 1139, 1155, 1150, 1153, 1152, 1154, 1158, 1157, 1159, 1161, - 1171, 1167, 1173, 1182, 1185, 1184, 1187, 1194, 1174, 1189, - 1191, 1190, 1193, 1197, 1198, 1176, 1202, 1204, 1211, 1206, - 1207, 1212, 1213, 1220, 1218, 1215, 1216, 1222, 1226, 1230, - 1231, 1232, 1235, 1238, 1245, 1234, 1241, 1242, 1247, 1251, - 1250, 1256, 1257, 1258, 1260, 1259, 1261, 1263, 1267, 1266, - 1270, 1269, 1271, 1280, 1282, 1284, 1289, 1290, 1279, 1277, - 1293, 1300, 1296, 1304, 1299, 1303, 1311, 1306, 1309, 1312, - 1320, 1315, 1316, 1313, 1321, 1323, 1326, 1328, 1336, 1340, - 1327, 1342, 1329, 1343, 1337, 1346, 1347, 1349, 1350, 1357, - - 1354, 1353, 1356, 1359, 1360, 1361, 1363, 1366, 1373, 1369, - 1372, 1376, 1377, 1382, 1379, 1385, 1387, 1388, 1389, 1390, - 1391, 1394, 1393, 1399, 1400, 1411, 1402, 1403, 1413, 1417, - 1415, 1421, 1425, 1427, 1419, 1429, 1431, 1409, 1433, 1434, - 1438, 1441, 1435, 1445, 1447, 1448, 1450, 1449, 1452, 1453, - 1458, 1460, 5700, 1455, 1467, 1465, 1468, 1466, 1471, 1473, - 1481, 1476, 1479, 1477, 1480, 1482, 1488, 5700, 1483, 5700, - 5700, 1487, 5700, 5700, 1490, 1503, 1492, 1511, 1512, 1516, - 1514, 1501, 1506, 1518, 1527, 1539, 1489, 1523, 1524, 1522, - 1526, 1531, 1528, 1532, 1534, 1536, 1545, 1552, 1548, 1554, - - 1559, 1560, 1561, 1562, 1564, 1566, 1567, 1563, 1570, 1572, - 1569, 1576, 1575, 1586, 1585, 1592, 1595, 5700, 1593, 1602, - 1605, 1601, 1609, 1604, 1608, 1610, 1611, 1612, 1615, 1577, - 1616, 1613, 1622, 1617, 1625, 1634, 1624, 5700, 1627, 1629, - 1635, 1637, 1639, 1644, 1631, 1641, 1647, 1650, 1651, 1652, - 1653, 1656, 5700, 1655, 1663, 1654, 1664, 1658, 1660, 1668, - 1671, 1672, 1673, 1674, 1681, 1676, 1683, 1684, 1686, 1687, - 1689, 1690, 1700, 1691, 1696, 1710, 1698, 1703, 1707, 1711, - 1713, 1714, 1715, 1717, 1722, 1721, 1726, 1723, 1730, 1731, - 1728, 1729, 1738, 1739, 1740, 1741, 1751, 1746, 1747, 1753, - - 1760, 1752, 1756, 1757, 1759, 1763, 1767, 1769, 1770, 1768, - 1774, 1776, 1777, 5700, 1778, 1779, 5700, 1780, 1783, 1805, - 1784, 1787, 1786, 1789, 1792, 1795, 1797, 1806, 1798, 1809, - 1819, 1811, 1824, 1807, 1827, 1829, 1830, 1815, 1831, 1833, - 1841, 1843, 1847, 1853, 1855, 1838, 1840, 1850, 1869, 1851, - 1852, 1858, 1854, 1861, 1871, 1856, 1865, 1867, 1873, 1881, - 1874, 5700, 1890, 1882, 1887, 1891, 1899, 1896, 1894, 1898, - 1900, 1902, 1903, 1905, 1908, 1910, 1911, 1912, 1916, 1917, - 1919, 1921, 1932, 1920, 1939, 5700, 1924, 5700, 1934, 1922, - 1925, 1935, 1923, 1943, 1945, 1946, 1947, 1953, 1954, 1963, - - 1965, 1956, 5700, 1960, 1967, 1970, 1972, 1964, 1968, 1973, - 1977, 1979, 1986, 1981, 1989, 1982, 1984, 1987, 1993, 1995, - 1997, 1999, 1996, 5700, 2000, 2003, 2007, 2015, 2017, 2012, - 2010, 2020, 2024, 2014, 2018, 2022, 2026, 2027, 2036, 2039, - 2038, 2041, 2044, 2051, 5700, 2034, 2035, 2053, 2054, 2057, - 2058, 2060, 2048, 2061, 2062, 2063, 2050, 2070, 2071, 2078, - 2079, 2076, 2075, 2084, 2077, 2081, 2085, 2092, 2086, 2089, - 2087, 2093, 5700, 2094, 2100, 124, 2101, 2102, 2107, 2103, - 2105, 2110, 2111, 2122, 2126, 2123, 2125, 2124, 2121, 2130, - 2132, 2133, 2134, 2136, 2139, 2138, 5700, 2141, 2142, 2145, - - 2146, 2149, 2147, 2159, 5700, 2150, 2160, 2162, 2152, 2168, - 2158, 2170, 2172, 2174, 2180, 2181, 2182, 5700, 2184, 2186, - 2189, 2187, 2190, 2196, 2188, 2198, 2199, 2202, 2203, 2204, - 2205, 2206, 2208, 2209, 2210, 2211, 2216, 2220, 2222, 2223, - 5700, 2235, 2224, 2225, 2226, 2234, 2236, 2250, 2237, 2241, - 2245, 2251, 2259, 2247, 2253, 2263, 2265, 2269, 2261, 2277, - 2275, 2276, 2283, 2273, 2285, 2287, 2279, 2288, 2289, 2291, - 2295, 2293, 2296, 2303, 2308, 2304, 2301, 2310, 2312, 2315, - 2319, 2243, 5700, 2318, 2320, 2313, 2324, 2340, 2325, 2336, - 2329, 2337, 2338, 2342, 2344, 2345, 2348, 2349, 2351, 2350, - - 2354, 2362, 2356, 2358, 2365, 2369, 5700, 2372, 2376, 2366, - 2374, 2378, 2370, 2387, 2388, 2391, 2380, 2382, 2393, 2384, - 2394, 2395, 2400, 2398, 2406, 2399, 5700, 2409, 2410, 2411, - 2413, 2414, 2419, 2421, 2427, 2429, 2402, 2430, 2431, 2432, - 5700, 2439, 2441, 2437, 2446, 2443, 2444, 2447, 2449, 2450, - 5700, 2451, 2453, 2460, 2461, 2456, 5700, 2465, 2464, 2457, - 2467, 2466, 2468, 2472, 2469, 2474, 2475, 2482, 2491, 2481, - 2483, 5700, 2492, 2501, 2485, 2496, 2494, 2498, 2506, 2507, - 2508, 2515, 2509, 2520, 2524, 2518, 2519, 2510, 2526, 2527, - 2530, 2534, 2531, 5700, 2533, 2535, 2537, 2540, 2542, 2543, - - 2545, 2556, 2554, 2549, 2557, 2552, 2558, 2559, 2560, 2562, - 2570, 2563, 2574, 2576, 2572, 2579, 2580, 2584, 2588, 2592, - 2590, 2593, 5700, 2596, 2598, 2597, 2599, 2600, 2603, 2604, - 2607, 2605, 2612, 2610, 2609, 2613, 2622, 2630, 2619, 2626, - 2628, 2631, 2633, 2635, 2634, 2636, 2637, 2644, 2641, 2643, - 2651, 2648, 2652, 2660, 2649, 2657, 2659, 2661, 2662, 2663, - 2664, 2671, 2665, 2670, 2672, 2675, 2682, 2679, 2688, 2689, - 2690, 2691, 5700, 2694, 2692, 2695, 2696, 2705, 2706, 2708, - 2714, 2716, 2702, 2709, 2717, 2725, 2724, 5700, 2721, 5700, - 2726, 2728, 2729, 2738, 2731, 5700, 2735, 5700, 2740, 2742, - - 2736, 2744, 5700, 2745, 2746, 2749, 2753, 2750, 2755, 2756, - 2757, 2759, 2763, 2761, 2767, 2768, 2769, 2771, 2772, 2778, - 2774, 2781, 2784, 2777, 2786, 2791, 2792, 2794, 2795, 2796, - 5700, 2800, 2802, 2804, 2805, 2807, 2806, 2808, 2810, 2812, - 2816, 2817, 2822, 2819, 2828, 2829, 2841, 2823, 2844, 5700, - 2833, 2846, 2837, 2842, 5700, 2849, 2840, 2850, 2852, 2855, - 2857, 2858, 2859, 2860, 2865, 2863, 2868, 2872, 2876, 2870, - 2880, 2867, 2884, 2888, 2889, 2890, 2895, 2899, 2897, 2898, - 2900, 2901, 2903, 2904, 2912, 2914, 2905, 2915, 2913, 2916, - 2925, 2917, 2919, 2926, 2927, 2928, 2929, 2932, 2935, 2939, - - 2930, 2931, 2938, 2934, 5700, 2941, 2945, 2949, 2956, 2953, - 2958, 2959, 2960, 2961, 2962, 2964, 2967, 2966, 5700, 2969, - 5700, 2963, 2987, 2974, 2981, 2985, 2975, 2991, 2996, 2986, - 2992, 2998, 3000, 3001, 3002, 3004, 3006, 3007, 3008, 3015, - 3022, 3023, 3012, 3014, 3010, 3024, 3026, 3029, 5700, 3031, - 3033, 3034, 3036, 3037, 3039, 3047, 3045, 3040, 3043, 3049, - 3061, 5700, 3059, 3069, 3050, 3066, 3076, 3072, 3080, 3075, - 5700, 3071, 3078, 3085, 3082, 3084, 3089, 5700, 3086, 5700, - 3088, 3090, 3096, 3097, 3098, 3099, 3100, 3101, 3103, 3116, - 3119, 3105, 3108, 3117, 3120, 3121, 3129, 3122, 3125, 3127, - - 5700, 3131, 3126, 3132, 3133, 3137, 3143, 3140, 3147, 5700, - 3150, 3152, 3153, 3154, 3155, 3157, 3159, 3160, 3163, 3164, - 3158, 3161, 3168, 3171, 3169, 3178, 3180, 3182, 3189, 5700, - 3186, 3190, 3198, 3194, 3195, 3200, 3201, 3196, 3197, 3203, - 3205, 3206, 3208, 3210, 3209, 3213, 3220, 3212, 3215, 3226, - 3233, 3214, 3228, 3234, 3231, 3236, 3239, 3240, 3244, 3246, - 3237, 3249, 3258, 3252, 3254, 3261, 3262, 3269, 3264, 5700, - 3271, 3256, 3276, 3268, 3277, 3279, 3281, 3289, 3272, 3287, - 3288, 3296, 3292, 5700, 3300, 3295, 3301, 3302, 3304, 3311, - 3297, 3298, 3310, 3315, 3316, 3320, 3317, 3322, 3323, 3326, - - 3327, 5700, 5700, 3329, 3330, 3332, 5700, 3334, 3333, 3345, - 3336, 3338, 3346, 3349, 3348, 3340, 3350, 3352, 3353, 5700, - 3364, 3360, 3368, 3363, 3367, 3376, 3377, 3373, 3375, 3379, - 3381, 3384, 3382, 3386, 3387, 3385, 3390, 3398, 3393, 3395, - 3396, 5700, 3397, 3399, 3404, 5700, 3402, 3408, 3409, 3414, - 3407, 3420, 3422, 3426, 3427, 3428, 3430, 3429, 3431, 3432, - 3441, 3439, 3440, 3437, 3443, 3446, 5700, 3447, 3453, 3455, - 3458, 3460, 3467, 3468, 3471, 3463, 3472, 3470, 3479, 5700, - 3474, 3476, 3478, 3481, 3491, 3483, 3493, 3484, 5700, 3488, - 3492, 3494, 5700, 3495, 3501, 3504, 3508, 3497, 3515, 3510, - - 3513, 3514, 3512, 5700, 3519, 5700, 3522, 3523, 3526, 5700, - 3528, 3529, 3531, 3533, 3530, 3537, 3538, 3545, 3534, 3546, - 3547, 3548, 3549, 3551, 3558, 3550, 5700, 3559, 3557, 3561, - 3562, 3568, 3566, 3569, 3574, 3572, 5700, 5700, 3581, 5700, - 3573, 3582, 3583, 5700, 3586, 3588, 3593, 3589, 3591, 3594, - 3604, 3597, 5700, 3600, 3595, 3608, 3610, 3611, 3612, 3613, - 3614, 3616, 3618, 3617, 5700, 3620, 3622, 3628, 3621, 3629, - 3635, 3641, 3630, 5700, 3643, 3645, 3637, 3651, 3652, 5700, - 3644, 5700, 3654, 3657, 3658, 3660, 3661, 5700, 3663, 3664, - 3668, 3669, 3671, 3673, 3674, 3677, 3681, 3683, 3684, 3691, - - 3687, 3689, 3686, 5700, 3688, 3696, 3698, 3705, 3693, 3700, - 3709, 3711, 3712, 3713, 3718, 3715, 3722, 3724, 3719, 3726, - 3730, 3731, 3740, 3733, 3736, 5700, 3737, 3741, 3745, 5700, - 3743, 3744, 3751, 3754, 3747, 3755, 3758, 3757, 3761, 5700, - 3763, 3766, 3759, 3762, 3772, 3780, 5700, 5700, 3781, 5700, - 3782, 3768, 3769, 3783, 3770, 3785, 3793, 3790, 3797, 3786, - 3798, 3803, 3804, 3812, 3813, 3815, 3816, 3810, 3814, 5700, - 5700, 3821, 3822, 3824, 3826, 3827, 3829, 3831, 3836, 3835, - 3838, 3843, 3845, 3852, 5700, 3847, 3844, 3853, 5700, 3854, - 3855, 3858, 3856, 3861, 3859, 3862, 3868, 3865, 3870, 3875, - - 3863, 3872, 3873, 3882, 3883, 3876, 3891, 5700, 3893, 3886, - 3888, 3874, 3895, 3898, 3899, 3900, 3902, 5700, 3903, 3909, - 3910, 3911, 3914, 3916, 3921, 3926, 3931, 3927, 3932, 3933, - 3935, 3937, 3938, 5700, 3941, 3939, 3940, 3949, 3951, 3953, - 3948, 3955, 3956, 3958, 3962, 3963, 3965, 3970, 3966, 3906, - 3971, 3972, 5700, 3973, 3976, 3979, 3982, 3983, 3984, 3986, - 3987, 3993, 3996, 3988, 3997, 3999, 4003, 5700, 4000, 4004, - 4006, 4010, 4016, 4005, 4008, 4011, 5700, 4029, 4013, 4025, - 4017, 4019, 4034, 4030, 4036, 4022, 5700, 4037, 4041, 4043, - 4040, 4044, 4047, 4050, 4051, 5700, 4053, 4054, 4052, 4062, - - 4060, 4069, 4061, 4070, 4064, 4071, 4073, 4074, 4078, 4079, - 4082, 4072, 4096, 4098, 4093, 5700, 4080, 5700, 4085, 4101, - 4105, 4103, 4095, 5700, 4106, 4107, 4109, 4110, 4111, 5700, - 4114, 4113, 4116, 4118, 5700, 4121, 4127, 4119, 4128, 4134, - 4135, 5700, 4138, 4141, 4142, 4149, 4151, 4153, 4146, 4154, - 4150, 4156, 4148, 4157, 5700, 4159, 4161, 4166, 4168, 4169, - 4171, 4172, 4175, 4177, 5700, 4179, 4180, 4181, 4182, 4183, - 4185, 4188, 4192, 4189, 4194, 5700, 4197, 4198, 4208, 4199, - 4204, 5700, 5700, 4209, 4210, 4214, 4215, 4218, 5700, 4216, - 4227, 4222, 4225, 4226, 5700, 5700, 4229, 5700, 4230, 5700, - - 4231, 4233, 5700, 5700, 4232, 4236, 4238, 4239, 4247, 5700, - 4251, 5700, 4258, 4240, 4253, 4255, 4242, 4256, 5700, 4257, - 4263, 4266, 5700, 4259, 4273, 4269, 4270, 5700, 4278, 4272, - 4274, 5700, 4279, 4282, 4283, 4284, 4293, 4286, 4290, 4294, - 4296, 4298, 4303, 4306, 4308, 4299, 4309, 4310, 4312, 4316, - 4318, 4319, 4320, 4321, 4323, 4324, 4326, 4329, 4333, 4334, - 4332, 4335, 4336, 4345, 4338, 4341, 4349, 4342, 4352, 4353, - 4354, 4355, 4357, 4359, 4363, 4362, 4365, 5700, 4364, 4366, - 4368, 4381, 4369, 4370, 4385, 4387, 4393, 4394, 5700, 4396, - 5700, 4398, 4389, 4400, 4401, 5700, 4402, 4403, 4404, 4405, - - 4406, 4408, 4409, 4412, 5700, 4417, 4410, 4414, 4419, 5700, - 4424, 4430, 4431, 4434, 4435, 4436, 4437, 4438, 4441, 4439, - 4444, 4446, 4453, 4448, 4450, 4440, 4462, 4454, 4460, 4463, - 4374, 4470, 4471, 4476, 5700, 4464, 5700, 4472, 4477, 4478, - 4479, 4482, 4484, 4486, 5700, 5700, 4488, 4485, 4489, 4494, - 4491, 4495, 4498, 4507, 5700, 4500, 4510, 4502, 4509, 5700, - 4512, 4516, 4518, 5700, 4519, 4521, 4523, 4525, 4528, 4526, - 4530, 5700, 5700, 5700, 5700, 4534, 4527, 4540, 4537, 4541, - 4543, 4544, 4546, 4547, 5700, 4556, 5700, 5700, 4558, 4559, - 4551, 4561, 4560, 4548, 4569, 4571, 5700, 4557, 4570, 4576, - - 4573, 4583, 4585, 4580, 4586, 4574, 4577, 4596, 4589, 4597, - 4593, 4599, 4601, 4603, 5700, 5700, 4605, 4607, 4609, 4616, - 4614, 4617, 4626, 4621, 4623, 4624, 4627, 4629, 4630, 4631, - 5700, 4634, 4638, 5700, 4632, 5700, 4640, 4646, 4636, 4647, - 4648, 4649, 4652, 4650, 5700, 5700, 4655, 4656, 4661, 4663, - 4664, 4666, 4667, 4669, 4665, 5700, 4670, 5700, 4671, 4673, - 4679, 4672, 4687, 4692, 4694, 4690, 4693, 4695, 4698, 5700, - 4696, 4699, 5700, 4700, 4702, 4706, 5700, 4707, 4710, 4714, - 5700, 4718, 5700, 4723, 5700, 4711, 4725, 5700, 4715, 4726, - 5700, 4729, 4733, 4734, 4730, 5700, 4736, 5700, 4738, 4740, - - 4741, 4745, 4746, 4748, 4749, 4750, 4751, 4759, 4756, 4760, - 5700, 5700, 4772, 4752, 4757, 4763, 4767, 4776, 4769, 4774, - 4780, 5700, 5700, 4781, 5700, 4782, 4784, 5700, 4785, 4788, - 4789, 4792, 4793, 4795, 4798, 4800, 4801, 4796, 4809, 4802, - 4814, 4816, 4818, 4822, 4824, 4826, 4827, 4828, 4805, 4829, - 4830, 4833, 5700, 4835, 4836, 4837, 5700, 4841, 4844, 4846, - 4847, 5700, 4857, 4849, 4854, 4859, 5700, 4843, 4865, 4867, - 4869, 4862, 4860, 4878, 4870, 4876, 5700, 5700, 5700, 5700, - 4880, 4874, 5700, 4881, 4882, 5700, 5700, 4884, 4886, 4887, - 4897, 5700, 4888, 5700, 4889, 5700, 4893, 4896, 4902, 4899, - - 5700, 4906, 4912, 5700, 4905, 4915, 4918, 4919, 4920, 4922, - 4921, 5700, 4929, 4925, 4927, 4934, 4924, 4931, 4938, 4935, - 4945, 4936, 4947, 5700, 4937, 4944, 4948, 5700, 4950, 5700, - 4951, 4954, 4958, 4957, 4955, 4960, 4965, 4969, 4963, 4976, - 4972, 5700, 4978, 4981, 5700, 4982, 5700, 4984, 5700, 4970, - 4985, 4988, 4987, 5700, 5700, 4994, 4990, 4995, 4996, 5700, - 4997, 4999, 5700, 5000, 5002, 5007, 5009, 5011, 5017, 5012, - 5019, 5014, 5026, 5021, 5025, 5022, 5030, 5032, 5038, 5700, - 5700, 5700, 5033, 5027, 5049, 5051, 5041, 5052, 5048, 5700, - 5053, 5054, 5055, 5062, 5060, 5064, 5700, 5068, 5057, 5061, - - 5700, 5072, 5080, 5081, 5069, 5082, 5085, 5089, 5091, 5092, - 5700, 5094, 5700, 5700, 5095, 5700, 5096, 5098, 5099, 5100, - 5700, 5103, 5105, 5104, 5106, 5108, 5109, 5111, 5700, 5700, - 5113, 5700, 5123, 5125, 5117, 5132, 5127, 5065, 5134, 5135, - 5700, 5129, 5136, 5137, 5138, 5141, 5700, 5143, 5144, 5145, - 5146, 5152, 5148, 5154, 5153, 5155, 5700, 5700, 5157, 5162, - 5700, 5700, 5159, 5168, 5169, 5700, 5700, 5700, 5179, 5700, - 5181, 5185, 5189, 5193, 5184, 5700, 5195, 5192, 5197, 5700, - 5196, 5199, 5700, 5700, 5200, 5202, 5203, 5204, 5161, 5700, - 5205, 5206, 5216, 5219, 5221, 5212, 5224, 5222, 5236, 5214, - - 5226, 5228, 5232, 5233, 5237, 5239, 5241, 5244, 5700, 5700, - 5246, 5700, 5700, 5248, 5255, 5257, 5260, 5262, 5264, 5266, - 5700, 5267, 5269, 5250, 5700, 5252, 5273, 5274, 5275, 5278, - 5279, 5277, 5282, 5700, 5700, 5283, 5284, 5285, 5293, 5286, - 5700, 5295, 5297, 5296, 5300, 5299, 5302, 5303, 5700, 5306, - 5700, 5700, 5700, 5700, 5700, 5700, 5700, 5700, 5309, 5700, - 5308, 5314, 5700, 5315, 5316, 5322, 5317, 5327, 5700, 5323, - 5324, 5328, 4611, 5329, 5330, 5332, 5334, 5336, 5339, 5340, - 5342, 5343, 5347, 5700, 5700, 5348, 5349, 5351, 5352, 5359, - 5370, 5373, 5375, 5360, 5356, 5363, 5377, 5378, 5368, 5380, - - 5387, 5384, 5385, 5389, 5390, 5392, 5700, 5386, 5700, 5394, - 5700, 5700, 5397, 5399, 5402, 5403, 5413, 5414, 5404, 5406, - 5411, 5416, 5700, 5417, 5700, 5420, 5421, 5700, 5423, 5424, - 5426, 5427, 5428, 5431, 5433, 5439, 5700, 5435, 5432, 5447, - 5449, 5442, 5455, 5452, 5458, 5459, 5448, 5466, 5465, 5462, - 5700, 5468, 5469, 5471, 5473, 5474, 5481, 5476, 5477, 5479, - 5700, 5483, 5485, 5484, 5486, 5487, 5491, 5498, 5496, 5500, - 5700, 5502, 5507, 5503, 5509, 5511, 5514, 5516, 5515, 5518, - 5520, 5524, 5530, 5531, 5532, 5521, 5536, 5527, 5700, 5543, - 5533, 5700, 5544, 5545, 5535, 5537, 5547, 5700, 5558, 5551, - - 5553, 5559, 5562, 5564, 5700, 5566, 5568, 5569, 5700, 5573, - 5700, 5700, 5574, 5563, 5575, 5581, 5584, 5700, 5700, 5700, - 5608, 5615, 5622, 5629, 5636, 88, 5643, 5650, 5657, 5664, - 5671, 5678, 5685, 5692 ++ 90, 112, 96, 118, 124, 136, 4616, 4433, 81, 6875, ++ 6875, 6875, 129, 52, 130, 63, 131, 152, 70, 140, + 149, 156, 57, 88, 76, 173, 175, 95, 197, 145, - 185, 199, 208, 213, 178, 123, 3351, 6844, 6844, 6844, - 107, 3099, 6844, 6844, 6844, 154, 2963, 2900, 6844, 6844, - 6844, 245, 2522, 6844, 6844, 6844, 163, 2482, 6844, 249, - 6844, 253, 148, 2216, 1825, 6844, 6844, 6844, 257, 1688, - 6844, 6844, 6844, 233, 1531, 263, 201, 0, 267, 0, ++ 185, 199, 208, 213, 178, 123, 4370, 6875, 6875, 6875, ++ 107, 3871, 6875, 6875, 6875, 154, 3773, 3649, 6875, 6875, ++ 6875, 245, 3475, 6875, 6875, 6875, 163, 2996, 6875, 249, ++ 6875, 253, 148, 2649, 2362, 6875, 6875, 6875, 257, 1809, ++ 6875, 6875, 6875, 233, 1758, 263, 201, 0, 267, 0, + 0, 165, 191, 221, 252, 205, 181, 265, 92, 261, + + 216, 263, 271, 272, 210, 279, 274, 282, 278, 291, + 283, 286, 276, 285, 295, 293, 306, 314, 297, 313, + 317, 311, 315, 319, 321, 331, 327, 332, 336, 322, + 339, 337, 346, 345, 347, 348, 353, 351, 357, 284, + 358, 359, 369, 360, 380, 365, 381, 379, 375, 366, - 367, 389, 390, 394, 393, 395, 396, 403, 404, 1436, - 419, 1297, 422, 1003, 429, 930, 888, 433, 775, 437, ++ 367, 389, 390, 394, 393, 395, 396, 403, 404, 1583, ++ 419, 1403, 422, 1306, 429, 1127, 1006, 433, 779, 437, + 441, 0, 433, 705, 447, 479, 287, 452, 411, 445, + 426, 446, 447, 448, 449, 450, 451, 453, 452, 456, + 470, 234, 463, 473, 481, 479, 476, 483, 486, 487, + + 488, 489, 491, 492, 501, 500, 502, 505, 508, 510, + 511, 460, 509, 513, 527, 515, 516, 519, 538, 529, + 540, 543, 539, 548, 555, 400, 550, 551, 558, 553, - 560, 561, 569, 562, 565, 566, 567, 570, 572, 574, - 576, 579, 578, 582, 577, 590, 591, 585, 595, 594, - 606, 601, 608, 604, 605, 362, 607, 611, 615, 623, - 612, 627, 613, 614, 629, 633, 640, 641, 636, 622, - 637, 639, 643, 644, 646, 648, 647, 656, 660, 659, - 663, 667, 657, 665, 669, 671, 673, 649, 682, 675, - 684, 688, 680, 683, 690, 692, 694, 696, 695, 699, - - 697, 700, 708, 704, 713, 712, 721, 716, 722, 719, - 731, 732, 727, 717, 728, 729, 733, 736, 730, 740, - 738, 741, 745, 743, 750, 752, 760, 755, 756, 771, - 763, 766, 762, 774, 773, 765, 769, 794, 799, 782, - 787, 800, 801, 804, 802, 803, 806, 808, 809, 814, - 818, 819, 823, 807, 825, 827, 834, 829, 6844, 831, - 838, 846, 839, 847, 850, 848, 854, 856, 836, 866, - 864, 867, 876, 898, 849, 871, 868, 878, 881, 6844, - 884, 882, 922, 890, 891, 908, 910, 859, 909, 911, - 904, 912, 933, 906, 920, 915, 945, 942, 930, 943, - - 944, 946, 952, 954, 955, 953, 957, 958, 966, 861, - 961, 970, 981, 962, 964, 968, 971, 974, 986, 983, - 990, 991, 993, 995, 997, 996, 1001, 999, 1022, 1004, - 1002, 1000, 1016, 1017, 1024, 1023, 1025, 1028, 1030, 1029, - 1037, 1041, 1038, 1046, 1047, 1048, 1049, 1059, 1054, 1055, - 1056, 1060, 1062, 1063, 1066, 1068, 1069, 1071, 1073, 1074, - 1080, 1081, 1085, 1089, 1075, 1090, 1082, 6844, 1097, 6844, - 1092, 1095, 1099, 1100, 1101, 1102, 1105, 6844, 1107, 1110, - 1109, 1112, 1120, 1115, 1136, 1111, 1118, 1123, 1135, 1119, - 1137, 1145, 1140, 1141, 1148, 1143, 1146, 1147, 1149, 1150, - - 1153, 1156, 1159, 1161, 1155, 1162, 1178, 6844, 1163, 1167, - 1165, 1168, 1176, 1182, 1173, 1181, 1191, 1190, 1201, 1193, - 1199, 1213, 1202, 1203, 1211, 1210, 1215, 1220, 1216, 1222, - 1224, 1225, 1227, 1228, 1226, 1230, 1231, 1234, 1232, 1238, - 1240, 6844, 1247, 1244, 1250, 1255, 1257, 1258, 1259, 1260, - 1261, 1262, 1263, 1264, 1266, 517, 1271, 1282, 1289, 1272, - 1291, 1275, 1290, 1286, 1288, 1265, 1292, 1296, 1294, 1307, - 1298, 1309, 1314, 1322, 1318, 1320, 1327, 1329, 1304, 1324, - 1299, 1326, 1330, 1332, 1334, 1333, 1335, 1341, 1339, 1348, - 1344, 1346, 1345, 1347, 1351, 1353, 1355, 1356, 1357, 1359, - - 1366, 1361, 1373, 1369, 1371, 1372, 1368, 1387, 1376, 1379, - 1391, 1392, 1389, 1390, 6844, 1399, 1398, 1401, 1402, 1408, - 1409, 1410, 1400, 1411, 1414, 1417, 1418, 1419, 1425, 1422, - 1426, 1420, 1427, 1433, 1432, 1440, 1446, 1435, 1450, 1451, - 1453, 1437, 1449, 1456, 1457, 1465, 1462, 1466, 1468, 1464, - 1469, 1478, 1470, 1473, 1475, 1485, 1481, 1482, 1487, 1484, - 1496, 1498, 1490, 1507, 1499, 1509, 1516, 1502, 1488, 1517, - 1506, 1518, 1512, 1521, 1522, 1523, 1526, 1533, 1528, 1529, - 1534, 1535, 1536, 1537, 1541, 1543, 1551, 1547, 1548, 1552, - 1555, 1557, 1560, 1559, 1565, 1561, 1566, 1568, 1569, 1570, - - 1571, 1572, 1576, 1581, 1582, 1589, 1590, 1591, 1592, 1593, - 1594, 1598, 1597, 1599, 1603, 1609, 1610, 1611, 1613, 1616, - 1617, 1619, 1618, 1632, 1633, 1621, 1635, 1622, 1634, 1637, - 1640, 1623, 1642, 1646, 1649, 1645, 1651, 6844, 1653, 1662, - 1657, 1659, 1658, 1661, 1664, 1671, 1666, 1668, 1667, 1669, - 1673, 1695, 6844, 1676, 6844, 6844, 1679, 6844, 6844, 1678, - 1683, 6844, 1684, 1692, 1702, 1699, 1680, 1705, 1698, 1708, - 1710, 1711, 1719, 1732, 1720, 1716, 1722, 1712, 1723, 1725, - 1737, 1742, 1729, 1753, 1745, 1738, 1752, 1762, 1728, 1764, - 1754, 1766, 1767, 1770, 1773, 1772, 1779, 1780, 1774, 1781, - - 1783, 1784, 1788, 1785, 1789, 1791, 1794, 1795, 1792, 1797, - 1798, 1805, 1811, 1802, 1818, 6844, 1814, 1821, 1803, 1829, - 1825, 1832, 1824, 1828, 1831, 1836, 1838, 1833, 1840, 1842, - 1843, 1844, 1845, 1846, 1849, 1851, 1855, 1853, 1870, 1854, - 6844, 1857, 1859, 1856, 1867, 1869, 1871, 1876, 1875, 1877, - 1879, 1746, 1891, 1882, 1884, 1886, 1887, 1892, 1893, 1895, - 6844, 1901, 1908, 1894, 1904, 1897, 1900, 1910, 1912, 1913, - 1914, 1917, 1921, 1919, 1922, 1932, 1927, 1931, 1928, 1929, - 1924, 1939, 1942, 1935, 1946, 1953, 1947, 1954, 1955, 1956, - 1957, 1958, 1959, 1960, 1962, 1967, 1969, 1970, 1977, 1972, - - 1968, 1989, 1991, 1990, 1973, 1975, 1993, 1980, 1996, 2005, - 2006, 2004, 2002, 2003, 2014, 2009, 2011, 2012, 2013, 2019, - 2027, 2017, 2024, 2033, 2023, 2031, 2036, 2025, 6844, 2015, - 2038, 6844, 2040, 2042, 2043, 2065, 2046, 2050, 2048, 2056, - 2057, 2067, 2058, 2061, 2072, 2066, 2084, 2060, 2079, 2085, - 2087, 2090, 2088, 2091, 2092, 2094, 2097, 2098, 2103, 2099, - 2114, 2116, 2113, 2122, 2124, 2119, 2120, 2125, 2144, 2121, - 2123, 2126, 2130, 2131, 2129, 2127, 2137, 2146, 2136, 2138, - 2149, 2154, 2151, 2147, 2161, 2162, 2166, 2167, 2169, 2171, - 2172, 6844, 2180, 2173, 2177, 2181, 2182, 2189, 2188, 2187, - - 6844, 2190, 2191, 2194, 2203, 2198, 2201, 2204, 2202, 2205, - 2208, 2211, 2212, 2215, 2225, 2213, 2232, 6844, 2217, 6844, - 2227, 2214, 2235, 2218, 2229, 2236, 2238, 2239, 2242, 6844, - 6844, 2245, 2246, 2248, 2257, 2252, 2256, 2259, 6844, 2258, - 2266, 6844, 2263, 2270, 2262, 2268, 2269, 2275, 2277, 2279, - 2284, 2280, 2287, 2282, 2286, 2289, 6844, 2292, 2283, 2296, - 2302, 2298, 2299, 2305, 2306, 2309, 6844, 2312, 2313, 2316, - 2323, 2320, 2315, 2325, 2327, 2331, 2326, 2328, 2333, 2334, - 2335, 2342, 2345, 2346, 2349, 2350, 2357, 2356, 2358, 6844, - 2359, 2360, 2362, 2369, 2365, 2367, 2368, 2371, 2372, 2373, - - 2338, 2376, 2374, 2381, 2375, 2383, 2384, 2394, 2397, 2387, - 2396, 2399, 2389, 2400, 2404, 2405, 2410, 2407, 2409, 2411, - 2412, 6844, 2413, 2420, 2421, 2417, 2426, 2415, 171, 2424, - 2427, 2428, 2434, 2436, 2444, 2433, 2447, 2452, 2448, 2449, - 2455, 2451, 2458, 2459, 2460, 2461, 2450, 2463, 2462, 2466, - 6844, 2468, 2474, 2471, 2475, 2478, 2479, 2481, 6844, 2483, - 2491, 2493, 2502, 2496, 2480, 2504, 2505, 2508, 2506, 2509, - 2510, 2511, 2512, 2513, 2519, 2516, 6844, 2521, 2528, 2531, - 2518, 2532, 2539, 2525, 2540, 2541, 2542, 2545, 2544, 2546, - 2550, 2547, 2549, 2551, 2552, 2560, 2571, 2554, 2563, 2564, - - 2567, 2568, 2572, 2576, 2577, 2578, 2585, 2580, 6844, 2592, - 2581, 2589, 2590, 2588, 2591, 2594, 2597, 2611, 2601, 2604, - 2606, 2612, 2621, 2614, 2615, 2623, 2631, 2628, 2616, 2641, - 2637, 2638, 2645, 2636, 2647, 2649, 2639, 2650, 2661, 2651, - 2653, 2658, 2656, 2662, 2671, 2672, 2664, 2674, 2667, 2677, - 2675, 2690, 2695, 2686, 6844, 2684, 2679, 2696, 2698, 2705, - 2700, 2701, 2703, 2702, 2706, 2710, 2711, 2712, 2719, 2717, - 2720, 2721, 2722, 2724, 2725, 2732, 2731, 2733, 2736, 2743, - 2737, 2745, 2746, 6844, 2747, 2751, 2740, 2753, 2755, 2757, - 2761, 2763, 2765, 2766, 2767, 2768, 2772, 2773, 2769, 2775, - - 2774, 2782, 2779, 2781, 2783, 2780, 6844, 2792, 2791, 2796, - 2797, 2799, 2800, 2802, 2809, 2805, 2813, 2815, 2803, 2816, - 2817, 2818, 6844, 2825, 2829, 2827, 2828, 2836, 2826, 2834, - 2837, 2839, 2840, 6844, 2841, 2843, 2049, 2842, 2844, 2845, - 2855, 2856, 2852, 6844, 2865, 2862, 2847, 2851, 2854, 2863, - 2869, 2872, 2870, 2874, 2875, 2878, 2880, 2881, 2884, 6844, - 2886, 2897, 2885, 2892, 2894, 2895, 2898, 2900, 2906, 2907, - 2908, 2912, 6844, 2923, 2920, 2919, 2928, 2921, 2925, 2929, - 2931, 2932, 2934, 2933, 2938, 2935, 6844, 2942, 2939, 2941, - 2944, 2946, 2948, 2949, 2960, 2958, 2961, 2962, 2964, 2965, - - 2967, 2969, 2971, 2972, 2984, 2973, 2974, 2983, 2985, 2975, - 2987, 2993, 2997, 3000, 3005, 3001, 3002, 3007, 3004, 3008, - 3009, 3011, 3018, 3020, 3023, 3021, 3025, 6844, 3028, 3029, - 3031, 3019, 3032, 3034, 3035, 3036, 3038, 3041, 3045, 3042, - 3046, 3049, 3057, 3064, 3052, 3054, 3059, 3062, 3065, 3066, - 3067, 3069, 3070, 3079, 3075, 3076, 3077, 3090, 3082, 3085, - 3093, 3083, 3092, 3094, 3095, 3098, 3097, 3100, 3104, 3106, - 3107, 3108, 3110, 3117, 3120, 3123, 3121, 3124, 3129, 3130, - 3133, 6844, 3131, 3136, 3132, 3134, 3140, 3145, 3146, 3148, - 3150, 3153, 3155, 3157, 3158, 3159, 3163, 3164, 3167, 3174, - - 3170, 6844, 3171, 6844, 3172, 3175, 3176, 3184, 3182, 6844, - 3186, 6844, 3188, 3195, 3183, 3190, 3192, 6844, 3197, 3196, - 3198, 3201, 3203, 3204, 3207, 3209, 3212, 3211, 3213, 3214, - 3219, 3220, 3221, 3224, 3225, 3232, 3226, 3229, 3234, 3235, - 3242, 3244, 3237, 3251, 3243, 3253, 3255, 3254, 3256, 3259, - 6844, 3261, 3267, 3263, 3268, 3246, 3269, 3271, 3274, 3277, - 3278, 3279, 3281, 3282, 3284, 3289, 3283, 3290, 3296, 3297, - 3300, 3307, 3298, 3312, 6844, 3308, 3310, 3311, 3313, 6844, - 3315, 3314, 3323, 3325, 3317, 3321, 3327, 3329, 3333, 3328, - 3335, 3336, 3337, 3350, 3348, 3349, 6844, 3345, 3357, 3341, - - 3358, 3360, 3369, 3370, 3367, 3373, 3375, 3371, 3377, 3378, - 3379, 3380, 3381, 3383, 3390, 3393, 3394, 3395, 3398, 3385, - 3402, 3404, 3405, 3396, 3389, 3406, 3411, 3412, 3413, 3415, - 3416, 3417, 3418, 3419, 3420, 3423, 6844, 3424, 3428, 3432, - 3441, 3433, 3438, 3437, 3444, 3443, 6844, 3447, 3448, 3450, - 3449, 3451, 3456, 3459, 3460, 3462, 3463, 3466, 3467, 3470, - 3469, 6844, 3475, 6844, 3476, 3483, 3478, 3488, 3491, 3489, - 3493, 3498, 3492, 3494, 3499, 3506, 3510, 3500, 3502, 3508, - 3511, 3512, 3514, 3522, 3526, 3520, 3528, 3527, 3529, 3531, - 3538, 3534, 3536, 6844, 6844, 3533, 3535, 3549, 3544, 3542, - - 3552, 3554, 3556, 3559, 3561, 3546, 3562, 3572, 6844, 3563, - 3570, 3573, 3576, 3584, 3574, 3583, 3593, 3586, 3575, 3594, - 3590, 6844, 3597, 3598, 3605, 3600, 3601, 3608, 6844, 3603, - 6844, 3606, 3607, 3609, 3614, 3615, 3618, 3616, 3621, 3619, - 3623, 3624, 3634, 3641, 3642, 3631, 3640, 3643, 3646, 3647, - 3649, 3645, 3656, 3651, 3652, 3653, 6844, 3660, 3654, 3657, - 3662, 3665, 3670, 3672, 3669, 3676, 6844, 3679, 3680, 3681, - 3682, 3683, 3687, 3688, 3691, 3692, 3696, 3700, 3697, 3693, - 3701, 6844, 3702, 3706, 3715, 3708, 3710, 3712, 3717, 3719, - 3724, 6844, 3725, 3727, 3735, 3732, 3733, 3737, 3738, 3734, - - 3740, 3742, 3743, 3744, 3746, 3747, 3752, 3748, 3750, 3757, - 3753, 3765, 3767, 3759, 3769, 3781, 3771, 6844, 3776, 3778, - 3780, 3782, 3783, 3784, 3786, 3789, 3791, 3793, 3804, 3805, - 3794, 3799, 3801, 3808, 3810, 3817, 3809, 6844, 3824, 3816, - 3825, 3821, 3823, 3827, 3829, 3831, 3832, 3836, 3838, 3833, - 3839, 3840, 3841, 3847, 3849, 3846, 3850, 3855, 3856, 3863, - 3861, 6844, 3868, 3864, 3869, 3872, 3866, 3871, 3885, 3880, - 3875, 3882, 3888, 3883, 3890, 3892, 3893, 3896, 3899, 3894, - 6844, 6844, 3901, 3902, 3904, 6844, 3907, 3905, 3917, 3906, - 3919, 3908, 3910, 3921, 3923, 3920, 3930, 3924, 3933, 6844, - - 3934, 3941, 3936, 3937, 3948, 3938, 6844, 3943, 3951, 3953, - 3954, 3955, 3947, 3957, 3958, 3960, 3961, 3965, 3968, 3972, - 3977, 3973, 3974, 3978, 6844, 3975, 3980, 3981, 3984, 3985, - 3988, 6844, 3987, 3990, 3996, 3999, 3992, 4008, 4009, 4000, - 4015, 4010, 4012, 4017, 4018, 4019, 4020, 4021, 4028, 4024, - 4029, 4025, 4032, 4034, 4037, 4043, 6844, 4046, 4048, 4049, - 4051, 6844, 4053, 4062, 4060, 6844, 4063, 4058, 4065, 4066, - 4073, 6844, 4068, 4071, 4074, 4076, 4072, 4085, 4081, 4088, - 4090, 4083, 4087, 4091, 4092, 6844, 4093, 4094, 4095, 6844, - 4098, 4108, 4111, 4115, 4099, 4112, 4116, 4118, 4120, 4121, - - 6844, 4124, 6844, 4125, 4127, 4131, 6844, 4133, 4134, 4135, - 4137, 4138, 4143, 4144, 4150, 4142, 4151, 4152, 4154, 4155, - 4156, 4157, 4164, 4159, 4166, 4163, 4165, 6844, 4168, 4167, - 4173, 4170, 4183, 4178, 4176, 4186, 4189, 4191, 6844, 6844, - 4193, 6844, 4195, 4196, 4197, 4199, 6844, 4201, 4200, 4208, - 4203, 4205, 4209, 4210, 4218, 4027, 6844, 4222, 4223, 6844, - 4219, 4225, 4232, 4227, 4229, 4230, 4233, 4234, 4237, 4238, - 4239, 4243, 4245, 4244, 4240, 4247, 4248, 6844, 4249, 4250, - 4258, 4264, 4257, 4261, 4265, 4271, 4272, 6844, 4274, 4278, - 4277, 4282, 4283, 6844, 4284, 6844, 4285, 4288, 4286, 4289, - - 4294, 4302, 6844, 4299, 4300, 4305, 4306, 4307, 4308, 4311, - 4315, 4309, 4317, 4324, 4321, 4322, 4319, 4329, 4325, 6844, - 4330, 4334, 4339, 4340, 4336, 4342, 4350, 4347, 4343, 4346, - 4353, 4355, 4356, 4357, 4359, 4363, 4365, 4366, 6844, 4367, - 4371, 4374, 4381, 4377, 4378, 4382, 6844, 4385, 4383, 4386, - 6844, 4390, 4392, 4393, 4399, 4396, 4400, 4401, 4404, 4405, - 4407, 4408, 4406, 6844, 4410, 4413, 4409, 4426, 4427, 4415, - 6844, 6844, 4428, 6844, 4433, 4417, 4435, 4436, 4416, 4437, - 4443, 4444, 4449, 4438, 4445, 4451, 4452, 4458, 6844, 4459, - 4466, 4461, 4468, 4469, 4476, 4472, 4465, 4474, 6844, 6844, - - 4480, 4481, 4477, 4485, 4487, 4489, 4490, 4497, 4493, 4499, - 4503, 4504, 4511, 6844, 4506, 4492, 4513, 4495, 6844, 4514, - 4516, 4518, 4519, 4520, 4522, 4526, 4523, 4524, 4527, 4531, - 4528, 4533, 4545, 4535, 4536, 4544, 4538, 4546, 4547, 4537, - 4553, 6844, 4558, 4559, 4562, 4563, 4564, 4565, 4567, 4569, - 4568, 4570, 4577, 6844, 4573, 6844, 4572, 4579, 4592, 4574, - 4575, 4584, 4594, 4597, 4596, 4601, 4603, 4604, 4607, 4608, - 4612, 4602, 4613, 4618, 4620, 4622, 4624, 4625, 6844, 4628, - 4614, 4627, 4631, 4636, 4638, 4639, 4641, 4642, 4645, 4646, - 4648, 4650, 4652, 4654, 4655, 4656, 4657, 4659, 6844, 4662, - - 4666, 4663, 4670, 4672, 4674, 4676, 4683, 4686, 4675, 4677, - 4687, 6844, 4681, 4688, 4698, 6844, 4691, 4693, 4695, 4700, - 4702, 4703, 4708, 4705, 4706, 6844, 4715, 4709, 4712, 4717, - 4718, 4723, 4724, 4725, 4728, 4730, 4735, 6844, 4733, 4734, - 4739, 4740, 4742, 4743, 4747, 4749, 4748, 6844, 4752, 4758, - 4759, 4751, 4771, 4775, 4760, 4761, 4778, 4777, 4779, 4762, - 4770, 4785, 4780, 4786, 4790, 4791, 4792, 4802, 4803, 4794, - 6844, 4773, 6844, 4801, 4804, 4807, 4811, 4809, 4814, 4815, - 4812, 4819, 6844, 4820, 4822, 4825, 4827, 4826, 6844, 4828, - 4829, 4831, 4832, 6844, 4830, 4843, 4834, 4837, 4851, 4852, - - 6844, 4856, 4857, 4858, 4865, 4867, 4862, 4869, 4864, 4872, - 4870, 4866, 4874, 4875, 4883, 4881, 4879, 6844, 4885, 4887, - 4892, 4894, 4888, 4896, 4886, 4898, 4901, 4903, 6844, 4904, - 4907, 4908, 4910, 4911, 4913, 4912, 4914, 4921, 4918, 4922, - 4920, 4926, 4929, 4931, 4933, 4935, 6844, 4937, 4939, 4941, - 4950, 4943, 4940, 6844, 4947, 6844, 4952, 4957, 4959, 4953, - 4960, 6844, 6844, 4963, 4970, 4965, 4969, 4971, 6844, 6844, - 4973, 6844, 4974, 6844, 4975, 4978, 6844, 6844, 4976, 4982, - 4983, 4985, 4986, 4988, 6844, 4996, 6844, 4999, 4997, 4984, - 5001, 5002, 6844, 5003, 5006, 5005, 5012, 5011, 6844, 5016, - - 5019, 5014, 5015, 6844, 5021, 5026, 5018, 5027, 6844, 5033, - 5036, 5038, 5028, 5031, 5039, 5047, 5041, 5042, 5048, 5052, - 5050, 5051, 5053, 5062, 5064, 5066, 5068, 5069, 5054, 5073, - 5074, 5076, 5079, 5082, 5083, 5084, 5085, 5086, 5088, 5090, - 5087, 5092, 5098, 5099, 5100, 5095, 5101, 5108, 5109, 5111, - 5115, 5117, 5118, 5120, 5121, 5122, 5123, 5124, 5125, 5129, - 5130, 5126, 5133, 5137, 5140, 5141, 6844, 5143, 5144, 5145, - 5149, 5150, 5153, 5154, 5163, 5170, 5171, 6844, 5173, 6844, - 5175, 5160, 5177, 5165, 5167, 6844, 5179, 5180, 5181, 5185, - 5183, 5186, 5187, 5190, 5191, 5193, 5194, 6844, 5197, 5200, - - 5201, 5204, 5208, 6844, 5212, 5216, 5202, 5217, 5218, 5219, - 5222, 5224, 5225, 5228, 5227, 5231, 5230, 5233, 5234, 5239, - 5241, 6844, 5249, 5251, 5258, 5245, 5240, 5253, 5256, 5259, - 5260, 5261, 5262, 5266, 5274, 5269, 5276, 6844, 5265, 6844, - 5277, 5278, 5279, 5282, 5283, 5285, 5287, 5289, 6844, 6844, - 5292, 5293, 5295, 5298, 5299, 5301, 5303, 5304, 5305, 6844, - 5306, 5311, 5323, 5316, 6844, 5310, 5318, 5320, 5327, 6844, - 5324, 5328, 5330, 5332, 5333, 5342, 5339, 5345, 5335, 5343, - 5346, 5348, 6844, 6844, 6844, 6844, 5349, 5353, 5357, 5358, - 5359, 5360, 5361, 5365, 5367, 5363, 5364, 5368, 6844, 5378, - - 6844, 6844, 5380, 5381, 5379, 5382, 5388, 5389, 5390, 5392, - 6844, 5391, 6844, 5397, 5398, 5394, 5405, 5411, 5407, 5395, - 5416, 5413, 5417, 5401, 5418, 5427, 5423, 5424, 5426, 5429, - 5431, 5433, 6844, 6844, 5435, 5438, 5439, 5446, 5444, 5447, - 5443, 5456, 5451, 5453, 5454, 5459, 5460, 5461, 5470, 5471, - 5462, 5466, 6844, 5469, 5472, 5480, 6844, 5473, 6844, 5479, - 5481, 5487, 5475, 5488, 5489, 5490, 5494, 5491, 5497, 6844, - 6844, 5496, 5509, 5504, 6844, 6844, 5505, 5506, 5508, 5512, - 5513, 5515, 5507, 5517, 5519, 5521, 6844, 5522, 6844, 5523, - 5525, 5531, 5528, 5539, 5541, 5536, 5544, 5546, 5542, 5547, - - 6844, 5548, 5549, 6844, 5561, 5556, 5560, 5551, 5558, 6844, - 5566, 5563, 5569, 5571, 6844, 5575, 5572, 5577, 6844, 5579, - 6844, 5580, 5583, 5584, 5591, 5586, 6844, 5587, 5592, 6844, - 5595, 5602, 5604, 5605, 5597, 5599, 6844, 5614, 5606, 6844, - 5589, 5616, 5617, 5620, 5611, 5622, 5623, 5625, 5627, 5634, - 5630, 5631, 6844, 6844, 5638, 5637, 135, 5645, 5633, 5640, - 5646, 5647, 5654, 5649, 5651, 5658, 6844, 6844, 5659, 6844, - 5661, 5662, 6844, 5650, 5667, 5671, 5663, 5668, 5676, 5677, - 5678, 5683, 5679, 5684, 5685, 5686, 5688, 5704, 5707, 5689, - 5691, 5709, 5711, 5713, 5715, 5717, 5719, 5720, 5702, 5700, - - 5723, 5724, 5721, 5727, 5730, 5728, 5731, 6844, 5734, 5742, - 5743, 5736, 6844, 5745, 5749, 5753, 5750, 6844, 5758, 5738, - 5759, 5760, 5761, 6844, 5762, 5764, 5767, 5765, 5766, 5772, - 5773, 5782, 5777, 5775, 5787, 6844, 6844, 6844, 5789, 5779, - 6844, 5793, 5786, 5795, 5796, 6844, 5798, 5799, 5801, 6844, - 6844, 6844, 5802, 5804, 5803, 6844, 5805, 5816, 6844, 5806, - 6844, 5807, 6844, 5817, 5819, 5829, 5823, 6844, 5821, 5831, - 5833, 5834, 6844, 5837, 5840, 5842, 5843, 5845, 5848, 5846, - 6844, 5855, 5853, 5854, 5857, 5850, 5860, 5861, 5864, 5862, - 5876, 5863, 5874, 6844, 5811, 5866, 5878, 5884, 5875, 5877, - - 5881, 6844, 5879, 6844, 5887, 6844, 5889, 5890, 5891, 5893, - 5898, 5895, 5900, 5901, 5905, 5906, 5912, 5908, 5914, 5915, - 5921, 5916, 6844, 6844, 5923, 5925, 6844, 5918, 6844, 5928, - 6844, 5929, 5930, 5931, 5933, 5937, 6844, 5944, 5934, 5938, - 5956, 5940, 5948, 6844, 5951, 5955, 5953, 5958, 6844, 6844, - 5959, 5966, 5965, 6844, 5961, 5974, 5976, 5962, 5964, 5981, - 5971, 5978, 5968, 5991, 5986, 5989, 5990, 5993, 5994, 5995, - 5996, 6002, 6844, 6844, 6844, 6004, 5997, 6012, 6008, 6011, - 6019, 6015, 6844, 6018, 6021, 6022, 6024, 6031, 6028, 6030, - 6844, 6026, 6032, 6034, 6035, 6037, 6039, 6040, 6042, 6844, - - 6053, 6055, 6061, 6044, 6057, 6062, 6064, 6066, 6069, 6073, - 6070, 6074, 6047, 6075, 6844, 6077, 6844, 6844, 6078, 6844, - 6079, 6081, 6085, 6084, 6086, 6844, 6089, 6082, 6090, 6091, - 6092, 6093, 6095, 6099, 6844, 6113, 6096, 6110, 6114, 6844, - 6844, 6111, 6118, 6844, 6121, 6122, 6123, 6130, 6126, 6125, - 6135, 6131, 6844, 6139, 6140, 6128, 6141, 6142, 6144, 6146, - 6844, 6149, 6150, 6151, 6153, 6844, 6154, 6158, 6159, 6160, - 6162, 6844, 6163, 6155, 6170, 6178, 6844, 6165, 6179, 6180, - 6844, 6844, 6844, 6187, 6189, 6190, 6844, 6844, 6844, 6844, - 6192, 6195, 6184, 6197, 6844, 6199, 6204, 6208, 6210, 6214, - - 6213, 6844, 6215, 6207, 6219, 6221, 6222, 6844, 6844, 6223, - 6224, 6225, 6227, 6228, 6844, 6844, 6229, 6231, 6233, 6232, - 6234, 6844, 6235, 6240, 6247, 6242, 6255, 6258, 6260, 6250, - 6261, 6262, 6269, 6270, 6252, 6267, 6272, 6273, 6275, 6276, - 6284, 6285, 6281, 6289, 6291, 6286, 6292, 6844, 6844, 6299, - 6844, 6303, 6296, 6844, 6844, 6307, 6309, 6311, 6313, 6844, - 6315, 6317, 6319, 6321, 6300, 6844, 6322, 6324, 6325, 6327, - 6328, 6844, 6330, 6332, 6336, 6337, 6333, 6338, 6340, 6343, - 6844, 6344, 6354, 6844, 6844, 6345, 6355, 6347, 6356, 6349, - 6844, 6361, 6366, 6362, 6365, 6368, 6371, 6369, 6844, 6372, - - 6374, 6844, 6844, 6375, 6377, 6844, 6844, 6380, 6844, 6844, - 6844, 6844, 6844, 6844, 6844, 6844, 6381, 6388, 6844, 6382, - 6394, 6397, 6844, 6399, 6844, 6384, 6400, 6401, 6390, 6844, - 6402, 6844, 6403, 6404, 6408, 6412, 6417, 6418, 6411, 6420, - 6422, 6421, 6423, 6427, 6425, 6429, 6428, 6430, 6431, 6444, - 6435, 6445, 6844, 6844, 6844, 6438, 6446, 6454, 6447, 6458, - 6459, 6462, 6464, 6449, 6465, 6467, 6469, 6471, 6472, 6473, - 6481, 6477, 6478, 6479, 6483, 6480, 6487, 6844, 6493, 6489, - 6494, 6496, 6844, 6499, 6844, 6498, 6844, 6844, 6502, 6505, - 6503, 6507, 6515, 6518, 6508, 6510, 6517, 6519, 6521, 6844, - - 6528, 6844, 6844, 6525, 6529, 6844, 6530, 6531, 6844, 6532, - 6533, 6534, 6537, 6541, 6539, 6540, 6542, 6556, 6844, 6844, - 6543, 6548, 6551, 6560, 6557, 6567, 6564, 6568, 6569, 6571, - 6572, 6581, 6844, 6578, 6579, 6583, 6844, 6585, 6580, 6586, - 6587, 6588, 6596, 6592, 6595, 6844, 6597, 6844, 6601, 6603, - 6604, 6594, 6602, 6605, 6616, 6614, 6610, 6844, 6620, 6624, - 6622, 6626, 6628, 6630, 6631, 6632, 6634, 6637, 6643, 6640, - 6647, 6648, 6644, 6652, 6649, 6844, 6659, 6650, 6844, 6656, - 6660, 6653, 6662, 6666, 6844, 6671, 6664, 6673, 6674, 6677, - 6678, 6844, 6680, 6687, 6682, 6844, 6688, 6844, 6844, 6690, - - 6684, 6691, 6697, 6699, 6844, 6844, 6844, 6724, 6731, 6738, - 6745, 6752, 6759, 6766, 88, 6773, 6780, 6787, 6794, 6801, - 6808, 6815, 6822, 6829, 6836 ++ 560, 561, 571, 562, 566, 567, 570, 569, 573, 577, ++ 574, 580, 578, 583, 584, 598, 595, 585, 601, 586, ++ 594, 596, 612, 602, 611, 362, 607, 610, 619, 624, ++ 609, 627, 620, 623, 629, 634, 631, 641, 636, 639, ++ 640, 642, 644, 643, 646, 647, 648, 656, 659, 660, ++ 664, 667, 657, 668, 658, 670, 673, 674, 683, 675, ++ 685, 679, 689, 688, 690, 692, 694, 696, 695, 697, ++ ++ 700, 703, 708, 704, 713, 714, 721, 719, 724, 717, ++ 726, 733, 728, 729, 730, 731, 734, 736, 732, 737, ++ 738, 742, 745, 743, 753, 754, 755, 759, 758, 774, ++ 763, 764, 771, 784, 765, 767, 769, 775, 796, 785, ++ 798, 799, 800, 803, 804, 801, 808, 807, 809, 811, ++ 823, 813, 820, 826, 827, 829, 830, 837, 832, 6875, ++ 834, 836, 848, 847, 850, 853, 843, 859, 851, 839, ++ 869, 865, 866, 881, 903, 867, 870, 868, 874, 872, ++ 6875, 876, 893, 927, 877, 888, 911, 908, 896, 901, ++ 885, 909, 912, 934, 923, 913, 936, 944, 932, 915, ++ ++ 925, 947, 951, 952, 959, 957, 954, 960, 961, 969, ++ 964, 965, 966, 979, 968, 970, 978, 973, 980, 990, ++ 991, 996, 983, 985, 997, 998, 898, 999, 1008, 1031, ++ 1007, 1002, 1018, 1005, 1020, 1025, 1003, 1021, 1022, 1032, ++ 1033, 1034, 1039, 1037, 1042, 1046, 1043, 1057, 1053, 1055, ++ 1060, 1061, 1062, 1063, 1064, 1066, 1069, 1070, 1071, 1074, ++ 1076, 1080, 1079, 1085, 1087, 1072, 1094, 1090, 6875, 1096, ++ 6875, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 6875, ++ 1109, 1113, 1106, 1111, 1120, 1128, 1122, 1130, 1118, 1133, ++ 1136, 1134, 1138, 1146, 1142, 1147, 1149, 1145, 1151, 1152, ++ ++ 1154, 1157, 1155, 1158, 1163, 1164, 1165, 1166, 1185, 6875, ++ 1169, 1171, 1172, 1177, 1176, 1178, 1182, 1190, 1197, 1188, ++ 1207, 1200, 1208, 1215, 1210, 1213, 1218, 1214, 1222, 1223, ++ 1226, 1227, 1230, 1231, 1232, 1233, 1235, 1236, 1239, 1240, ++ 1238, 1241, 1246, 6875, 1250, 1260, 1261, 1268, 1255, 1248, ++ 1253, 1266, 1269, 1270, 1271, 1273, 1274, 517, 1277, 1279, ++ 1287, 1282, 1289, 1290, 1292, 1291, 1293, 1296, 1297, 1298, ++ 1299, 1310, 1303, 1312, 1319, 1326, 1322, 1324, 1331, 1333, ++ 1313, 1328, 1335, 1336, 1329, 1337, 1339, 1344, 1330, 1343, ++ 1346, 1357, 1347, 1352, 1354, 1355, 1359, 1363, 1361, 1358, ++ ++ 1365, 1366, 1368, 1369, 1377, 1375, 1374, 1383, 1378, 1381, ++ 1387, 1390, 1392, 1393, 1399, 1400, 6875, 1407, 1402, 1409, ++ 1404, 1414, 1417, 1416, 1410, 1418, 1422, 1424, 1423, 1425, ++ 1432, 1433, 1427, 1434, 1435, 1438, 1440, 1449, 1444, 1453, ++ 1460, 1459, 1461, 1454, 1463, 1464, 1465, 1448, 1474, 1471, ++ 1475, 1479, 1473, 1480, 1487, 1483, 1484, 1488, 1495, 1490, ++ 1491, 1494, 1492, 1501, 1503, 1511, 1519, 1504, 1515, 1523, ++ 1505, 1518, 1439, 1521, 1524, 1527, 1528, 1531, 1525, 1532, ++ 1539, 1534, 1541, 1536, 1542, 1535, 1537, 1555, 1547, 1554, ++ 1559, 1560, 1561, 1563, 1564, 1565, 1566, 1568, 1571, 1572, ++ ++ 1575, 1569, 1576, 1577, 1595, 1597, 1578, 1580, 1589, 1598, ++ 1602, 1603, 1604, 1605, 1606, 1609, 1608, 1610, 1611, 1617, ++ 1620, 1621, 1624, 1625, 1626, 1629, 1636, 1627, 1637, 1642, ++ 1631, 1643, 1644, 1647, 1648, 1650, 1653, 1656, 1658, 1651, ++ 6875, 1657, 1670, 1665, 1667, 1666, 1668, 1672, 1679, 1674, ++ 1677, 1680, 1675, 1681, 1702, 6875, 1688, 6875, 6875, 1689, ++ 6875, 6875, 1683, 1691, 6875, 1699, 1686, 1694, 1708, 1715, ++ 1717, 1709, 1713, 1719, 1723, 1732, 1744, 1727, 1725, 1728, ++ 1734, 1735, 1729, 1737, 1750, 1740, 1760, 1754, 1736, 1764, ++ 1772, 1768, 1773, 1770, 1776, 1777, 1779, 1780, 1782, 1789, ++ ++ 1790, 1786, 1791, 1738, 1793, 1795, 1794, 1796, 1800, 1803, ++ 1804, 1801, 1799, 1806, 1818, 1816, 1808, 1826, 6875, 1822, ++ 1829, 1824, 1836, 1832, 1839, 1831, 1835, 1838, 1845, 1848, ++ 1842, 1840, 1849, 1851, 1852, 1853, 1856, 1857, 1861, 1687, ++ 1862, 1864, 1873, 1865, 6875, 1866, 1868, 1869, 1874, 1878, ++ 1880, 1881, 1882, 1885, 1888, 1889, 1900, 1890, 1892, 1895, ++ 1903, 1898, 1901, 1905, 6875, 1904, 1918, 1909, 1915, 1911, ++ 1913, 1921, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1942, ++ 1938, 1939, 1937, 1935, 1943, 1950, 1952, 1955, 1958, 1962, ++ 1940, 1964, 1965, 1966, 1967, 1968, 1970, 1971, 1973, 1978, ++ ++ 1982, 1977, 1985, 1980, 1981, 1989, 2002, 1995, 1987, 1997, ++ 1998, 2000, 2004, 2013, 2014, 2012, 2010, 2011, 2022, 2018, ++ 2020, 2023, 2025, 2026, 2033, 2031, 2035, 2036, 2034, 2040, ++ 2043, 2045, 6875, 2047, 2049, 6875, 2052, 2050, 2051, 2073, ++ 2053, 2055, 2062, 2058, 2061, 2075, 2066, 2069, 2080, 2074, ++ 2093, 2090, 2091, 2096, 2095, 2098, 2097, 2101, 2102, 2104, ++ 2107, 2108, 2114, 2118, 2128, 2130, 2068, 2131, 2133, 2115, ++ 2119, 2111, 2139, 2132, 2136, 2134, 2142, 2149, 2146, 2135, ++ 2152, 2155, 2156, 2157, 2161, 2166, 2162, 2170, 2163, 2164, ++ 2171, 2172, 2174, 2179, 2178, 6875, 2191, 2184, 2186, 2188, ++ ++ 2194, 2201, 2192, 2196, 6875, 2199, 2200, 2202, 2210, 2203, ++ 2206, 2211, 2213, 2214, 2217, 2219, 2220, 2221, 2226, 2222, ++ 2240, 6875, 2227, 6875, 2224, 2235, 2236, 2223, 2244, 2245, ++ 2246, 2247, 2248, 6875, 6875, 2249, 2250, 2256, 2266, 2268, ++ 2264, 2265, 2269, 6875, 2251, 2276, 6875, 2277, 2271, 2272, ++ 2279, 2284, 2283, 2285, 2287, 2294, 2289, 2296, 2291, 2292, ++ 2293, 6875, 2305, 2295, 2310, 2312, 2303, 2304, 2318, 2320, ++ 2314, 6875, 2321, 2322, 2324, 2334, 2332, 2333, 2311, 2336, ++ 2340, 2335, 2337, 2343, 2344, 2345, 2352, 2354, 2355, 2357, ++ 2359, 2366, 2365, 2367, 6875, 2368, 2351, 2371, 2378, 2374, ++ ++ 2376, 2377, 2380, 2381, 2382, 2384, 2385, 2383, 2390, 2392, ++ 2393, 2396, 2403, 2404, 2402, 2406, 2408, 2400, 2409, 2412, ++ 2413, 2418, 2416, 2420, 2421, 2422, 6875, 2425, 2427, 2428, ++ 2430, 2432, 2433, 171, 2438, 2439, 2443, 2441, 2442, 2449, ++ 2445, 2456, 2463, 2458, 2459, 2460, 2461, 2467, 2468, 2470, ++ 2469, 2471, 2472, 2473, 2476, 6875, 2478, 2480, 2483, 2485, ++ 2486, 2487, 2497, 6875, 2489, 2498, 2491, 2504, 2505, 2506, ++ 2514, 2508, 2510, 2509, 2519, 2515, 2521, 2525, 2522, 2526, ++ 2523, 6875, 2532, 2535, 2538, 2529, 2539, 2541, 2546, 2547, ++ 2548, 2550, 2553, 2551, 2552, 2558, 2554, 2557, 2561, 2568, ++ ++ 2560, 2577, 2564, 2567, 2572, 2576, 2580, 2582, 2583, 2585, ++ 2586, 2595, 2588, 6875, 2596, 2592, 2597, 2598, 2593, 2600, ++ 2604, 2603, 2618, 2605, 2614, 2619, 2620, 2633, 2622, 2627, ++ 2629, 2625, 2639, 2631, 2643, 2645, 2648, 2654, 2630, 2657, ++ 2659, 2647, 2660, 2669, 2661, 2665, 2666, 2668, 2672, 2679, ++ 2680, 2676, 2683, 2675, 2677, 2684, 2692, 2698, 2703, 2694, ++ 6875, 2704, 2696, 2702, 2707, 2715, 2710, 2712, 2713, 2717, ++ 2721, 2722, 2723, 2724, 2732, 2727, 2725, 2729, 2735, 2736, ++ 2737, 2744, 2739, 2745, 2747, 2749, 2753, 2755, 2756, 6875, ++ 2759, 2760, 2761, 2763, 2767, 2764, 2774, 2775, 2777, 2769, ++ ++ 2771, 2778, 2786, 2781, 2779, 2788, 2783, 2793, 2789, 2795, ++ 2798, 2797, 6875, 2802, 2806, 2807, 2808, 2809, 2810, 2811, ++ 2817, 2819, 2825, 2823, 2813, 2827, 2829, 2830, 6875, 2838, ++ 2840, 2837, 2839, 2841, 2845, 2846, 2847, 2849, 2850, 6875, ++ 2851, 2853, 2852, 2857, 2855, 2859, 2866, 2867, 2863, 6875, ++ 2874, 2864, 2873, 2876, 2877, 2880, 2879, 2885, 2881, 2883, ++ 2887, 2890, 2892, 2888, 2898, 6875, 2899, 2910, 2902, 2906, ++ 2913, 2900, 2907, 2912, 2923, 2916, 2917, 2924, 6875, 2932, ++ 2929, 2934, 2941, 2936, 1170, 2939, 2937, 2943, 2944, 2946, ++ 2947, 2949, 6875, 2950, 2953, 2954, 2958, 2956, 2961, 2951, ++ ++ 2973, 2963, 2965, 2968, 2974, 2976, 2977, 2978, 2980, 2982, ++ 2990, 2983, 2984, 2993, 2998, 2994, 3003, 2986, 3007, 3010, ++ 3017, 3000, 3015, 3019, 3020, 3013, 3021, 3022, 3030, 3031, ++ 3034, 3032, 3035, 6875, 3038, 3039, 3040, 3023, 3044, 3045, ++ 3046, 3047, 3050, 3048, 3052, 3053, 3055, 3057, 3071, 3073, ++ 3062, 3063, 3066, 3074, 3075, 3078, 3077, 3079, 3080, 3087, ++ 3086, 3088, 3089, 3100, 3090, 3095, 3103, 3092, 3102, 3104, ++ 3105, 3106, 3112, 3107, 3114, 3116, 3110, 3118, 3119, 3120, ++ 3131, 3134, 3122, 3135, 3136, 3141, 3140, 3142, 6875, 3145, ++ 3146, 3143, 3147, 3152, 3155, 3157, 3165, 3156, 3160, 3164, ++ ++ 3166, 3172, 3174, 3175, 3177, 3178, 3185, 3181, 6875, 3182, ++ 6875, 3183, 3184, 3187, 3196, 3191, 6875, 3202, 6875, 3192, ++ 3206, 3197, 3199, 3203, 6875, 3207, 3208, 3212, 3209, 3214, ++ 3216, 3220, 3221, 3222, 3223, 3224, 3225, 3227, 3230, 3231, ++ 3233, 3237, 3239, 3245, 3243, 3244, 3247, 3251, 3252, 3253, ++ 3254, 3260, 3264, 3263, 3265, 3266, 3267, 6875, 3271, 3275, ++ 3268, 3279, 3276, 3277, 3280, 3286, 3287, 3288, 3289, 3291, ++ 3297, 3298, 3300, 3293, 3303, 3304, 3307, 3310, 3320, 3311, ++ 3322, 6875, 3312, 3328, 3319, 3323, 6875, 3325, 3321, 3332, ++ 3334, 3336, 3337, 3339, 3340, 3341, 3344, 3346, 3347, 3353, ++ ++ 3357, 3360, 3349, 6875, 3361, 3364, 3348, 3363, 3375, 3378, ++ 3382, 3379, 3380, 3385, 3383, 3387, 3388, 3389, 3390, 3391, ++ 3393, 3400, 3403, 3404, 3405, 3408, 3395, 3412, 3414, 3415, ++ 3406, 3399, 3416, 3421, 3422, 3423, 3425, 3426, 3427, 3428, ++ 3429, 3430, 3433, 6875, 3434, 3438, 3442, 3451, 3443, 3448, ++ 3447, 3454, 3453, 6875, 3457, 3458, 3460, 3459, 3461, 3466, ++ 3469, 3470, 3472, 3473, 3476, 3477, 3480, 3479, 6875, 3485, ++ 6875, 3486, 3493, 3488, 3498, 3501, 3499, 3503, 3508, 3502, ++ 3504, 3509, 3516, 3520, 3510, 3512, 3518, 3521, 3522, 3524, ++ 3532, 3536, 3530, 3538, 3539, 3541, 3542, 3544, 3549, 3545, ++ ++ 3551, 6875, 6875, 3546, 3547, 3553, 3557, 3555, 3561, 3567, ++ 3569, 3570, 3562, 3572, 3574, 3585, 6875, 3576, 3583, 3577, ++ 3586, 3594, 3587, 3596, 3603, 3601, 3600, 3608, 3604, 6875, ++ 3589, 3607, 3617, 3612, 3613, 3624, 6875, 3615, 6875, 3619, ++ 3620, 3626, 3627, 3628, 3631, 3629, 3632, 3630, 3634, 3636, ++ 3647, 3655, 3657, 3652, 3654, 3644, 3656, 3658, 3660, 3662, ++ 3667, 3663, 3666, 3669, 6875, 3671, 3672, 3676, 3673, 3679, ++ 3681, 3683, 3684, 3689, 6875, 3690, 3691, 3694, 3695, 3696, ++ 3703, 3698, 3704, 3705, 3709, 3706, 3714, 3710, 3713, 6875, ++ 3715, 3718, 3729, 3719, 3726, 3727, 3736, 3737, 3742, 6875, ++ ++ 3743, 3730, 3751, 3747, 3749, 3750, 3753, 3754, 3755, 3757, ++ 3758, 3759, 3760, 3762, 3766, 3767, 3763, 3770, 3769, 3781, ++ 3780, 3772, 3784, 3794, 3790, 6875, 3791, 3795, 3796, 3797, ++ 3798, 3799, 3801, 3804, 3806, 3807, 3809, 3818, 3816, 3820, ++ 3821, 3823, 3728, 3830, 3825, 6875, 3832, 3829, 3839, 3831, ++ 3834, 3835, 3844, 3840, 3845, 3849, 3846, 3851, 3852, 3853, ++ 3854, 3862, 3869, 3864, 3865, 3856, 3866, 3879, 3868, 6875, ++ 3881, 3870, 3882, 3887, 3890, 3891, 3898, 3893, 3894, 3895, ++ 3900, 3896, 3903, 3905, 3907, 3908, 3911, 3912, 6875, 6875, ++ 3918, 3913, 3915, 6875, 3919, 3920, 3927, 3923, 3931, 3926, ++ ++ 3933, 3935, 3934, 3936, 3944, 3937, 3940, 6875, 3952, 3949, ++ 3957, 3950, 3953, 3961, 3964, 6875, 3958, 3965, 3968, 3969, ++ 3971, 3972, 3975, 3973, 3976, 3978, 3981, 3982, 3990, 3993, ++ 3986, 3988, 3991, 6875, 3989, 3997, 3999, 4001, 3998, 4005, ++ 6875, 4002, 4008, 4013, 4010, 4015, 4023, 4025, 4026, 4028, ++ 4018, 4030, 4031, 4033, 4032, 4034, 4035, 4046, 4041, 4036, ++ 4043, 4045, 4057, 4060, 4049, 6875, 4062, 4063, 4047, 4065, ++ 6875, 4069, 4076, 4072, 6875, 4083, 4073, 4080, 4078, 4087, ++ 6875, 4082, 4084, 4086, 4091, 4089, 4101, 4093, 4102, 4104, ++ 4097, 4100, 4105, 4106, 6875, 4107, 4108, 4112, 6875, 4121, ++ ++ 4122, 4126, 4129, 4111, 4136, 4132, 4134, 4135, 4133, 6875, ++ 4140, 6875, 4143, 4137, 4147, 6875, 4144, 4150, 4152, 4154, ++ 4151, 4158, 4159, 4165, 4167, 4155, 4161, 4169, 4171, 4109, ++ 4172, 4179, 4174, 4176, 4178, 4180, 6875, 4181, 4183, 4186, ++ 4184, 4188, 4191, 4197, 4198, 4202, 4199, 6875, 6875, 4206, ++ 6875, 4208, 4210, 4213, 4214, 6875, 4203, 4217, 4221, 4216, ++ 4222, 4225, 4220, 4235, 4224, 6875, 4237, 4239, 6875, 4228, ++ 4241, 4248, 4243, 4245, 4244, 4249, 4253, 4246, 4250, 4256, ++ 4258, 4259, 4260, 4261, 4262, 4267, 6875, 4263, 4265, 4264, ++ 4279, 4275, 4280, 4281, 4285, 4282, 6875, 4289, 4295, 4291, ++ ++ 4296, 4292, 6875, 4298, 6875, 4303, 4304, 4305, 4306, 4310, ++ 4318, 6875, 4314, 4311, 4320, 4315, 4322, 4324, 4323, 4330, ++ 4331, 4332, 4333, 4340, 4337, 4338, 4336, 4345, 4346, 6875, ++ 4343, 4347, 4356, 4357, 4352, 4359, 4366, 4363, 4369, 4364, ++ 4365, 4375, 4372, 4376, 4385, 4378, 4383, 4380, 6875, 4390, ++ 4389, 4392, 4401, 4393, 4394, 4396, 6875, 4397, 4406, 4407, ++ 6875, 4404, 4410, 4414, 4416, 4418, 4419, 4420, 4424, 4421, ++ 4425, 4426, 4422, 6875, 4431, 4432, 4428, 4429, 4442, 4445, ++ 6875, 6875, 4449, 6875, 4450, 4435, 4451, 4452, 4453, 4460, ++ 4462, 4463, 4465, 4457, 4467, 4473, 4471, 4474, 6875, 4479, ++ ++ 4488, 4459, 4490, 4491, 4499, 4480, 4492, 4494, 6875, 6875, ++ 4496, 4501, 4497, 4504, 4507, 4505, 4510, 4515, 4513, 4511, ++ 4520, 4521, 4529, 6875, 4530, 4522, 4531, 4524, 6875, 4525, ++ 4532, 4533, 4536, 4538, 4539, 4545, 4540, 4541, 4547, 4549, ++ 4554, 4552, 4559, 4553, 4555, 4562, 4563, 4565, 4568, 4566, ++ 4572, 6875, 4575, 4576, 4577, 4578, 4580, 4585, 4586, 4587, ++ 4588, 4589, 4598, 6875, 4591, 6875, 4594, 4590, 4593, 4611, ++ 4601, 4615, 4612, 4616, 4618, 4620, 4622, 4623, 4626, 4627, ++ 4633, 4628, 4636, 4637, 4630, 4641, 4645, 4646, 6875, 4647, ++ 4648, 4650, 4653, 4655, 4657, 4658, 4660, 4661, 4663, 4666, ++ ++ 4664, 4672, 4674, 4675, 4667, 4678, 4680, 4682, 6875, 4683, ++ 4685, 4686, 4691, 4692, 4693, 4696, 4697, 4703, 4707, 4699, ++ 4708, 4709, 6875, 4712, 4713, 4715, 6875, 4716, 4717, 4720, ++ 4721, 4729, 4722, 4726, 4724, 4730, 6875, 4734, 4737, 4742, ++ 4738, 4743, 4744, 4746, 4747, 4750, 4751, 4755, 6875, 4760, ++ 4756, 4764, 4765, 4763, 4766, 4771, 4776, 4767, 6875, 4777, ++ 4778, 4780, 4774, 4790, 4797, 4786, 4787, 4800, 4796, 4798, ++ 4795, 4799, 4805, 4804, 4806, 4809, 4810, 4811, 4822, 4823, ++ 4824, 6875, 4814, 6875, 4821, 4826, 4829, 4833, 4831, 4836, ++ 4837, 4839, 4842, 6875, 4843, 4847, 4849, 4846, 4851, 6875, ++ ++ 4853, 4850, 4852, 4856, 6875, 4854, 4869, 4855, 4858, 4872, ++ 4876, 6875, 4879, 4880, 4881, 4888, 4890, 4885, 4892, 4873, ++ 4895, 4889, 4893, 4897, 4898, 4906, 4903, 4904, 6875, 4908, ++ 4902, 4911, 4913, 4914, 4915, 4919, 4921, 4927, 4920, 6875, ++ 4929, 4922, 4928, 4930, 4931, 4932, 4935, 4938, 4946, 4941, ++ 4951, 4944, 4937, 4949, 4953, 4954, 4960, 6875, 4957, 4961, ++ 4965, 4972, 4963, 4974, 6875, 4964, 6875, 4967, 4978, 4980, ++ 4982, 4984, 6875, 6875, 4986, 4993, 4988, 4992, 4989, 6875, ++ 6875, 4995, 6875, 4996, 6875, 4997, 4999, 6875, 6875, 5001, ++ 5002, 5003, 5004, 5005, 5013, 6875, 5017, 6875, 5025, 5007, ++ ++ 5020, 5018, 5022, 5026, 6875, 5023, 5029, 5033, 5035, 5037, ++ 6875, 5030, 5046, 5038, 5043, 6875, 5049, 5050, 5041, 5051, ++ 6875, 5054, 5062, 5052, 5059, 5063, 5065, 5064, 5067, 5068, ++ 5071, 5073, 5074, 5075, 5079, 5086, 5088, 5090, 5092, 5093, ++ 5080, 5096, 5099, 5102, 5106, 5097, 5104, 5108, 5110, 5111, ++ 5112, 5114, 5115, 5117, 5119, 5122, 5123, 5129, 5125, 5121, ++ 5126, 5127, 5138, 5140, 5142, 5144, 5145, 5146, 5148, 5149, ++ 5150, 5152, 5153, 5156, 5159, 5154, 5157, 5162, 6875, 5165, ++ 5167, 5169, 5175, 5170, 5176, 5180, 5187, 5191, 5193, 6875, ++ 5195, 6875, 5197, 5182, 5188, 5201, 5202, 6875, 5203, 5204, ++ ++ 5205, 5206, 5207, 5208, 5209, 5210, 5213, 5214, 5218, 6875, ++ 5225, 5215, 5212, 5233, 5236, 6875, 5237, 5239, 5240, 5241, ++ 5243, 5244, 5245, 5247, 5248, 5252, 5250, 5249, 5254, 5263, ++ 5255, 5264, 5267, 6875, 5271, 5277, 5278, 5274, 5279, 5280, ++ 5281, 5283, 5284, 5285, 5286, 5287, 5297, 5298, 5302, 6875, ++ 5290, 6875, 5303, 5306, 5307, 5293, 5310, 5311, 5308, 5314, ++ 6875, 6875, 5317, 5318, 5320, 5322, 5324, 5326, 5330, 5327, ++ 5331, 5341, 6875, 5332, 5348, 5335, 5340, 6875, 5342, 5343, ++ 5349, 5351, 6875, 5354, 5355, 5356, 5359, 5361, 5368, 5365, ++ 5362, 5372, 5373, 5374, 5376, 6875, 6875, 6875, 6875, 5377, ++ ++ 5379, 5382, 5383, 5384, 5386, 5389, 5391, 5393, 5404, 5387, ++ 5390, 6875, 5409, 6875, 6875, 5406, 5410, 5412, 5413, 5414, ++ 5416, 5419, 5417, 6875, 5421, 6875, 5424, 5427, 5423, 5431, ++ 5434, 5437, 5420, 5441, 5443, 5444, 5445, 5446, 5453, 5451, ++ 5454, 5452, 5457, 5459, 5461, 6875, 6875, 5465, 5469, 5392, ++ 5472, 5470, 5474, 5473, 5482, 5477, 5480, 5483, 5484, 5486, ++ 5488, 5495, 5496, 5493, 5491, 6875, 5497, 5500, 5507, 6875, ++ 5501, 6875, 5506, 5512, 5514, 5502, 5508, 5515, 5516, 5522, ++ 5518, 5526, 6875, 6875, 5528, 5535, 5530, 6875, 6875, 5532, ++ 5533, 5537, 5539, 5534, 5540, 5543, 5542, 5545, 5547, 6875, ++ ++ 5548, 6875, 5549, 5550, 5561, 5555, 5564, 5568, 5565, 5573, ++ 5571, 5574, 5572, 5576, 6875, 5575, 5577, 6875, 5585, 5586, ++ 5587, 5578, 5588, 6875, 5593, 5595, 5599, 5601, 6875, 5605, ++ 5602, 5607, 6875, 5609, 6875, 5596, 5610, 5611, 5620, 5617, ++ 6875, 5618, 5621, 6875, 5625, 5627, 5631, 5632, 5628, 5633, ++ 6875, 5637, 5634, 6875, 5639, 5643, 5644, 5648, 5640, 5650, ++ 5651, 5653, 5654, 5662, 5658, 5661, 6875, 6875, 5666, 5667, ++ 135, 5675, 5663, 5670, 5673, 5676, 5683, 5678, 5680, 5688, ++ 6875, 6875, 5689, 6875, 5691, 5692, 6875, 5679, 5697, 5701, ++ 5696, 5705, 5698, 5706, 5707, 5709, 5711, 5712, 5717, 5718, ++ ++ 5719, 5730, 5734, 5720, 5736, 5740, 5742, 5744, 5746, 5748, ++ 5722, 5750, 5732, 5751, 5753, 5754, 5756, 5757, 5760, 5758, ++ 5761, 6875, 5764, 5766, 5768, 5770, 6875, 5773, 5776, 5780, ++ 5782, 6875, 5785, 5786, 5789, 5790, 5791, 6875, 5774, 5794, ++ 5797, 5681, 5801, 5802, 5803, 5804, 5812, 5805, 5807, 5809, ++ 6875, 6875, 6875, 5815, 5823, 6875, 5825, 5817, 5808, 5826, ++ 6875, 5828, 5829, 5830, 6875, 6875, 6875, 5832, 5834, 5836, ++ 6875, 5835, 5843, 6875, 5840, 6875, 5841, 6875, 5846, 5848, ++ 5849, 5847, 6875, 5854, 5858, 5860, 5863, 6875, 5866, 5869, ++ 5873, 5861, 5875, 5877, 5876, 6875, 5884, 5880, 5882, 5889, ++ ++ 5879, 5886, 5883, 5894, 5890, 5906, 5891, 5893, 6875, 5901, ++ 5902, 5909, 5910, 5903, 5912, 5913, 6875, 5915, 6875, 5918, ++ 6875, 5919, 5920, 5921, 5925, 5930, 5924, 5923, 5936, 5926, ++ 5937, 5945, 5938, 5941, 5943, 5949, 5951, 6875, 6875, 5953, ++ 5955, 6875, 5950, 6875, 5961, 6875, 5956, 5958, 5962, 5963, ++ 5968, 6875, 6875, 5965, 5966, 5975, 5982, 5977, 5978, 6875, ++ 5980, 5985, 5983, 5988, 6875, 6875, 5989, 5996, 5993, 6875, ++ 5991, 5995, 6004, 5992, 6001, 6006, 6008, 6011, 6010, 6018, ++ 6014, 6015, 6016, 6023, 6017, 6026, 6028, 6034, 6875, 6875, ++ 6875, 6037, 6024, 6045, 6041, 6043, 6048, 6038, 6875, 6047, ++ ++ 6051, 6053, 6054, 6061, 6057, 6060, 6875, 6064, 6062, 6063, ++ 6065, 6067, 6068, 6069, 6070, 6875, 6072, 6082, 6084, 6086, ++ 6089, 6090, 6093, 6097, 6099, 6101, 6094, 6102, 6110, 6106, ++ 6875, 6109, 6875, 6875, 6105, 6875, 6112, 6113, 6114, 6115, ++ 6116, 6875, 6119, 6120, 6121, 6122, 6123, 6129, 6126, 6131, ++ 6875, 6145, 6127, 6132, 6144, 6875, 6875, 6141, 6153, 6875, ++ 6155, 6156, 6150, 6148, 6157, 6158, 6160, 6163, 6875, 6167, ++ 6165, 6172, 6173, 6174, 6175, 6176, 6875, 6177, 6178, 6180, ++ 6181, 6875, 6184, 6183, 6186, 6188, 6189, 6875, 6190, 6191, ++ 6212, 6205, 6875, 6196, 6214, 6207, 6875, 6875, 6875, 6219, ++ ++ 6222, 6223, 6875, 6875, 6875, 6875, 6225, 6208, 6215, 6229, ++ 6875, 6231, 6235, 6239, 6241, 6245, 6244, 6875, 6246, 6238, ++ 6250, 6252, 6253, 6875, 6875, 6254, 6255, 6256, 6258, 6259, ++ 6875, 6875, 6260, 6262, 6264, 6263, 6265, 6875, 6266, 6271, ++ 6278, 6273, 6286, 6289, 6291, 6281, 6292, 6293, 6300, 6301, ++ 6283, 6298, 6303, 6304, 6306, 6307, 6315, 6316, 6312, 6320, ++ 6322, 6317, 6323, 6875, 6875, 6330, 6875, 6334, 6327, 6875, ++ 6875, 6338, 6340, 6342, 6344, 6875, 6346, 6348, 6350, 6352, ++ 6331, 6875, 6353, 6355, 6356, 6358, 6359, 6875, 6361, 6363, ++ 6367, 6368, 6364, 6369, 6371, 6374, 6875, 6375, 6385, 6875, ++ ++ 6875, 6376, 6386, 6378, 6387, 6380, 6875, 6392, 6397, 6393, ++ 6396, 6399, 6402, 6400, 6875, 6403, 6405, 6875, 6875, 6406, ++ 6408, 6875, 6875, 6411, 6875, 6875, 6875, 6875, 6875, 6875, ++ 6875, 6875, 6412, 6419, 6875, 6413, 6425, 6428, 6875, 6430, ++ 6875, 6415, 6431, 6432, 6421, 6875, 6433, 6875, 6434, 6435, ++ 6439, 6443, 6448, 6449, 6442, 6451, 6453, 6452, 6454, 6458, ++ 6456, 6460, 6459, 6461, 6462, 6475, 6466, 6476, 6875, 6875, ++ 6875, 6469, 6477, 6485, 6478, 6489, 6490, 6493, 6495, 6480, ++ 6496, 6498, 6500, 6502, 6503, 6504, 6512, 6508, 6509, 6510, ++ 6514, 6511, 6518, 6875, 6524, 6520, 6525, 6527, 6875, 6530, ++ ++ 6875, 6529, 6875, 6875, 6533, 6536, 6534, 6538, 6546, 6549, ++ 6539, 6541, 6548, 6550, 6552, 6875, 6559, 6875, 6875, 6556, ++ 6560, 6875, 6561, 6562, 6875, 6563, 6564, 6565, 6568, 6572, ++ 6570, 6571, 6573, 6587, 6875, 6875, 6574, 6579, 6582, 6591, ++ 6588, 6598, 6595, 6599, 6600, 6602, 6603, 6612, 6875, 6609, ++ 6610, 6614, 6875, 6616, 6611, 6617, 6618, 6619, 6627, 6623, ++ 6626, 6875, 6628, 6875, 6632, 6634, 6635, 6625, 6633, 6636, ++ 6647, 6645, 6641, 6875, 6651, 6655, 6653, 6657, 6659, 6661, ++ 6662, 6663, 6665, 6668, 6674, 6671, 6678, 6679, 6675, 6683, ++ 6680, 6875, 6690, 6681, 6875, 6687, 6691, 6684, 6693, 6697, ++ ++ 6875, 6702, 6695, 6704, 6705, 6708, 6709, 6875, 6711, 6718, ++ 6713, 6875, 6719, 6875, 6875, 6721, 6715, 6722, 6728, 6730, ++ 6875, 6875, 6875, 6755, 6762, 6769, 6776, 6783, 6790, 6797, ++ 88, 6804, 6811, 6818, 6825, 6832, 6839, 6846, 6853, 6860, ++ 6867 } ; - static const flex_int16_t yy_def[3526] = -static const flex_int16_t yy_def[2935] = ++static const flex_int16_t yy_def[3542] = { 0, - 3507, 1, 3508, 3508, 3509, 3509, 3510, 3510, 3511, 3511, - 3512, 3512, 3513, 3513, 3514, 3514, 3507, 3515, 3507, 3507, - 3507, 3507, 3516, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3517, 3507, 3507, 3507, - 3517, 3518, 3507, 3507, 3507, 3518, 3519, 3507, 3507, 3507, - 3507, 3519, 3520, 3507, 3507, 3507, 3520, 3521, 3507, 3522, - 3507, 3521, 3521, 3523, 3507, 3507, 3507, 3507, 3523, 3524, - 3507, 3507, 3507, 3524, 3515, 3515, 3507, 3525, 3516, 3525, - 3516, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3517, - 3517, 3518, 3518, 3519, 3519, 3507, 3520, 3520, 3521, 3521, - 3522, 3522, 3521, 3523, 3523, 3507, 3524, 3524, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3521, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3521, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3521, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 2920, 1, 2921, 2921, 2922, 2922, 2923, 2923, 2924, 2924, - 2925, 2925, 2920, 2926, 2920, 2920, 2920, 2920, 2927, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2928, 2920, 2920, 2920, 2928, 2929, 2920, 2920, - 2920, 2929, 2930, 2920, 2920, 2920, 2920, 2930, 2931, 2920, - 2920, 2920, 2931, 2932, 2920, 2933, 2920, 2932, 2932, 2926, - 2926, 2920, 2934, 2927, 2934, 2927, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3521, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3507, 3515, 3507, 3507, 3515, 3507, 3507, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2928, - 2928, 2929, 2929, 2930, 2930, 2920, 2931, 2931, 2932, 2932, - 2933, 2933, 2932, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2932, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3521, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2932, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, - 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2920, 2926, 2932, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3521, 3521, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2932, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2920, - 2920, 2926, 2920, 2920, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3521, 3515, 3515, - 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2926, 2926, 2926, 2932, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2920, 2926, 2926, 2920, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2920, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3507, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3507, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3507, 3515, 3515, 3515, 3515, 3521, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2920, 2926, 2926, 2932, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3507, 3507, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3521, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2920, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3507, 3507, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2920, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3521, 3515, 3507, 3515, 3515, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3507, 3515, 3507, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3507, - 3515, 3507, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3507, 3515, 3507, 3515, 3515, 3515, 3515, - 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, - 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, - 3507, 3507, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3515, 3521, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3507, - 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3507, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3507, 3515, 3507, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 2926, 2920, 2920, 2926, 2926, 2926, 2920, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2920, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, - 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3507, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3521, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2926, 2920, 2926, 2920, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2920, 2926, 2920, - 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2920, - 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3507, 3515, 3507, 3515, 3515, 3515, 3515, - 3515, 3507, 3507, 3515, 3515, 3515, 3515, 3515, 3507, 3507, - 3515, 3507, 3515, 3507, 3515, 3515, 3507, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3507, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2920, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, - 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2920, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3507, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3521, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, - 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3507, 3507, 3507, 3507, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2920, 2926, 2926, - 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, - 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, - 2926, 2920, 2920, 2926, 2926, 2926, 2926, 2926, 2920, 2926, - 2926, 2926, 2926, 2926, 2920, 2920, 2926, 2920, 2926, 2920, -- - 3507, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3507, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3521, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3507, 3507, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3507, 3515, 3515, 3515, 3507, 3515, 3507, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, - 3507, 3515, 3515, 3515, 3507, 3507, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3507, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2920, 2920, 2926, 2926, 2926, 2926, 2926, 2920, - 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, - 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2920, 2926, 2926, - 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, - 2920, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, -- - 3507, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3507, - 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3507, 3515, - 3507, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3507, 3507, 3515, 3515, 3521, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3507, 3515, 3507, - 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2920, 2926, 2920, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2920, 2920, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2920, 2920, 2920, 2920, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2920, 2926, 2920, 2920, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3507, 3507, 3507, 3515, 3515, - 3507, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3507, - 3507, 3507, 3515, 3515, 3515, 3507, 3515, 3515, 3507, 3515, - 3507, 3515, 3507, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2920, 2920, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2920, 2926, 2926, 2920, 2926, 2920, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2920, 2920, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2920, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2920, 2926, 2926, 2926, 2920, 2926, 2926, 2926, - 2920, 2926, 2920, 2926, 2920, 2926, 2926, 2920, 2926, 2926, - 2920, 2926, 2926, 2926, 2926, 2920, 2926, 2920, 2926, 2926, -- - 3515, 3507, 3515, 3507, 3515, 3507, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3507, 3507, 3515, 3515, 3507, 3515, 3507, 3515, - 3507, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3507, 3507, - 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3507, 3507, 3507, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2920, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2920, 2920, 2926, 2920, 2926, 2926, 2920, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2920, 2926, 2926, 2926, 2920, 2926, 2926, 2926, - 2926, 2920, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2920, 2920, 2920, - 2926, 2926, 2920, 2926, 2926, 2920, 2920, 2926, 2926, 2926, - 2926, 2920, 2926, 2920, 2926, 2920, 2926, 2926, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3507, 3515, 3507, 3507, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3507, - 3507, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3507, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3507, 3507, 3507, 3515, 3515, 3515, 3507, 3507, 3507, 3507, - 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, - 2920, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2920, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2920, 2926, 2926, 2920, 2926, 2920, 2926, 2920, 2926, - 2926, 2926, 2926, 2920, 2920, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, - 2920, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, -- - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3507, 3507, 3515, - 3515, 3515, 3515, 3515, 3507, 3507, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3507, 3515, - 3507, 3515, 3515, 3507, 3507, 3515, 3515, 3515, 3515, 3507, - 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3507, 3515, 3515, 3507, 3507, 3515, 3515, 3515, 3515, 3515, - 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2920, 2926, 2920, 2920, 2926, 2920, 2926, 2926, 2926, 2926, - 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2920, - 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2920, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2920, 2926, 2926, - 2920, 2920, 2926, 2926, 2926, 2920, 2920, 2920, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2920, - 2926, 2926, 2920, 2920, 2926, 2926, 2926, 2926, 2926, 2920, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3507, 3507, 3515, 3515, 3507, 3507, 3515, 3507, 3507, - 3507, 3507, 3507, 3507, 3507, 3507, 3515, 3515, 3507, 3515, - 3515, 3515, 3507, 3515, 3507, 3515, 3515, 3515, 3515, 3507, - 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3507, 3507, 3507, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3507, 3515, 3507, 3515, 3507, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2920, - 2926, 2920, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2920, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2920, 2920, 2926, 2926, 2926, 2926, 2926, - 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, - 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2926, 2920, - 2926, 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2920, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2920, 2920, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, -- - 3515, 3507, 3507, 3515, 3515, 3507, 3515, 3515, 3507, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3507, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3507, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3507, 3515, - 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, - 3515, 3507, 3515, 3515, 3515, 3507, 3515, 3507, 3507, 3515, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2920, 2926, - 2920, 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2920, 2926, 2920, 2926, 2926, 2920, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2920, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, - 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2920, 2926, - 2926, 2920, 2926, 2926, 2926, 2926, 2926, 2920, 2926, 2926, -- - 3515, 3515, 3515, 3515, 3507, 3507, 0, 3507, 3507, 3507, - 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, - 3507, 3507, 3507, 3507, 3507 - 2926, 2926, 2926, 2926, 2920, 2926, 2926, 2926, 2920, 2926, - 2920, 2920, 2926, 2926, 2926, 2926, 2926, 2920, 2920, 0, - 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, - 2920, 2920, 2920, 2920 ++ 3523, 1, 3524, 3524, 3525, 3525, 3526, 3526, 3527, 3527, ++ 3528, 3528, 3529, 3529, 3530, 3530, 3523, 3531, 3523, 3523, ++ 3523, 3523, 3532, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3533, 3523, 3523, 3523, ++ 3533, 3534, 3523, 3523, 3523, 3534, 3535, 3523, 3523, 3523, ++ 3523, 3535, 3536, 3523, 3523, 3523, 3536, 3537, 3523, 3538, ++ 3523, 3537, 3537, 3539, 3523, 3523, 3523, 3523, 3539, 3540, ++ 3523, 3523, 3523, 3540, 3531, 3531, 3523, 3541, 3532, 3541, ++ 3532, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3533, ++ 3533, 3534, 3534, 3535, 3535, 3523, 3536, 3536, 3537, 3537, ++ 3538, 3538, 3537, 3539, 3539, 3523, 3540, 3540, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3537, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3537, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3537, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3537, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3523, 3531, ++ 3523, 3523, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3537, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3523, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3531, 3537, 3537, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3537, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, ++ 3531, 3531, 3537, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3537, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3523, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3537, 3531, 3523, 3531, 3531, 3531, 3523, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3523, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3523, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, ++ ++ 3531, 3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3523, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ ++ 3531, 3537, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3523, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3523, 3531, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3537, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3523, ++ ++ 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3523, 3531, 3523, 3531, 3523, 3531, 3531, 3523, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3537, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3523, 3531, 3531, ++ 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3523, 3523, 3523, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3537, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3523, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3523, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3523, 3523, 3531, 3531, 3531, 3523, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ ++ 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3523, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3523, 3531, 3531, ++ 3537, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3523, 3531, 3523, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3523, 3523, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3531, 3523, 3523, 3523, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3523, 3531, 3523, 3531, 3523, 3531, 3531, ++ 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3523, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3523, 3531, ++ 3531, 3523, 3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3531, 3523, 3523, 3531, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3523, ++ 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ ++ 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3531, 3523, 3523, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3523, 3523, 3531, 3531, 3523, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, ++ 3531, 3531, 3523, 3531, 3531, 3531, 3523, 3523, 3523, 3531, ++ ++ 3531, 3531, 3523, 3523, 3523, 3523, 3531, 3531, 3531, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3523, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3523, 3531, 3523, 3531, 3531, 3523, ++ 3523, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3523, ++ ++ 3523, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3523, 3523, 3531, ++ 3531, 3523, 3523, 3531, 3523, 3523, 3523, 3523, 3523, 3523, ++ 3523, 3523, 3531, 3531, 3523, 3531, 3531, 3531, 3523, 3531, ++ 3523, 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3523, ++ 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3523, 3531, ++ ++ 3523, 3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3523, 3531, ++ 3531, 3523, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3523, 3523, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, ++ 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, ++ 3531, 3523, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, ++ ++ 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, ++ 3531, 3523, 3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531, ++ 3523, 3523, 0, 3523, 3523, 3523, 3523, 3523, 3523, 3523, ++ 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, ++ 3523 } ; - static const flex_int16_t yy_nxt[6885] = -static const flex_int16_t yy_nxt[5741] = ++static const flex_int16_t yy_nxt[6916] = { 0, - 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, - 14, 14, 18, 20, 21, 22, 23, 24, 25, 26, - 14, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 14, 14, 14, 42, - 44, 45, 46, 44, 45, 46, 49, 50, 49, 50, - 51, 47, 51, 70, 47, 70, 70, 52, 70, 52, - 54, 55, 56, 57, 70, 18, 54, 55, 56, 57, - 71, 18, 58, 60, 61, 62, 71, 82, 58, 60, - 61, 62, 72, 71, 63, 102, 73, 92, 70, 71, - 63, 15, 16, 17, 65, 66, 67, 75, 71, 75, - - 75, 71, 75, 68, 104, 156, 103, 93, 75, 76, - 140, 140, 69, 15, 16, 17, 65, 66, 67, 71, - 71, 83, 77, 78, 71, 68, 79, 71, 84, 87, - 71, 80, 85, 88, 69, 86, 89, 150, 90, 91, - 81, 71, 94, 71, 96, 71, 71, 158, 71, 105, - 98, 112, 97, 99, 71, 109, 95, 106, 71, 110, - 100, 71, 101, 107, 171, 71, 113, 108, 142, 71, - 114, 142, 118, 71, 119, 111, 115, 71, 120, 116, - 139, 150, 123, 147, 147, 124, 117, 162, 121, 71, - 72, 122, 125, 132, 73, 153, 126, 127, 71, 128, - - 71, 129, 71, 133, 71, 136, 155, 134, 135, 137, - 130, 150, 144, 138, 144, 144, 131, 144, 75, 190, - 75, 75, 149, 75, 149, 149, 70, 149, 70, 70, - 152, 70, 71, 75, 71, 75, 75, 70, 75, 71, - 71, 163, 154, 159, 75, 76, 157, 71, 71, 71, - 160, 71, 71, 172, 71, 71, 71, 71, 165, 71, - 71, 182, 164, 161, 166, 71, 167, 168, 169, 174, - 71, 71, 173, 170, 175, 179, 176, 177, 180, 71, - 71, 249, 188, 181, 178, 183, 71, 71, 71, 184, - 71, 71, 185, 71, 193, 191, 71, 199, 194, 196, - - 71, 198, 71, 200, 197, 186, 187, 189, 71, 202, - 71, 71, 71, 201, 195, 192, 206, 71, 71, 71, - 71, 203, 71, 208, 71, 211, 71, 209, 71, 205, - 204, 71, 213, 71, 224, 207, 222, 216, 71, 210, - 212, 214, 71, 71, 221, 217, 218, 215, 71, 71, - 223, 225, 71, 71, 226, 71, 71, 219, 71, 71, - 232, 220, 71, 71, 236, 228, 227, 235, 71, 233, - 71, 229, 231, 239, 230, 237, 140, 140, 148, 142, - 238, 234, 142, 144, 240, 144, 144, 71, 144, 147, - 147, 149, 242, 149, 149, 75, 149, 75, 75, 150, - - 75, 71, 241, 243, 71, 71, 71, 152, 71, 71, - 71, 71, 250, 71, 247, 71, 253, 71, 244, 245, - 246, 248, 256, 71, 255, 252, 71, 251, 71, 257, - 261, 259, 71, 254, 71, 260, 71, 71, 262, 293, - 71, 265, 258, 263, 71, 270, 266, 71, 71, 71, - 71, 267, 275, 272, 273, 276, 71, 268, 269, 71, - 264, 71, 274, 278, 71, 71, 271, 71, 71, 279, - 280, 71, 71, 71, 71, 294, 285, 286, 291, 282, - 281, 71, 283, 71, 277, 296, 284, 71, 287, 71, - 295, 71, 298, 288, 292, 300, 301, 297, 71, 71, - - 304, 71, 71, 299, 71, 289, 71, 290, 306, 305, - 307, 302, 71, 71, 71, 71, 71, 308, 71, 311, - 303, 71, 309, 71, 71, 310, 71, 313, 71, 71, - 71, 71, 315, 317, 71, 71, 71, 71, 312, 316, - 318, 322, 326, 71, 319, 314, 320, 324, 71, 71, - 329, 71, 71, 323, 321, 71, 71, 331, 71, 325, - 332, 71, 333, 334, 335, 71, 337, 327, 328, 71, - 71, 330, 71, 71, 71, 340, 342, 338, 341, 71, - 336, 71, 71, 344, 71, 71, 345, 339, 71, 71, - 348, 71, 71, 150, 71, 71, 71, 368, 71, 351, - - 343, 353, 355, 346, 347, 349, 71, 350, 71, 356, - 359, 357, 352, 71, 71, 71, 71, 354, 358, 71, - 71, 71, 71, 365, 71, 366, 71, 367, 71, 360, - 364, 71, 71, 361, 146, 363, 71, 369, 362, 370, - 71, 372, 71, 375, 371, 71, 373, 71, 374, 71, - 376, 71, 379, 377, 71, 381, 383, 71, 71, 382, - 378, 71, 71, 71, 71, 386, 71, 384, 380, 388, - 71, 387, 71, 71, 71, 71, 71, 393, 71, 71, - 71, 394, 71, 71, 385, 145, 396, 392, 71, 398, - 389, 390, 71, 391, 71, 400, 402, 395, 397, 71, - - 71, 399, 71, 403, 71, 71, 401, 71, 71, 71, - 417, 404, 71, 411, 413, 71, 71, 428, 414, 71, - 415, 405, 71, 412, 406, 422, 71, 71, 419, 407, - 408, 409, 410, 71, 426, 418, 416, 71, 71, 420, - 421, 423, 71, 71, 424, 430, 71, 425, 427, 71, - 71, 429, 71, 432, 431, 434, 71, 71, 433, 71, - 71, 439, 71, 143, 71, 442, 71, 71, 435, 441, - 521, 71, 71, 71, 71, 438, 436, 443, 444, 437, - 71, 71, 440, 446, 445, 447, 71, 455, 448, 449, - 453, 71, 454, 71, 71, 71, 71, 71, 457, 456, - - 71, 71, 450, 71, 458, 451, 71, 452, 459, 472, - 71, 469, 470, 71, 471, 71, 460, 71, 461, 483, - 462, 467, 71, 484, 468, 473, 71, 474, 485, 71, - 482, 150, 486, 463, 141, 71, 464, 489, 465, 71, - 466, 71, 71, 475, 476, 492, 71, 71, 490, 71, - 71, 71, 487, 477, 488, 478, 479, 480, 496, 71, - 481, 491, 71, 495, 71, 71, 71, 494, 497, 71, - 504, 502, 493, 498, 71, 505, 71, 71, 71, 499, - 501, 71, 500, 509, 503, 71, 71, 71, 71, 71, - 507, 71, 512, 513, 514, 508, 71, 506, 71, 71, - - 71, 71, 511, 519, 522, 71, 524, 516, 515, 71, - 510, 71, 71, 518, 517, 71, 71, 71, 71, 523, - 71, 520, 534, 71, 71, 530, 526, 535, 525, 533, - 528, 527, 529, 536, 537, 71, 531, 71, 532, 71, - 71, 71, 71, 539, 541, 540, 71, 543, 71, 71, - 71, 71, 547, 548, 545, 71, 538, 71, 71, 71, - 71, 544, 542, 546, 549, 71, 71, 71, 71, 554, - 550, 552, 553, 71, 71, 71, 558, 555, 551, 71, - 71, 71, 560, 71, 561, 556, 71, 559, 71, 563, - 71, 564, 71, 562, 557, 71, 566, 71, 567, 71, - - 569, 71, 71, 71, 565, 71, 71, 71, 578, 71, - 571, 568, 71, 580, 71, 573, 71, 581, 579, 71, - 570, 577, 572, 574, 71, 575, 576, 585, 71, 71, - 582, 71, 583, 71, 587, 584, 588, 71, 71, 71, - 71, 71, 71, 590, 591, 594, 71, 71, 586, 71, - 71, 595, 597, 596, 71, 71, 71, 71, 71, 592, - 589, 593, 611, 71, 71, 598, 71, 600, 631, 599, - 71, 601, 610, 71, 71, 609, 602, 614, 603, 615, - 613, 617, 612, 616, 604, 71, 605, 71, 71, 606, - 607, 71, 618, 621, 71, 71, 608, 620, 624, 71, - - 71, 619, 71, 627, 622, 71, 71, 623, 71, 629, - 71, 71, 71, 71, 71, 71, 150, 625, 635, 71, - 626, 630, 71, 636, 71, 632, 71, 71, 640, 71, - 628, 633, 639, 634, 637, 150, 642, 638, 71, 641, - 71, 643, 71, 645, 71, 648, 71, 71, 71, 71, - 649, 651, 71, 644, 646, 654, 652, 653, 71, 647, - 650, 71, 656, 71, 655, 71, 71, 71, 71, 658, - 71, 71, 71, 662, 71, 657, 661, 148, 667, 659, - 71, 663, 660, 668, 71, 670, 71, 71, 664, 71, - 666, 665, 672, 669, 671, 71, 673, 71, 71, 674, - - 71, 675, 71, 71, 71, 677, 71, 71, 676, 678, - 71, 71, 683, 681, 680, 71, 682, 71, 686, 71, - 71, 685, 679, 687, 71, 71, 71, 691, 71, 71, - 689, 71, 694, 71, 684, 71, 692, 695, 688, 71, - 698, 696, 693, 71, 71, 71, 690, 71, 71, 700, - 701, 71, 704, 697, 71, 71, 705, 706, 71, 707, - 71, 699, 702, 71, 71, 709, 703, 710, 711, 71, - 71, 71, 71, 71, 71, 718, 71, 716, 714, 71, - 71, 708, 71, 71, 71, 712, 715, 724, 713, 719, - 71, 722, 71, 71, 717, 71, 723, 71, 720, 721, - - 726, 725, 71, 71, 730, 727, 71, 732, 728, 71, - 729, 734, 71, 71, 733, 735, 71, 71, 737, 71, - 731, 736, 71, 738, 71, 71, 71, 743, 71, 71, - 749, 746, 739, 71, 71, 740, 71, 747, 745, 71, - 71, 71, 71, 752, 741, 742, 751, 744, 753, 71, - 71, 750, 748, 71, 754, 71, 71, 756, 758, 71, - 71, 757, 71, 71, 764, 755, 71, 71, 759, 71, - 71, 765, 71, 71, 71, 766, 71, 760, 761, 71, - 773, 762, 71, 763, 767, 71, 71, 768, 771, 71, - 71, 769, 71, 770, 772, 71, 774, 775, 71, 778, - - 71, 71, 71, 71, 71, 786, 71, 71, 776, 777, - 779, 787, 71, 71, 780, 71, 71, 785, 781, 782, - 783, 784, 71, 789, 71, 788, 71, 790, 71, 791, - 71, 792, 71, 796, 71, 793, 803, 795, 71, 794, - 71, 797, 71, 798, 71, 799, 71, 71, 71, 801, - 800, 150, 808, 802, 71, 804, 806, 807, 71, 805, - 71, 71, 71, 71, 814, 71, 71, 815, 71, 810, - 817, 71, 809, 71, 820, 816, 811, 812, 71, 71, - 71, 71, 818, 813, 71, 822, 71, 819, 826, 71, - 71, 823, 71, 71, 71, 71, 71, 827, 821, 828, - - 71, 71, 71, 71, 825, 71, 832, 857, 829, 824, - 833, 837, 839, 834, 71, 831, 71, 838, 830, 71, - 835, 841, 840, 836, 71, 71, 843, 71, 842, 71, - 844, 71, 846, 847, 849, 71, 71, 71, 845, 71, - 71, 71, 861, 862, 71, 71, 864, 71, 863, 71, - 866, 848, 71, 850, 851, 859, 852, 858, 71, 853, - 860, 71, 865, 867, 854, 71, 869, 71, 868, 870, - 855, 856, 71, 71, 71, 71, 71, 71, 873, 71, - 71, 877, 71, 71, 871, 71, 880, 876, 71, 71, - 71, 878, 872, 884, 900, 874, 875, 879, 71, 71, - - 881, 882, 887, 885, 886, 71, 71, 888, 71, 890, - 883, 889, 891, 146, 71, 71, 893, 71, 71, 892, - 894, 71, 71, 71, 71, 71, 71, 895, 71, 71, - 71, 896, 897, 899, 903, 71, 901, 71, 71, 904, - 71, 906, 71, 898, 71, 902, 905, 71, 71, 908, - 71, 909, 71, 910, 71, 912, 907, 71, 914, 911, - 71, 916, 913, 71, 71, 71, 71, 71, 71, 71, - 923, 71, 921, 71, 919, 924, 71, 71, 917, 915, - 922, 71, 926, 918, 71, 71, 71, 71, 925, 71, - 920, 937, 927, 928, 71, 932, 71, 71, 934, 71, - - 71, 929, 71, 71, 71, 931, 930, 935, 938, 71, - 933, 71, 939, 71, 944, 936, 71, 941, 943, 942, - 71, 940, 945, 71, 71, 947, 71, 71, 71, 954, - 71, 946, 949, 956, 71, 71, 71, 958, 959, 71, - 948, 71, 71, 71, 71, 960, 950, 952, 955, 951, - 953, 71, 71, 71, 71, 966, 957, 964, 967, 71, - 71, 961, 968, 962, 71, 71, 71, 971, 973, 71, - 71, 963, 71, 71, 965, 976, 150, 975, 969, 970, - 71, 71, 71, 71, 979, 972, 978, 71, 974, 71, - 71, 71, 71, 71, 982, 977, 71, 71, 994, 71, - - 71, 997, 71, 980, 995, 71, 985, 981, 71, 983, - 71, 71, 999, 986, 996, 984, 1002, 987, 71, 71, - 71, 988, 71, 989, 71, 1000, 1004, 990, 71, 991, - 998, 1005, 71, 1001, 992, 1008, 1003, 71, 1006, 993, - 71, 1007, 71, 71, 71, 1009, 71, 1011, 1016, 1013, - 1017, 71, 1015, 71, 71, 1010, 71, 1012, 1014, 1018, - 71, 1019, 1020, 71, 71, 71, 71, 71, 71, 71, - 1032, 71, 1022, 1021, 71, 1035, 1031, 1037, 71, 1034, - 71, 1023, 71, 1024, 71, 1033, 71, 71, 1025, 1036, - 1026, 1042, 1038, 1041, 71, 71, 1027, 1043, 1044, 1039, - - 71, 1028, 1029, 71, 71, 1040, 1047, 71, 1030, 71, - 1053, 71, 71, 71, 1048, 71, 71, 1046, 71, 1045, - 1050, 71, 1051, 71, 71, 71, 1049, 1054, 1056, 71, - 71, 1052, 71, 71, 71, 71, 71, 71, 71, 1058, - 1055, 1061, 1060, 1062, 1057, 71, 1065, 71, 71, 1059, - 1064, 1063, 71, 1066, 1071, 1068, 71, 1069, 71, 71, - 71, 1067, 1070, 1073, 1074, 1075, 71, 71, 1077, 71, - 1078, 1072, 1079, 71, 1082, 1076, 71, 71, 71, 1083, - 71, 71, 1080, 71, 1084, 71, 71, 1085, 1086, 1081, - 71, 1087, 71, 1092, 71, 71, 1094, 71, 1095, 71, - - 71, 1088, 71, 1090, 1089, 1097, 71, 1091, 71, 71, - 71, 1098, 71, 71, 1093, 1100, 71, 1101, 1096, 1103, - 71, 1102, 1106, 71, 1099, 71, 1105, 71, 71, 1107, - 71, 71, 1104, 71, 1108, 71, 1110, 71, 1111, 71, - 71, 1109, 1115, 1117, 145, 1112, 1118, 71, 71, 71, - 1113, 71, 71, 1116, 71, 1114, 1119, 71, 1122, 1120, - 1125, 71, 1121, 71, 71, 1123, 71, 71, 1124, 1127, - 71, 71, 1126, 71, 71, 71, 71, 1131, 1132, 1130, - 1128, 1134, 1129, 71, 71, 1137, 1138, 1133, 71, 71, - 71, 71, 71, 1140, 71, 1135, 1141, 71, 71, 71, - - 71, 1145, 71, 1136, 1139, 71, 71, 71, 1143, 1142, - 1144, 1147, 1151, 71, 71, 71, 71, 1146, 71, 1148, - 71, 1155, 1157, 71, 71, 143, 1150, 1156, 1152, 1159, - 1153, 1149, 1154, 1160, 71, 71, 71, 71, 71, 71, - 1162, 1161, 1163, 71, 1158, 71, 71, 71, 1164, 71, - 1166, 71, 71, 1172, 71, 71, 1169, 1165, 71, 71, - 71, 1167, 71, 71, 1182, 71, 1168, 1170, 1176, 1173, - 1171, 71, 71, 71, 1175, 71, 1174, 1178, 1183, 1185, - 1177, 71, 1184, 71, 1186, 71, 1179, 71, 1180, 1187, - 1189, 1181, 1188, 71, 71, 71, 1194, 71, 1191, 71, - - 71, 71, 71, 71, 1195, 1192, 1190, 1196, 1198, 71, - 1200, 71, 71, 1199, 1193, 71, 71, 71, 71, 71, - 1197, 71, 71, 71, 71, 1206, 1201, 1202, 1204, 71, - 1211, 1207, 1205, 71, 1203, 71, 71, 71, 71, 71, - 1208, 1210, 1216, 1209, 1212, 1215, 1218, 71, 71, 71, - 71, 1217, 1220, 1213, 71, 1214, 71, 1222, 71, 1219, - 71, 1221, 1223, 71, 71, 1227, 71, 1267, 1225, 1224, - 1236, 1226, 71, 1234, 71, 1235, 71, 1228, 71, 1237, - 1229, 1230, 71, 1239, 1240, 1231, 71, 1238, 71, 71, - 71, 1232, 71, 1241, 1242, 1233, 71, 1243, 71, 1245, - - 71, 71, 71, 1246, 71, 1247, 71, 1244, 71, 71, - 1255, 1250, 1248, 1252, 71, 1256, 71, 71, 1258, 1249, - 1253, 71, 1257, 71, 1251, 71, 71, 1254, 71, 1265, - 1266, 71, 71, 71, 1260, 1268, 1259, 71, 71, 1261, - 141, 1262, 71, 1263, 1270, 1264, 1271, 1272, 1269, 71, - 71, 71, 1273, 71, 1275, 71, 1276, 71, 71, 1277, - 1274, 71, 71, 71, 71, 1280, 1282, 71, 1288, 71, - 1278, 71, 1281, 1284, 1279, 71, 1283, 1290, 71, 71, - 1287, 1285, 71, 71, 1291, 71, 1289, 71, 1292, 71, - 1296, 71, 1286, 71, 1293, 71, 1295, 71, 1294, 1298, - - 71, 71, 1299, 1297, 71, 1303, 71, 71, 71, 1300, - 1305, 71, 71, 71, 1301, 71, 1302, 1304, 1307, 71, - 1308, 1309, 71, 71, 71, 1311, 71, 71, 1306, 1313, - 1310, 1314, 71, 1320, 71, 1315, 71, 1316, 1312, 1317, - 71, 1318, 71, 71, 71, 71, 1324, 1319, 1325, 1321, - 71, 1322, 71, 1327, 71, 1326, 71, 71, 1323, 71, - 71, 1331, 71, 71, 71, 1328, 71, 1335, 1336, 71, - 71, 1330, 1338, 71, 71, 1337, 1329, 71, 71, 71, - 71, 71, 71, 1332, 1333, 71, 1345, 71, 71, 1334, - 1341, 1339, 1342, 1343, 71, 71, 71, 1340, 71, 1344, - - 1349, 1352, 1346, 1350, 71, 71, 1348, 71, 1354, 71, - 2920, 71, 1347, 1355, 71, 1358, 1356, 1351, 1357, 71, - 71, 71, 71, 71, 1353, 1359, 1363, 1367, 71, 1364, - 1365, 71, 71, 71, 1360, 1361, 1366, 71, 1362, 71, - 71, 1368, 1369, 71, 71, 1373, 71, 71, 71, 1371, - 71, 1370, 1375, 71, 1380, 71, 71, 1372, 71, 1381, - 1377, 1374, 71, 1384, 1376, 71, 1378, 71, 1379, 71, - 71, 71, 71, 71, 1382, 71, 71, 1383, 1391, 1385, - 1388, 1386, 1392, 71, 1387, 71, 1389, 71, 1393, 71, - 1396, 1390, 71, 71, 1394, 1401, 1395, 71, 1398, 1402, - - 1397, 71, 1400, 71, 1403, 71, 71, 1404, 1405, 71, - 71, 71, 71, 71, 1399, 1406, 71, 71, 71, 1407, - 71, 1412, 71, 71, 1411, 71, 71, 1409, 1415, 1418, - 1408, 1410, 71, 1414, 1419, 71, 1416, 1420, 1413, 71, - 1423, 71, 1421, 71, 71, 1417, 71, 71, 71, 71, - 71, 1431, 1422, 1427, 71, 1426, 71, 71, 1434, 1432, - 1424, 71, 71, 1425, 71, 71, 1428, 1437, 1430, 1429, - 71, 1436, 71, 71, 71, 71, 71, 71, 71, 1446, - 1435, 1438, 1433, 71, 71, 71, 1447, 1449, 71, 1439, - 1443, 1440, 71, 1441, 1442, 71, 1451, 1448, 1444, 1445, - - 1450, 71, 71, 71, 71, 71, 1455, 71, 71, 71, - 1456, 1453, 1458, 2920, 1452, 71, 1454, 1462, 71, 71, - 1459, 71, 71, 1457, 1463, 1461, 1464, 71, 1460, 71, - 71, 1465, 1470, 1466, 71, 1467, 1471, 71, 71, 71, - 1468, 71, 71, 1475, 71, 1476, 1474, 1478, 71, 71, - 1469, 71, 1472, 71, 1480, 71, 1479, 71, 71, 71, - 1473, 1483, 71, 71, 1477, 1481, 71, 1486, 71, 71, - 71, 1485, 71, 1482, 71, 1490, 71, 1492, 1487, 1484, - 71, 71, 71, 1496, 71, 71, 1491, 71, 1489, 1488, - 71, 71, 1493, 1501, 71, 1494, 1499, 71, 1497, 71, - - 1504, 1502, 1500, 1498, 71, 71, 1495, 71, 71, 71, - 1503, 1507, 1510, 71, 1509, 71, 1506, 71, 71, 71, - 71, 71, 1517, 71, 2920, 71, 1505, 1508, 1518, 71, - 71, 1512, 71, 1511, 1515, 71, 71, 1513, 1514, 1521, - 1522, 71, 71, 1524, 1516, 1519, 71, 1525, 1526, 1520, - 71, 1528, 1523, 71, 71, 71, 1527, 71, 1530, 71, - 1529, 1532, 71, 71, 1535, 71, 1536, 1533, 71, 1531, - 71, 71, 71, 71, 1541, 1540, 71, 1534, 71, 1547, - 71, 71, 1537, 71, 1544, 71, 1539, 1545, 1538, 71, - 1542, 2920, 1549, 71, 1548, 1553, 1543, 71, 1550, 1546, - - 1552, 71, 71, 71, 1555, 1551, 1557, 1554, 71, 1556, - 71, 71, 71, 71, 71, 1558, 71, 71, 71, 1564, - 1563, 1565, 1567, 1566, 1559, 71, 71, 71, 71, 71, - 71, 1560, 71, 1561, 1569, 1571, 1562, 1570, 71, 71, - 71, 71, 71, 71, 71, 71, 1579, 71, 71, 1568, - 1572, 71, 71, 1584, 71, 1575, 1576, 1577, 71, 1573, - 1574, 1578, 71, 1580, 1581, 1582, 71, 1586, 1583, 71, - 1587, 71, 71, 71, 71, 71, 71, 71, 1585, 71, - 71, 1588, 71, 1592, 1594, 1589, 1602, 71, 71, 1595, - 1593, 1591, 1596, 1603, 71, 1597, 1590, 1598, 71, 71, - - 71, 1600, 1599, 1601, 71, 71, 1605, 1606, 1607, 71, - 1604, 71, 1608, 71, 71, 71, 1610, 71, 1611, 71, - 71, 71, 1619, 71, 1609, 71, 1614, 71, 71, 1616, - 1618, 1613, 1617, 1612, 1620, 71, 71, 71, 1615, 71, - 1623, 1624, 71, 1621, 71, 1622, 71, 71, 1630, 71, - 71, 1625, 71, 71, 1627, 1626, 71, 1633, 71, 1632, - 71, 1634, 71, 71, 1629, 1631, 2920, 1636, 1641, 1628, - 1637, 1638, 71, 1642, 71, 1635, 1644, 1639, 1646, 71, - 1640, 1645, 71, 1647, 71, 71, 1643, 1649, 71, 71, - 1648, 71, 1653, 71, 1650, 71, 1657, 71, 71, 71, - - 1655, 71, 71, 71, 1651, 1652, 1656, 1658, 1654, 71, - 71, 71, 71, 71, 71, 1667, 71, 1661, 71, 1662, - 1659, 71, 1660, 1669, 1663, 1664, 1670, 1665, 1666, 71, - 71, 1671, 71, 71, 71, 71, 1676, 1668, 71, 71, - 71, 1672, 71, 1680, 71, 71, 71, 1675, 1673, 1682, - 71, 1683, 1674, 71, 1678, 1684, 71, 1677, 1679, 1681, - 71, 1685, 1686, 71, 1689, 71, 71, 71, 71, 1693, - 71, 71, 71, 71, 71, 1700, 71, 71, 1688, 1691, - 1695, 71, 71, 1687, 71, 1690, 1694, 1692, 1696, 1697, - 1698, 71, 1704, 71, 1699, 71, 1701, 1703, 1705, 71, - - 1702, 1706, 71, 71, 1707, 1709, 1710, 71, 71, 71, - 71, 71, 1708, 71, 71, 1712, 71, 1713, 71, 71, - 1711, 71, 71, 71, 1718, 71, 71, 71, 71, 1714, - 1719, 1722, 1715, 71, 1716, 1720, 1717, 1721, 1727, 71, - 1728, 71, 1723, 1726, 71, 1725, 71, 71, 1729, 71, - 71, 1733, 71, 71, 1736, 1724, 1737, 71, 1738, 71, - 1730, 1740, 71, 1731, 1732, 71, 1734, 71, 1735, 71, - 1739, 71, 1741, 1744, 71, 71, 1746, 71, 1748, 1745, - 1747, 71, 71, 1750, 71, 71, 1742, 1749, 1743, 71, - 71, 1753, 71, 1752, 71, 1754, 1755, 1756, 1757, 1758, - - 71, 71, 71, 1762, 1759, 71, 1751, 1764, 71, 71, - 71, 71, 1765, 71, 71, 71, 1767, 71, 1770, 1771, - 1760, 1761, 1766, 71, 71, 1763, 1768, 1774, 71, 71, - 71, 1772, 1769, 71, 1776, 71, 71, 1779, 1780, 71, - 71, 1782, 71, 71, 1773, 71, 71, 71, 1788, 71, - 1777, 71, 1787, 71, 1784, 1775, 1785, 1778, 71, 71, - 1781, 71, 71, 71, 1794, 71, 71, 1786, 1783, 1791, - 1792, 1797, 1789, 71, 1790, 1799, 71, 71, 1798, 1793, - 71, 71, 1796, 1802, 1803, 1804, 71, 1801, 71, 71, - 71, 1795, 71, 1805, 71, 71, 1800, 71, 71, 71, - - 71, 1806, 1810, 71, 1813, 1814, 71, 1809, 71, 71, - 71, 71, 71, 1817, 1807, 71, 1808, 71, 1811, 1826, - 71, 71, 71, 1816, 1812, 1823, 1815, 71, 1824, 1818, - 1819, 1820, 1821, 71, 1822, 71, 1825, 1827, 1830, 71, - 71, 71, 71, 71, 71, 71, 1828, 1834, 1837, 1840, - 71, 1829, 71, 71, 71, 1832, 71, 1841, 1839, 71, - 71, 1831, 1833, 1842, 1835, 1836, 71, 1838, 71, 1843, - 1847, 71, 1848, 71, 1849, 1851, 71, 1844, 1852, 1850, - 71, 71, 1845, 71, 71, 71, 1856, 71, 1846, 71, - 1854, 71, 71, 1858, 71, 1855, 71, 71, 1861, 1857, - - 1863, 71, 1853, 1859, 71, 71, 71, 71, 71, 1864, - 71, 1868, 1867, 1865, 71, 1869, 1870, 71, 1862, 1860, - 1871, 71, 1873, 71, 1866, 71, 71, 71, 71, 1874, - 1872, 1875, 71, 1876, 1877, 71, 71, 1878, 1879, 71, - 1881, 71, 71, 71, 71, 1885, 71, 71, 1880, 1884, - 71, 71, 1886, 1882, 1883, 1887, 1888, 1889, 71, 71, - 71, 71, 71, 71, 71, 1896, 1894, 1890, 1891, 1895, - 71, 71, 71, 1898, 71, 71, 1902, 1897, 1892, 71, - 1893, 71, 71, 1901, 1899, 71, 71, 71, 1900, 1909, - 1903, 1904, 1906, 1908, 71, 71, 71, 2920, 1907, 71, - - 1914, 71, 71, 1905, 71, 1916, 71, 71, 71, 1917, - 71, 1910, 1911, 71, 1912, 1913, 1918, 71, 1919, 1915, - 1920, 71, 1922, 71, 71, 71, 71, 71, 1921, 71, - 71, 71, 1923, 71, 71, 71, 1930, 1925, 1926, 1927, - 1934, 71, 71, 71, 2920, 1924, 1929, 1933, 71, 1931, - 71, 1937, 1935, 1932, 71, 1928, 71, 71, 71, 1938, - 1941, 1940, 1936, 1939, 71, 71, 1945, 71, 1942, 1943, - 71, 71, 1944, 71, 71, 1949, 71, 71, 1951, 1947, - 1953, 71, 71, 1948, 71, 1946, 71, 71, 1956, 1955, - 71, 1952, 1957, 1950, 71, 1958, 71, 71, 1962, 71, - - 71, 71, 71, 2920, 71, 1963, 71, 1965, 1954, 71, - 1968, 71, 1959, 71, 1960, 1964, 1972, 1961, 71, 1969, - 1966, 1970, 71, 1967, 71, 71, 71, 1974, 71, 1973, - 1977, 71, 71, 1971, 1975, 71, 1979, 71, 1980, 71, - 1978, 1981, 1976, 71, 71, 1984, 71, 1986, 1982, 71, - 71, 1983, 1987, 71, 71, 1988, 71, 71, 71, 1991, - 71, 1989, 1990, 1992, 71, 1985, 1996, 71, 71, 1993, - 71, 71, 71, 1995, 71, 71, 71, 1994, 1997, 71, - 2005, 71, 71, 71, 2000, 71, 1998, 1999, 2002, 2001, - 2006, 2003, 2004, 71, 71, 71, 71, 2012, 71, 71, - - 2008, 2010, 2007, 71, 2011, 2016, 71, 2015, 2014, 2018, - 71, 71, 2017, 2009, 2013, 2020, 71, 71, 2019, 2023, - 2025, 2021, 2026, 71, 2024, 71, 71, 71, 71, 71, - 2022, 2028, 2027, 2030, 71, 71, 2031, 71, 2035, 71, - 71, 2036, 71, 2039, 71, 2920, 2034, 2029, 71, 71, - 2032, 71, 2041, 2040, 2037, 2042, 71, 71, 71, 2044, - 71, 2033, 2038, 2043, 2045, 71, 71, 71, 71, 71, - 2047, 71, 71, 2049, 71, 71, 71, 2046, 71, 2052, - 2055, 71, 2056, 71, 2051, 71, 71, 71, 71, 71, - 2053, 2054, 2048, 2058, 2050, 71, 71, 2060, 2057, 71, - - 2062, 71, 2059, 2065, 71, 2061, 71, 2064, 71, 2063, - 2069, 71, 71, 71, 2066, 71, 71, 2920, 2067, 71, - 2068, 2076, 71, 71, 71, 2073, 2077, 71, 2106, 71, - 2071, 2075, 2070, 2072, 71, 2081, 2074, 2078, 2082, 71, - 71, 2079, 2080, 2083, 71, 71, 71, 2086, 71, 2089, - 71, 71, 71, 71, 71, 2084, 2090, 2087, 2085, 2091, - 2088, 71, 71, 2095, 71, 2096, 71, 2098, 71, 71, - 2100, 71, 2092, 2093, 2094, 71, 71, 2103, 71, 71, - 2097, 2102, 2104, 71, 71, 71, 71, 2099, 2110, 71, - 2101, 2109, 71, 2105, 2112, 71, 71, 71, 2107, 71, - - 71, 71, 2114, 2116, 2108, 2115, 71, 2117, 2119, 71, - 71, 2111, 71, 71, 2113, 2123, 71, 71, 71, 71, - 2120, 71, 2118, 71, 71, 2121, 71, 2127, 2128, 71, - 71, 2122, 71, 2124, 2126, 71, 2130, 2129, 71, 2131, - 2125, 2132, 71, 71, 2135, 2134, 2133, 71, 2137, 71, - 71, 2139, 2138, 71, 71, 2140, 71, 71, 2136, 2142, - 71, 2143, 2141, 71, 71, 71, 71, 71, 2147, 2152, - 2145, 2149, 2150, 71, 71, 71, 2154, 71, 2144, 2155, - 2151, 2146, 71, 71, 71, 71, 71, 71, 2156, 2159, - 2148, 71, 71, 71, 2153, 71, 2160, 2158, 71, 2164, - - 2161, 2162, 2157, 2165, 2163, 2166, 71, 2169, 71, 71, - 2167, 71, 2171, 2168, 71, 2170, 71, 2172, 71, 71, - 71, 2178, 71, 71, 71, 2173, 71, 71, 2174, 71, - 2175, 71, 71, 2180, 71, 2176, 2177, 2185, 2179, 2181, - 71, 71, 2182, 2184, 2183, 2186, 2189, 71, 71, 2190, - 2191, 71, 2187, 2188, 71, 71, 2194, 2192, 2195, 71, - 2193, 71, 71, 71, 71, 2196, 71, 71, 2198, 71, - 71, 2202, 71, 2197, 71, 2199, 2203, 2204, 2205, 71, - 2201, 71, 71, 2200, 71, 71, 2206, 2210, 71, 2209, - 71, 2207, 71, 71, 71, 71, 71, 2212, 71, 2219, - - 2216, 71, 71, 2211, 2208, 71, 2218, 71, 2220, 2215, - 71, 71, 71, 2213, 2214, 2224, 2223, 71, 2217, 2226, - 2225, 71, 71, 71, 2228, 2221, 2222, 71, 71, 71, - 2229, 71, 2231, 2232, 2233, 71, 2227, 2235, 71, 71, - 71, 2237, 71, 71, 71, 71, 71, 2234, 2236, 71, - 2241, 71, 71, 71, 2230, 71, 2243, 2244, 2239, 2245, - 71, 2238, 2240, 2246, 71, 2247, 71, 2249, 71, 71, - 71, 71, 71, 2248, 2252, 2242, 71, 2251, 2255, 71, - 2257, 2256, 71, 71, 2250, 71, 71, 71, 2254, 2253, - 2260, 71, 71, 2263, 2264, 71, 71, 71, 2259, 71, - - 2258, 2265, 2266, 71, 2261, 2262, 71, 71, 2267, 71, - 2272, 71, 71, 2268, 2271, 2273, 71, 2269, 2274, 71, - 2275, 71, 71, 71, 2276, 71, 2279, 2270, 2278, 71, - 2280, 71, 71, 71, 71, 2285, 71, 71, 2287, 71, - 2277, 2288, 71, 2281, 2282, 71, 71, 71, 71, 71, - 2284, 71, 2291, 2283, 71, 71, 2286, 2289, 71, 2290, - 2292, 2297, 71, 2294, 2298, 71, 71, 71, 71, 2293, - 71, 2295, 71, 2304, 2296, 71, 71, 71, 71, 71, - 2301, 71, 71, 71, 2303, 2305, 2300, 71, 2313, 2355, - 2306, 2299, 2302, 2307, 71, 2308, 2312, 2311, 71, 2315, - - 71, 2309, 71, 2314, 2310, 2316, 71, 71, 2317, 71, - 2318, 71, 2319, 71, 71, 71, 71, 71, 71, 71, - 2320, 71, 71, 71, 2321, 71, 2330, 71, 2327, 2331, - 71, 2334, 71, 2322, 2324, 2323, 2333, 71, 2326, 2325, - 2329, 2328, 2336, 71, 71, 2332, 2335, 71, 71, 71, - 71, 71, 71, 71, 71, 2339, 2345, 71, 2346, 71, - 2347, 71, 2337, 71, 2340, 2338, 71, 71, 2341, 2342, - 2343, 2344, 2350, 71, 2920, 71, 71, 71, 2349, 2348, - 2351, 2354, 2356, 71, 71, 71, 2357, 2352, 2358, 71, - 71, 71, 71, 2353, 2360, 71, 2359, 71, 71, 71, - - 2364, 71, 71, 2362, 71, 2369, 2370, 71, 71, 2361, - 2373, 71, 2363, 71, 2377, 71, 2368, 2365, 2366, 2371, - 71, 2367, 71, 71, 2374, 71, 2372, 2376, 2375, 71, - 2381, 71, 71, 2383, 71, 2378, 71, 2385, 71, 71, - 71, 71, 2388, 71, 2382, 2379, 2386, 71, 2389, 2380, - 71, 2387, 2391, 71, 71, 2384, 71, 71, 2396, 71, - 71, 71, 2390, 2392, 71, 2394, 2395, 2393, 2398, 71, - 71, 71, 71, 71, 71, 2397, 2399, 2400, 2401, 2402, - 2404, 2403, 71, 71, 71, 2407, 71, 71, 2408, 71, - 71, 2405, 2406, 71, 2409, 2411, 71, 2412, 71, 71, - - 2413, 2410, 71, 2417, 2414, 2415, 71, 2418, 2416, 71, - 71, 2419, 71, 2422, 71, 2423, 71, 2421, 71, 2425, - 71, 2420, 71, 2427, 71, 2426, 2794, 71, 2428, 71, - 71, 2424, 2429, 2431, 71, 2430, 71, 71, 2432, 71, - 71, 2433, 71, 71, 71, 71, 2434, 71, 2437, 71, - 2436, 71, 2439, 71, 2440, 2435, 2438, 2441, 2442, 71, - 71, 71, 71, 71, 2443, 71, 2448, 2444, 71, 71, - 2446, 2447, 2449, 2445, 71, 2453, 71, 71, 71, 71, - 71, 2457, 71, 71, 71, 71, 71, 2450, 2455, 2451, - 2461, 2462, 71, 2452, 2464, 2456, 2454, 2458, 2459, 2465, - - 71, 2466, 2467, 71, 2460, 71, 71, 71, 71, 71, - 2463, 71, 71, 71, 2468, 71, 2470, 2473, 2471, 71, - 71, 2476, 2477, 71, 71, 2472, 2478, 71, 71, 2474, - 2479, 71, 2482, 2469, 2475, 2480, 71, 2483, 71, 71, - 2485, 2486, 71, 71, 2481, 2487, 71, 71, 2484, 71, - 2488, 71, 2492, 71, 71, 2493, 2489, 2494, 71, 71, - 2496, 71, 71, 71, 71, 71, 2500, 2490, 2501, 71, - 71, 2491, 71, 71, 2495, 2497, 71, 2502, 2499, 2503, - 71, 2498, 71, 2509, 2504, 71, 2508, 71, 2505, 71, - 2506, 2511, 2512, 71, 71, 71, 2507, 71, 71, 2513, - - 2515, 71, 71, 2514, 2517, 71, 71, 2510, 71, 71, - 2520, 71, 2524, 71, 71, 71, 2527, 2526, 71, 2518, - 2519, 2528, 71, 2516, 2521, 2523, 2530, 71, 2522, 71, - 2531, 71, 2532, 2525, 2529, 71, 2533, 71, 2534, 71, - 71, 71, 71, 71, 2538, 2536, 71, 2542, 71, 71, - 71, 2539, 2543, 2545, 71, 2535, 71, 71, 2547, 71, - 71, 2537, 71, 2540, 2546, 2548, 2541, 71, 2544, 2549, - 71, 2550, 71, 71, 2553, 71, 2551, 2554, 71, 2555, - 71, 2552, 71, 71, 2557, 2559, 2556, 71, 2558, 71, - 2560, 71, 2563, 71, 71, 71, 2561, 71, 2562, 71, - - 71, 71, 71, 2565, 2570, 2564, 71, 2566, 2568, 71, - 71, 2573, 71, 2571, 2574, 71, 2575, 2580, 71, 71, - 2569, 2576, 2567, 2572, 2577, 71, 2578, 2581, 71, 2579, - 2582, 71, 71, 71, 71, 71, 2587, 71, 71, 2586, - 71, 2583, 71, 2588, 71, 2589, 2590, 71, 71, 71, - 71, 71, 2595, 2584, 2585, 2591, 2593, 71, 71, 2597, - 71, 71, 2601, 71, 71, 2592, 2594, 71, 71, 2598, - 71, 71, 2599, 71, 2596, 2604, 71, 2602, 71, 2605, - 2603, 2600, 71, 71, 2606, 71, 2608, 2609, 2611, 71, - 2613, 71, 2607, 2614, 71, 71, 2616, 71, 71, 2617, - - 71, 71, 2610, 71, 2612, 2620, 2621, 71, 71, 71, - 71, 2625, 71, 71, 2618, 71, 2615, 2619, 2627, 2629, - 71, 2630, 71, 2622, 71, 71, 2626, 71, 2624, 2632, - 71, 2623, 71, 2637, 71, 71, 2634, 2628, 71, 71, - 71, 2635, 2641, 71, 2631, 71, 71, 2636, 2642, 2633, - 2639, 71, 2643, 2638, 71, 2640, 2646, 2648, 2644, 2649, - 2645, 71, 71, 2647, 71, 71, 71, 71, 71, 2654, - 71, 2651, 2652, 71, 71, 71, 2657, 71, 71, 2650, - 2658, 71, 71, 2660, 2661, 71, 2689, 2653, 2920, 2659, - 2655, 2656, 2662, 71, 71, 71, 2664, 2666, 71, 2663, - - 2665, 2667, 71, 2668, 71, 71, 2670, 71, 71, 71, - 2669, 71, 71, 71, 2675, 2676, 71, 71, 71, 71, - 2680, 71, 71, 2920, 71, 2683, 71, 2671, 2679, 2682, - 71, 2672, 2677, 2673, 2674, 2684, 71, 2678, 71, 2687, - 71, 2681, 71, 2685, 2686, 71, 2690, 71, 71, 71, - 71, 71, 2688, 2691, 71, 2694, 71, 71, 71, 71, - 2696, 71, 2692, 2695, 2697, 71, 71, 71, 71, 2693, - 71, 2709, 71, 2706, 71, 71, 2698, 2702, 2699, 2700, - 2710, 71, 71, 2701, 2703, 2704, 2711, 2705, 2708, 2730, - 2707, 2712, 71, 2713, 71, 2714, 2715, 71, 71, 2716, - - 2717, 2720, 71, 2718, 2719, 71, 71, 2721, 71, 71, - 71, 2725, 71, 71, 2724, 71, 71, 71, 71, 71, - 2728, 2742, 2727, 2722, 2723, 71, 2729, 71, 2732, 71, - 2733, 2734, 71, 2735, 71, 71, 2731, 71, 2726, 71, - 2736, 71, 2737, 2740, 2738, 71, 71, 2739, 2741, 71, - 71, 2746, 71, 2749, 71, 2747, 2744, 71, 2751, 71, - 2752, 71, 2750, 71, 2743, 71, 2745, 2753, 71, 2754, - 71, 2748, 2755, 71, 2756, 71, 2757, 71, 2758, 71, - 71, 2760, 71, 2761, 2762, 2763, 71, 71, 71, 2759, - 71, 71, 71, 2767, 2769, 71, 71, 71, 71, 71, - - 2771, 2765, 2764, 2766, 2776, 2768, 71, 2773, 71, 71, - 71, 2775, 71, 71, 2770, 71, 71, 2774, 2778, 71, - 2784, 71, 71, 2777, 2772, 2783, 2785, 71, 71, 71, - 71, 2779, 2781, 2780, 2782, 71, 71, 71, 2787, 2788, - 71, 71, 71, 71, 2796, 71, 2793, 71, 2792, 71, - 2789, 2786, 71, 71, 2790, 71, 71, 2795, 2797, 2791, - 71, 71, 71, 2807, 71, 71, 2798, 2799, 2800, 71, - 2802, 2809, 71, 71, 2808, 2805, 71, 2803, 2801, 2815, - 2804, 71, 2806, 71, 2810, 2811, 71, 2812, 71, 2814, - 71, 71, 2813, 71, 2820, 2816, 2817, 71, 71, 71, - - 71, 2823, 71, 71, 2825, 71, 2818, 71, 2819, 2828, - 71, 2821, 71, 2829, 2826, 71, 71, 71, 2822, 71, - 2832, 2833, 2824, 2830, 71, 2827, 71, 71, 2837, 71, - 71, 2834, 2835, 71, 71, 2831, 71, 71, 2840, 71, - 71, 71, 2842, 2836, 71, 71, 71, 2839, 71, 2853, - 2838, 2847, 71, 2844, 2845, 71, 2841, 2848, 2843, 2851, - 71, 71, 71, 2846, 2850, 71, 2849, 2852, 71, 2854, - 2855, 71, 71, 2859, 2861, 71, 2856, 2857, 71, 71, - 2858, 71, 71, 2860, 71, 2862, 71, 71, 2867, 71, - 71, 2864, 71, 2870, 71, 2871, 71, 71, 71, 71, - - 71, 2863, 2874, 2869, 71, 2865, 2866, 2872, 2868, 71, - 2873, 71, 2878, 71, 2879, 71, 71, 2877, 2875, 2876, - 71, 2882, 71, 2884, 71, 2885, 2880, 71, 71, 71, - 2889, 71, 2886, 71, 71, 2883, 2887, 71, 2890, 2891, - 71, 2881, 2892, 71, 71, 71, 71, 2888, 71, 71, - 71, 2893, 2894, 2895, 2896, 2898, 71, 71, 71, 2897, - 71, 2904, 2900, 2901, 71, 2899, 71, 2902, 2920, 2903, - 2905, 71, 71, 2908, 2909, 71, 71, 71, 2911, 71, - 2912, 71, 71, 2906, 2910, 2907, 71, 71, 71, 2913, - 2920, 2914, 2915, 2918, 71, 2916, 2919, 71, 2920, 2920, - - 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2917, 43, 43, - 43, 43, 43, 43, 43, 48, 48, 48, 48, 48, - 48, 48, 53, 53, 53, 53, 53, 53, 53, 59, - 59, 59, 59, 59, 59, 59, 64, 64, 64, 64, - 64, 64, 64, 74, 74, 2920, 74, 74, 74, 74, - 140, 140, 2920, 2920, 2920, 140, 140, 142, 142, 2920, - 2920, 142, 2920, 142, 144, 2920, 2920, 2920, 2920, 2920, - 144, 147, 147, 2920, 2920, 2920, 147, 147, 149, 2920, - 2920, 2920, 2920, 2920, 149, 151, 151, 2920, 151, 151, - 151, 151, 75, 75, 2920, 75, 75, 75, 75, 13, - - 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, - 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, - 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, - 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920 + 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, + 18, 18, 22, 24, 25, 26, 27, 28, 29, 30, + 18, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 18, 18, 18, 46, + 48, 49, 50, 48, 49, 50, 53, 54, 53, 54, + 55, 51, 55, 85, 51, 85, 85, 56, 85, 56, + 58, 59, 60, 61, 85, 22, 58, 59, 60, 61, + 86, 22, 62, 64, 65, 66, 86, 97, 62, 64, + 65, 66, 87, 86, 67, 119, 88, 108, 85, 86, + 67, 19, 20, 21, 69, 70, 71, 75, 76, 77, + + 78, 86, 22, 72, 121, 86, 120, 109, 86, 79, + 160, 160, 73, 19, 20, 21, 69, 70, 71, 75, + 76, 77, 78, 187, 22, 72, 81, 82, 83, 130, + 90, 79, 90, 90, 73, 90, 86, 84, 81, 82, + 83, 90, 91, 86, 86, 98, 92, 93, 170, 84, + 94, 159, 99, 86, 110, 95, 100, 162, 86, 101, + 162, 170, 86, 112, 96, 86, 167, 167, 111, 86, + 102, 113, 137, 115, 103, 173, 116, 104, 86, 105, + 106, 179, 114, 117, 170, 118, 86, 122, 86, 126, + 107, 86, 156, 127, 86, 123, 157, 184, 86, 138, + + 158, 124, 87, 139, 86, 125, 88, 128, 180, 129, + 86, 131, 86, 140, 141, 132, 142, 143, 86, 133, + 144, 86, 148, 86, 149, 134, 86, 145, 135, 86, + 152, 146, 147, 150, 86, 136, 177, 177, 183, 151, + 153, 181, 196, 189, 154, 155, 164, 86, 164, 164, + 90, 164, 90, 90, 169, 90, 169, 169, 174, 169, + 174, 174, 172, 174, 85, 86, 85, 85, 90, 85, + 90, 90, 289, 90, 86, 85, 86, 182, 86, 90, + 91, 185, 190, 188, 86, 86, 197, 86, 191, 86, + 192, 86, 86, 207, 186, 86, 86, 86, 86, 86, + + 178, 199, 193, 194, 86, 198, 86, 195, 86, 200, + 86, 201, 245, 209, 205, 202, 203, 206, 208, 86, + 210, 215, 211, 204, 86, 212, 86, 86, 86, 217, + 86, 218, 86, 220, 86, 86, 226, 221, 213, 214, + 86, 227, 225, 223, 86, 86, 216, 229, 224, 86, + 86, 219, 86, 222, 230, 232, 233, 228, 86, 86, + 86, 86, 231, 235, 86, 237, 86, 240, 234, 238, - 86, 86, 86, 86, 242, 86, 236, 370, 86, 86, ++ 86, 86, 86, 86, 242, 86, 236, 371, 86, 86, + 86, 239, 86, 243, 241, 248, 251, 252, 86, 244, + 253, 247, 86, 86, 86, 254, 249, 246, 260, 257, + + 250, 261, 86, 86, 259, 263, 86, 86, 86, 86, + 258, 267, 255, 86, 264, 256, 86, 86, 262, 266, + 268, 270, 160, 160, 86, 162, 265, 269, 162, 273, + 164, 271, 164, 164, 337, 164, 167, 167, 169, 86, + 169, 169, 90, 169, 90, 90, 170, 90, 174, 272, + 174, 174, 274, 174, 172, 177, 177, 276, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 275, 278, 86, + 281, 284, 280, 86, 277, 279, 86, 287, 286, 283, + 176, 290, 282, 86, 288, 285, 86, 291, 292, 86, + 293, 317, 86, 296, 86, 294, 86, 301, 297, 86, + + 86, 86, 86, 298, 86, 86, 304, 305, 308, 299, + 300, 302, 295, 86, 86, 86, 306, 310, 86, 303, + 311, 86, 86, 86, 86, 307, 86, 318, 86, 86, + 86, 319, 86, 325, 312, 313, 315, 309, 314, 316, + 86, 320, 86, 329, 321, 328, 322, 330, 327, 326, - 332, 86, 86, 86, 736, 334, 86, 338, 323, 331, ++ 332, 86, 86, 86, 739, 334, 86, 338, 323, 331, + 324, 86, 335, 86, 86, 340, 86, 342, 86, 339, - 341, 86, 333, 86, 86, 86, 344, 336, 86, 86, - 86, 343, 86, 86, 346, 86, 348, 86, 345, 86, - 86, 86, 86, 351, 353, 86, 349, 358, 86, 347, - - 352, 354, 359, 86, 86, 350, 355, 86, 86, 360, - 357, 356, 362, 364, 86, 367, 361, 86, 86, 86, - 86, 86, 373, 369, 86, 86, 86, 86, 86, 363, - 374, 372, 365, 366, 376, 86, 86, 368, 377, 371, - 86, 378, 86, 379, 375, 380, 86, 381, 383, 86, - 86, 384, 170, 86, 86, 387, 86, 86, 386, 86, - 86, 86, 86, 394, 388, 390, 392, 395, 385, 86, - 86, 382, 86, 86, 398, 389, 86, 396, 86, 391, - 86, 397, 86, 393, 86, 399, 86, 404, 86, 405, - 409, 406, 400, 86, 403, 86, 86, 86, 402, 407, - - 401, 86, 408, 86, 411, 86, 412, 86, 86, 86, - 86, 415, 86, 86, 410, 419, 416, 86, 175, 417, - 421, 86, 418, 413, 414, 86, 86, 422, 423, 86, - 86, 420, 86, 424, 86, 86, 426, 427, 428, 429, - 86, 86, 86, 86, 86, 86, 86, 435, 432, 86, - 425, 86, 436, 86, 86, 434, 86, 438, 86, 441, - 431, 437, 433, 86, 430, 86, 443, 446, 86, 86, - 439, 447, 440, 86, 442, 86, 86, 445, 86, 86, - 457, 448, 86, 444, 86, 455, 86, 86, 170, 462, - 458, 463, 459, 449, 464, 86, 450, 456, 469, 470, - - 86, 451, 452, 453, 454, 460, 467, 86, 461, 465, - 466, 468, 86, 86, 86, 86, 86, 86, 478, 86, - 86, 86, 86, 480, 476, 477, 479, 86, 481, 473, - 471, 86, 86, 472, 474, 475, 86, 483, 86, 485, - 86, 488, 86, 489, 86, 490, 482, 86, 484, 86, - 506, 86, 86, 494, 491, 487, 493, 495, 486, 86, - 86, 86, 86, 86, 492, 496, 498, 86, 499, 86, - 501, 497, 170, 507, 86, 500, 508, 86, 505, 86, - 86, 86, 522, 502, 86, 509, 503, 523, 504, 86, - 510, 86, 511, 545, 86, 86, 525, 86, 512, 569, - - 528, 168, 513, 86, 86, 524, 526, 514, 527, 530, - 515, 86, 516, 540, 517, 541, 529, 86, 539, 86, - 542, 86, 86, 86, 86, 86, 548, 518, 86, 543, - 519, 166, 520, 86, 521, 86, 544, 531, 532, 547, - 550, 546, 553, 86, 549, 551, 86, 533, 534, 535, - 536, 537, 554, 552, 538, 86, 86, 86, 86, 86, - 556, 563, 555, 558, 561, 86, 86, 86, 86, 564, - 86, 86, 560, 568, 86, 86, 559, 86, 557, 86, - 562, 86, 566, 86, 86, 567, 565, 86, 571, 578, - 570, 572, 573, 575, 86, 574, 86, 576, 577, 86, - - 582, 579, 580, 86, 86, 585, 86, 583, 86, 86, - 86, 601, 86, 86, 86, 86, 165, 86, 603, 581, - 591, 592, 584, 587, 602, 586, 588, 589, 590, 86, - 86, 606, 593, 604, 594, 86, 86, 86, 86, 605, - 595, 86, 86, 86, 608, 609, 610, 611, 596, 597, - 86, 86, 598, 599, 86, 613, 600, 607, 615, 86, - 86, 86, 86, 618, 614, 616, 619, 86, 86, 86, - 612, 620, 86, 86, 617, 86, 86, 625, 623, 86, - 624, 86, 86, 621, 86, 626, 86, 86, 86, 631, - 622, 627, 632, 86, 86, 86, 630, 633, 86, 635, - - 629, 628, 86, 86, 638, 86, 634, 636, 86, 637, - 86, 640, 86, 86, 86, 86, 642, 639, 86, 645, - 86, 643, 86, 86, 86, 86, 641, 653, 86, 656, - 647, 86, 86, 86, 644, 646, 86, 654, 648, 652, - 649, 650, 651, 655, 658, 657, 661, 659, 86, 86, - 86, 660, 663, 86, 86, 666, 86, 665, 86, 86, - 86, 86, 86, 86, 669, 662, 86, 672, 86, 86, - 668, 673, 86, 664, 86, 86, 86, 675, 86, 667, - 86, 86, 670, 671, 674, 690, 86, 677, 678, 86, - 676, 86, 679, 689, 86, 86, 687, 680, 694, 681, - - 692, 688, 693, 86, 86, 682, 86, 683, 691, 695, - 684, 685, 86, 696, 86, 86, 86, 686, 697, 698, - 702, 701, 699, 86, 86, 700, 86, 706, 86, 86, - 704, 703, 705, 86, 709, 86, 711, 86, 86, 86, - 86, 86, 715, 86, 86, 86, 707, 86, 708, 718, - 713, 86, 712, 86, 710, 714, 719, 86, 716, 722, - 86, 724, 726, 170, 720, 717, 721, 725, 86, 723, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 733, 735, 727, 746, 86, 86, 728, 730, 86, 731, - 734, 729, 737, 732, 738, 86, 739, 740, 741, 86, - - 742, 86, 86, 86, 86, 86, 743, 86, 747, 86, - 163, 86, 86, 744, 752, 765, 745, 86, 748, 753, - 86, 755, 86, 751, 754, 749, 756, 86, 750, 757, - 758, 86, 759, 86, 760, 86, 761, 86, 763, 86, - 86, 762, 86, 86, 766, 86, 86, 86, 86, 764, - 769, 770, 86, 768, 86, 774, 773, 86, 86, 86, - 86, 86, 767, 776, 86, 778, 86, 780, 86, 86, - 86, 771, 86, 772, 86, 783, 777, 775, 779, 86, - 787, 86, 86, 781, 86, 86, 86, 788, 790, 86, - 782, 784, 86, 791, 786, 785, 792, 793, 789, 794, - - 86, 795, 86, 86, 86, 86, 802, 796, 797, 798, - 799, 86, 86, 86, 86, 86, 800, 804, 801, 805, - 803, 86, 86, 86, 86, 808, 807, 86, 809, 810, - 86, 86, 86, 86, 812, 86, 814, 816, 86, 86, - 86, 806, 811, 813, 817, 86, 86, 823, 86, 161, - 86, 825, 815, 86, 819, 821, 820, 822, 818, 86, - 826, 827, 86, 86, 86, 824, 86, 828, 830, 86, - 86, 829, 834, 836, 832, 86, 831, 86, 86, 86, - 835, 86, 86, 86, 837, 840, 86, 839, 86, 833, - 841, 86, 847, 844, 86, 86, 842, 86, 86, 843, - - 86, 86, 838, 86, 849, 850, 854, 845, 846, 86, - 852, 86, 86, 848, 856, 86, 862, 851, 853, 86, - 86, 855, 86, 860, 857, 86, 863, 858, 861, 86, - 86, 86, 864, 866, 86, 86, 86, 859, 865, 86, - 872, 86, 86, 867, 86, 873, 86, 86, 86, 86, - 86, 874, 868, 869, 86, 870, 86, 879, 882, 871, - 86, 86, 875, 876, 86, 86, 880, 877, 86, 878, - 86, 881, 86, 86, 86, 884, 889, 885, 86, 86, - 883, 86, 86, 86, 86, 86, 898, 886, 896, 86, - 891, 887, 888, 899, 86, 86, 890, 892, 897, 893, - - 894, 895, 86, 86, 86, 86, 86, 86, 900, 904, - 86, 86, 86, 902, 901, 909, 86, 903, 908, 910, - 907, 905, 86, 86, 86, 906, 86, 912, 913, 86, - 86, 86, 86, 915, 86, 86, 86, 922, 916, 920, - 911, 918, 914, 919, 917, 86, 170, 86, 86, 924, - 86, 921, 923, 86, 929, 86, 925, 928, 86, 86, - 930, 932, 86, 933, 86, 926, 86, 927, 931, 936, - 86, 86, 86, 934, 86, 86, 938, 86, 942, 86, - 86, 86, 86, 939, 86, 935, 86, 943, 944, 86, - 937, 86, 86, 86, 963, 941, 86, 86, 945, 940, - - 957, 178, 958, 959, 955, 86, 947, 946, 86, 956, - 948, 86, 86, 949, 960, 86, 962, 950, 86, 964, - 951, 86, 965, 86, 86, 86, 969, 952, 953, 86, - 954, 961, 86, 86, 978, 86, 86, 967, 86, 966, - 981, 86, 86, 980, 968, 86, 970, 971, 993, 972, - 86, 86, 973, 977, 983, 86, 979, 974, 86, 86, - 985, 986, 982, 975, 976, 86, 86, 86, 990, 991, - 984, 987, 1055, 988, 992, 86, 989, 86, 994, 86, - 86, 997, 995, 86, 996, 86, 86, 86, 998, 999, - 1000, 1001, 86, 86, 86, 1002, 86, 86, 86, 1003, - - 1005, 86, 86, 1009, 86, 86, 1008, 86, 86, 1012, - 86, 86, 1016, 1004, 1018, 86, 86, 1006, 86, 1010, - 1007, 1011, 1014, 1013, 86, 1019, 176, 86, 1022, 1017, - 1020, 86, 1021, 1015, 86, 1023, 1024, 86, 86, 1026, - 1027, 86, 86, 1025, 86, 86, 86, 1028, 1030, 86, - 1031, 86, 1029, 86, 1032, 86, 86, 86, 86, 86, - 1034, 1039, 86, 1035, 86, 1042, 86, 86, 86, 86, - 86, 1033, 86, 1040, 1037, 1036, 1041, 1043, 1038, 1045, - 86, 1046, 86, 86, 86, 1048, 1044, 1050, 86, 86, - 86, 1049, 86, 1047, 1051, 86, 1058, 86, 1056, 86, - - 86, 1054, 1052, 1057, 86, 86, 86, 86, 86, 1061, - 86, 1064, 1059, 86, 86, 1053, 1066, 86, 1060, 1065, - 1067, 86, 1069, 86, 1063, 86, 86, 86, 1068, 1062, - 86, 1070, 86, 1071, 86, 86, 1075, 86, 1077, 1080, - 86, 86, 86, 1072, 86, 86, 1074, 1073, 86, 1081, - 1078, 1085, 86, 1076, 1079, 86, 1082, 1083, 1086, 86, - 86, 1084, 1088, 1087, 1089, 1090, 86, 86, 86, 86, - 86, 86, 86, 86, 1100, 86, 1101, 1093, 1095, 1091, - 86, 86, 86, 86, 1103, 86, 86, 1092, 86, 1094, - 86, 1096, 1098, 86, 1097, 1099, 1106, 1102, 1107, 1104, - - 1110, 1105, 86, 86, 86, 1109, 86, 1108, 1111, 86, - 1114, 1112, 1115, 1116, 1113, 86, 86, 86, 86, 86, - 1117, 1120, 86, 1122, 86, 86, 86, 86, 86, 1119, - 86, 1124, 86, 1118, 1128, 1125, 86, 86, 86, 1129, - 170, 1131, 1121, 1123, 86, 1130, 86, 1132, 1126, 86, - 1127, 86, 1137, 86, 1135, 86, 86, 1136, 1133, 86, - 1148, 86, 86, 86, 1134, 1138, 1139, 1149, 1151, 86, - 86, 86, 1555, 86, 86, 1140, 1150, 1141, 86, 86, - 86, 1142, 1160, 1143, 1153, 86, 1154, 1144, 1155, 1145, - 1156, 1158, 86, 1157, 1146, 1152, 1159, 86, 86, 1147, - - 86, 86, 1162, 86, 86, 86, 1161, 86, 1165, 1168, - 86, 86, 86, 1167, 1163, 1164, 86, 1174, 1166, 1169, - 1172, 1175, 1173, 1176, 1171, 1177, 86, 86, 1170, 86, - 1178, 1179, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 1191, 86, 86, 86, 1194, 1190, 1195, 1196, 86, - 86, 86, 1181, 1192, 1180, 1193, 1182, 86, 1183, 86, - 86, 1202, 86, 1184, 86, 1185, 1197, 86, 1199, 1203, - 1200, 1186, 1204, 1198, 86, 86, 1187, 1188, 1201, 86, - 86, 1209, 86, 1189, 86, 86, 86, 1212, 1210, 1213, - 86, 1206, 1205, 86, 86, 86, 1217, 1207, 1208, 1215, - - 86, 86, 86, 86, 86, 1211, 1218, 86, 1216, 1214, - 1223, 86, 1220, 1221, 86, 86, 86, 86, 86, 1219, - 1224, 86, 1226, 1222, 86, 86, 86, 86, 86, 175, - 86, 86, 1228, 1225, 1231, 1227, 1230, 1232, 86, 1235, - 86, 1229, 86, 1234, 1233, 86, 1236, 1238, 86, 86, - 1240, 86, 86, 1239, 1237, 86, 1241, 1244, 86, 86, - 1245, 86, 1248, 1246, 1249, 86, 1243, 1242, 1247, 86, - 86, 86, 86, 1254, 1250, 86, 86, 1256, 1255, 86, - 1257, 86, 86, 86, 1251, 1252, 1258, 1253, 86, 1259, - 86, 1265, 86, 86, 1267, 86, 86, 86, 1261, 86, - - 86, 1260, 86, 1263, 1269, 86, 1262, 1264, 1271, 86, - 1268, 86, 86, 1266, 1273, 86, 1270, 1272, 86, 86, - 1274, 1276, 86, 1277, 1278, 86, 86, 1275, 86, 86, - 1283, 1280, 1284, 86, 1279, 1282, 86, 1285, 86, 86, - 86, 86, 1281, 1287, 86, 1288, 86, 86, 86, 1294, - 1292, 86, 1295, 1296, 1312, 86, 1286, 1289, 86, 86, - 1290, 1293, 86, 86, 1299, 1301, 1291, 1297, 1298, 86, - 86, 86, 86, 86, 1300, 86, 1305, 1302, 86, 1307, - 86, 86, 86, 1306, 86, 86, 86, 86, 86, 86, - 1308, 1303, 1313, 1309, 86, 1304, 86, 86, 1314, 1315, - - 86, 1319, 86, 1310, 1320, 1311, 1316, 86, 1317, 86, - 86, 1323, 86, 86, 1322, 1321, 1318, 86, 86, 1328, - 86, 1324, 86, 86, 86, 86, 86, 1325, 170, 1326, - 86, 1330, 1334, 86, 86, 1336, 1327, 86, 1329, 86, - 86, 86, 1335, 1331, 1337, 1333, 86, 86, 1338, 86, - 1332, 1339, 1342, 1341, 1346, 1340, 1344, 86, 1343, 1347, - 86, 86, 86, 86, 86, 86, 1345, 1349, 86, 1351, - 1350, 86, 86, 86, 86, 86, 86, 1348, 1354, 86, - 1360, 86, 1356, 1357, 86, 1352, 1353, 86, 86, 1355, - 1358, 86, 86, 86, 86, 170, 86, 1364, 1359, 1366, - - 1370, 1361, 1362, 1363, 86, 1371, 86, 1375, 1367, 86, - 1368, 1372, 1365, 1369, 1373, 86, 1374, 86, 86, 86, - 1376, 86, 86, 86, 86, 86, 86, 1380, 1379, 86, - 1383, 86, 86, 1387, 86, 168, 1382, 1377, 86, 1378, - 1384, 86, 1381, 1385, 86, 86, 1388, 1393, 1386, 1389, - 1391, 1390, 86, 86, 86, 86, 1392, 86, 86, 86, - 86, 1397, 86, 86, 86, 86, 1400, 86, 1394, 1395, - 1398, 1405, 1399, 86, 1396, 1401, 86, 86, 1407, 1402, - 86, 86, 1404, 1403, 86, 86, 1410, 1408, 1406, 86, - 86, 86, 1417, 86, 86, 1411, 1409, 1413, 86, 1419, - - 1412, 86, 86, 86, 86, 86, 1416, 86, 1414, 1420, - 86, 1422, 1425, 1418, 86, 1415, 1421, 86, 1427, 86, - 1424, 1423, 1426, 1428, 86, 86, 1432, 86, 86, 86, - 1442, 1430, 1431, 1429, 86, 1433, 86, 1441, 1445, 1434, - 1440, 86, 1435, 1436, 86, 1443, 1444, 1437, 1446, 86, - 86, 86, 86, 1438, 86, 1447, 1448, 1439, 86, 1449, - 86, 1451, 86, 86, 86, 1452, 86, 1453, 1456, 86, - 1450, 86, 1454, 1457, 86, 86, 1459, 86, 1462, 1463, - 86, 1455, 1464, 1460, 86, 86, 1458, 86, 86, 1466, - 86, 1465, 86, 1461, 1467, 1471, 1468, 86, 1469, 86, - - 1470, 1477, 1472, 86, 1473, 1474, 1475, 1478, 86, 86, - 1476, 86, 1481, 86, 86, 86, 86, 1482, 86, 86, - 1480, 1485, 1483, 86, 86, 86, 1491, 1479, 1487, 1486, - 86, 1492, 86, 86, 86, 86, 1484, 86, 86, 1490, - 1495, 1493, 1488, 1489, 86, 86, 86, 1497, 1494, 86, - 86, 1496, 1498, 86, 1501, 1502, 86, 1504, 86, 86, - 86, 1505, 1499, 1506, 86, 1503, 86, 1510, 86, 1507, - 86, 1500, 1508, 1512, 86, 1509, 86, 1513, 86, 86, - 86, 86, 86, 1514, 1518, 86, 86, 86, 86, 1523, - 1511, 1521, 86, 86, 86, 86, 86, 1524, 1526, 1520, - - 1515, 1516, 1517, 1525, 86, 86, 1519, 1522, 1528, 86, - 86, 1527, 86, 86, 1530, 86, 86, 1532, 86, 1529, - 1534, 1533, 86, 1536, 1531, 1535, 86, 1537, 86, 86, - 86, 86, 1543, 1538, 1539, 1540, 1544, 1541, 86, 86, - 86, 86, 86, 1547, 1542, 1545, 1546, 86, 1548, 86, - 86, 1551, 86, 86, 86, 170, 86, 86, 86, 1553, - 86, 1550, 1559, 1560, 86, 86, 1549, 86, 86, 86, - 1556, 1561, 1562, 1552, 1554, 86, 86, 1557, 86, 1567, - 1565, 1558, 86, 86, 1566, 86, 1570, 86, 86, 1563, - 1568, 86, 1575, 86, 86, 1564, 1574, 86, 86, 86, - - 1569, 166, 1577, 1571, 1579, 86, 1573, 86, 86, 1580, - 86, 86, 1572, 86, 1582, 1583, 1581, 1576, 1578, 86, - 86, 86, 1584, 1591, 1588, 86, 1585, 1589, 1586, 1590, - 1593, 1587, 86, 86, 86, 1596, 86, 1594, 86, 1592, - 1597, 86, 86, 1595, 86, 86, 86, 86, 86, 1601, - 1602, 86, 86, 1598, 86, 86, 1605, 86, 1610, 86, - 1600, 86, 86, 1611, 1599, 1603, 1604, 1614, 1606, 1607, - 1608, 86, 1609, 86, 86, 86, 165, 86, 86, 1612, - 86, 1613, 86, 1615, 86, 86, 86, 86, 86, 1622, - 1616, 1618, 1623, 1619, 1617, 1620, 86, 86, 86, 1628, - - 86, 1621, 1624, 1629, 1625, 1627, 86, 1633, 1626, 1630, - 86, 1632, 1634, 86, 86, 86, 1636, 86, 86, 1637, - 86, 86, 86, 1638, 86, 1642, 1631, 1643, 1635, 1641, - 1644, 86, 86, 86, 86, 1645, 86, 1639, 86, 1646, - 1647, 86, 86, 1640, 86, 86, 1648, 86, 86, 86, - 1650, 86, 1655, 1649, 86, 86, 1654, 1651, 86, 86, - 1658, 1652, 86, 1653, 1661, 86, 1657, 86, 1666, 1662, - 86, 1663, 86, 1659, 1656, 86, 1664, 86, 86, 86, - 86, 1660, 86, 86, 1670, 1665, 1674, 1669, 86, 86, - 86, 1667, 86, 1675, 1668, 86, 86, 1678, 86, 1671, - - 1681, 1673, 1672, 86, 1680, 86, 86, 86, 86, 1676, - 86, 86, 163, 86, 1679, 1682, 1677, 86, 1689, 86, - 86, 86, 1690, 86, 1683, 1686, 1684, 1685, 1688, 1694, - 86, 1687, 1695, 86, 86, 1693, 86, 86, 1697, 1691, - 1692, 1696, 86, 86, 86, 86, 86, 86, 1701, 86, - 1698, 1699, 1702, 86, 1705, 1711, 1700, 1709, 86, 86, - 1706, 86, 1704, 86, 1710, 1703, 86, 1707, 86, 1708, - 86, 86, 86, 1714, 1715, 1716, 86, 86, 1712, 1713, - 86, 1721, 1722, 86, 86, 86, 1719, 86, 86, 86, - 1726, 1727, 1717, 1725, 1718, 86, 86, 86, 1729, 86, - - 1720, 86, 1723, 86, 1730, 86, 1724, 1731, 86, 86, - 86, 86, 1732, 1735, 86, 1728, 86, 86, 1740, 1733, - 86, 1734, 86, 1738, 86, 86, 86, 86, 1746, 1744, - 1736, 1737, 86, 86, 86, 1741, 1739, 86, 86, 86, - 1745, 1747, 86, 1742, 1743, 86, 1752, 86, 86, 1749, - 86, 1748, 1755, 1753, 1757, 86, 86, 86, 1751, 170, - 1754, 1758, 1750, 1756, 86, 1760, 86, 86, 86, 86, - 1759, 1764, 86, 1767, 86, 1771, 86, 1766, 1761, 1763, - 86, 86, 86, 1768, 86, 1762, 1770, 86, 1765, 1769, - 86, 86, 86, 1778, 86, 86, 86, 86, 1773, 1779, - - 1772, 1782, 86, 86, 1776, 1783, 1774, 1775, 1784, 86, - 86, 86, 1786, 86, 1788, 1780, 1777, 1781, 1787, 1790, - 86, 86, 1792, 86, 86, 86, 86, 86, 86, 1785, - 86, 1789, 1794, 1795, 86, 1791, 86, 1797, 86, 1798, - 86, 86, 86, 1793, 1799, 1802, 86, 1803, 86, 86, - 86, 1796, 1800, 1807, 86, 1801, 1808, 1810, 86, 1804, - 1805, 86, 86, 86, 161, 1812, 1811, 1814, 1809, 1806, - 86, 86, 1818, 86, 1817, 1815, 1819, 1820, 1824, 1816, - 86, 1813, 86, 86, 86, 1821, 86, 1822, 86, 1823, - 86, 86, 86, 86, 86, 1825, 86, 1831, 86, 1830, - - 1832, 1833, 86, 86, 1826, 1835, 86, 86, 86, 86, - 1827, 86, 1828, 1834, 1829, 86, 1838, 86, 86, 86, - 1837, 1836, 1841, 1839, 86, 86, 86, 1840, 86, 86, - 86, 86, 86, 86, 1850, 1849, 86, 86, 1842, 1844, - 1845, 86, 1846, 1852, 1843, 86, 86, 1847, 1856, 1853, - 86, 86, 1851, 1854, 86, 1848, 86, 86, 1855, 1862, - 86, 86, 86, 86, 86, 1866, 1857, 1858, 1864, 86, - 1859, 1860, 86, 86, 1865, 86, 86, 1861, 86, 86, - 86, 1863, 86, 86, 1867, 1871, 1868, 1873, 86, 86, - 1881, 86, 1874, 1870, 1872, 1875, 86, 1869, 1876, 1880, - - 1882, 86, 86, 1877, 86, 86, 86, 86, 1878, 1885, - 1886, 86, 86, 86, 1879, 86, 1883, 1889, 1887, 86, - 1884, 86, 1890, 86, 86, 86, 1888, 86, 1891, 1899, - 1894, 1893, 1892, 86, 1896, 86, 1898, 1897, 1900, 86, - 86, 86, 86, 1895, 86, 1906, 86, 86, 86, 86, - 1907, 86, 1908, 1901, 1902, 86, 1904, 86, 1903, 86, - 1905, 1909, 86, 1912, 1914, 86, 1911, 86, 1916, 86, - 1915, 1910, 86, 1913, 86, 86, 86, 1920, 1918, 1924, - 1922, 1919, 1917, 86, 1925, 86, 86, 86, 86, 86, - 1926, 1930, 1921, 1923, 1929, 1932, 86, 86, 1927, 86, - - 1933, 1936, 1935, 86, 1934, 1931, 86, 86, 1928, 1937, - 86, 86, 1940, 86, 86, 1944, 86, 1942, 86, 86, - 86, 86, 86, 1943, 1945, 1939, 1941, 86, 86, 86, - 1938, 86, 86, 1950, 86, 1949, 86, 86, 1946, 1947, - 1951, 1948, 1952, 1953, 86, 1954, 1957, 86, 1959, 1960, - 1955, 1956, 1962, 86, 86, 86, 86, 1961, 86, 86, - 86, 1966, 86, 1968, 86, 86, 86, 86, 1958, 86, - 86, 1967, 1972, 86, 1974, 86, 1963, 1964, 86, 1965, - 1975, 1970, 86, 86, 1971, 86, 1969, 1973, 1977, 86, - 1978, 1979, 86, 86, 86, 170, 86, 1983, 1976, 1986, - - 86, 86, 1982, 1981, 86, 86, 86, 1984, 1990, 86, - 86, 1985, 1980, 86, 86, 86, 1988, 1992, 1993, 86, - 1987, 86, 1997, 86, 1989, 86, 1994, 1991, 86, 2001, - 86, 2000, 86, 1998, 1995, 2002, 2003, 86, 86, 1996, - 86, 1999, 2006, 2004, 2007, 86, 86, 86, 86, 2005, - 86, 86, 2009, 86, 2010, 86, 86, 86, 2008, 86, - 86, 86, 2015, 86, 2016, 86, 86, 2011, 2020, 2017, - 86, 3507, 86, 2013, 2014, 2012, 2019, 2018, 86, 2021, - 86, 2028, 86, 2024, 86, 2026, 2023, 2027, 2029, 86, - 2025, 86, 2022, 86, 86, 86, 86, 86, 2035, 86, - - 2038, 2039, 86, 2040, 86, 2030, 86, 86, 2031, 2033, - 2032, 2036, 86, 2037, 86, 2034, 2042, 86, 86, 2043, - 2047, 86, 86, 86, 2049, 2050, 2041, 2048, 2044, 86, - 86, 2051, 2053, 2045, 86, 2046, 86, 86, 86, 2054, - 86, 2057, 86, 2056, 86, 86, 86, 2052, 2060, 86, - 2059, 86, 86, 86, 86, 2065, 2067, 2063, 2064, 86, - 86, 2055, 86, 86, 2058, 2066, 2061, 2062, 86, 86, - 2075, 2068, 2069, 2070, 86, 2077, 86, 86, 2071, 86, - 2078, 86, 86, 2072, 86, 86, 2073, 2081, 86, 2074, - 2082, 2079, 2084, 86, 2076, 86, 86, 2080, 86, 2083, - - 2088, 86, 2085, 86, 2090, 86, 86, 86, 2086, 86, - 2093, 2094, 86, 2096, 86, 86, 2087, 86, 86, 86, - 86, 86, 2089, 86, 2101, 2091, 2098, 2095, 2092, 2099, - 86, 2103, 86, 86, 86, 2102, 86, 86, 2105, 2100, - 2097, 2106, 2104, 86, 2109, 2107, 86, 86, 2113, 86, - 86, 86, 2112, 2117, 86, 2116, 86, 2115, 2119, 2108, - 86, 86, 2111, 2110, 86, 2120, 86, 86, 86, 2114, - 86, 86, 2121, 86, 86, 2118, 2126, 2122, 86, 2130, - 2123, 86, 2129, 2125, 2131, 86, 86, 86, 86, 2124, - 86, 86, 2127, 86, 86, 2134, 2139, 86, 86, 2138, - - 86, 86, 2133, 86, 2128, 86, 2132, 2143, 2136, 86, - 2144, 2135, 86, 86, 2146, 2137, 2141, 2140, 2145, 2142, - 2147, 86, 86, 86, 2149, 86, 2148, 2151, 86, 2150, - 86, 86, 86, 86, 86, 2159, 2155, 86, 86, 2153, - 86, 86, 86, 2162, 2152, 86, 2164, 86, 2255, 2154, - 86, 2165, 2156, 2157, 2158, 2160, 86, 2161, 2163, 86, - 2166, 86, 86, 2171, 86, 2172, 86, 2175, 2167, 2173, - 2176, 86, 2168, 86, 2174, 86, 86, 2169, 86, 86, - 2180, 86, 2170, 2178, 86, 86, 86, 86, 2182, 86, - 2184, 2179, 2186, 2181, 86, 2188, 86, 2177, 86, 2183, - - 86, 86, 2189, 86, 170, 86, 86, 86, 86, 2192, - 2185, 86, 86, 2196, 2197, 2190, 2187, 2193, 2194, 2202, - 2191, 86, 2198, 2199, 86, 86, 2195, 2200, 86, 86, - 3507, 86, 2201, 86, 86, 2203, 2204, 86, 86, 2205, - 86, 2208, 2207, 2206, 86, 2210, 86, 86, 86, 2214, - 86, 86, 2209, 2213, 2219, 86, 86, 86, 2211, 2212, - 2215, 2216, 2217, 86, 86, 86, 2218, 86, 86, 86, - 86, 2226, 86, 2224, 2221, 2225, 86, 86, 86, 86, - 86, 86, 2231, 86, 2220, 2222, 86, 2223, 2228, 86, - 2227, 86, 2230, 2232, 2229, 2234, 86, 2236, 2233, 86, - - 2237, 2238, 86, 2235, 86, 2242, 86, 2240, 86, 86, - 86, 2243, 86, 86, 86, 2249, 86, 2241, 86, 2251, - 2239, 86, 86, 86, 2252, 2244, 2245, 2248, 2246, 2247, - 2254, 86, 86, 2250, 2256, 86, 86, 2257, 86, 2260, - 86, 2253, 86, 86, 2259, 86, 86, 86, 2265, 2262, - 86, 86, 86, 86, 2261, 2258, 86, 86, 86, 2266, - 86, 86, 86, 86, 2268, 2263, 2264, 2274, 2269, 2271, - 86, 86, 2267, 2270, 86, 2273, 2279, 86, 86, 2272, - 2275, 2282, 2276, 2278, 86, 86, 2277, 86, 2280, 2283, - 86, 86, 2285, 2286, 2281, 86, 86, 86, 86, 86, - - 2288, 86, 86, 2289, 2294, 2284, 2290, 86, 2287, 2296, - 2292, 2293, 86, 86, 2297, 86, 2291, 2299, 86, 86, - 86, 86, 86, 2302, 86, 2301, 2295, 2298, 86, 2303, - 86, 2307, 86, 2304, 86, 86, 2311, 86, 86, 2308, - 2305, 2312, 86, 86, 2310, 2300, 2313, 86, 2309, 86, - 2306, 2316, 86, 86, 2317, 86, 86, 2320, 2322, 86, - 86, 2315, 2314, 86, 2318, 2321, 86, 2326, 86, 86, - 86, 2328, 86, 2329, 2324, 2319, 86, 2323, 86, 86, - 86, 2327, 2325, 2331, 86, 2330, 2335, 86, 2337, 2333, - 86, 86, 2334, 2338, 86, 86, 86, 2332, 86, 86, - - 2340, 2343, 2339, 86, 2344, 86, 86, 2341, 2336, 86, - 2342, 2348, 86, 86, 86, 2347, 2345, 86, 86, 86, - 86, 86, 86, 86, 2356, 2346, 86, 2349, 86, 86, - 86, 2350, 2351, 2352, 2354, 2357, 2355, 2362, 2358, 86, - 86, 86, 2359, 2353, 2360, 2361, 86, 2363, 86, 86, - 86, 86, 2365, 2366, 2369, 2371, 86, 86, 86, 2370, - 2364, 2373, 86, 2367, 86, 86, 2372, 2368, 2376, 2374, - 2377, 86, 86, 2380, 170, 2382, 2384, 2375, 86, 86, - 2383, 86, 86, 2385, 2378, 86, 2387, 86, 2386, 86, - 86, 2379, 2389, 86, 86, 2390, 2381, 2394, 86, 2393, - - 86, 2395, 86, 86, 2398, 86, 86, 2388, 86, 2391, - 86, 2399, 86, 2400, 2396, 2401, 86, 86, 2403, 86, - 2392, 2397, 2402, 2404, 86, 2405, 86, 86, 2407, 86, - 2406, 86, 86, 86, 2409, 86, 86, 86, 2412, 86, - 86, 86, 2416, 2418, 86, 2419, 86, 2411, 86, 86, - 86, 86, 2408, 2413, 2410, 2414, 2415, 86, 86, 86, - 86, 2420, 2417, 2421, 2426, 2429, 86, 2423, 2428, 2424, - 2425, 86, 86, 2427, 2422, 86, 86, 86, 86, 2430, - 86, 86, 86, 86, 2440, 86, 86, 86, 86, 2445, - 86, 2431, 86, 2438, 2432, 2433, 2447, 86, 2442, 2436, - - 2434, 2441, 2435, 2437, 2439, 86, 2443, 86, 2446, 86, - 86, 2444, 2448, 2449, 86, 86, 86, 86, 2453, 2454, - 86, 86, 2450, 2455, 2456, 86, 86, 86, 2451, 2452, - 2457, 86, 2459, 86, 2462, 86, 2463, 86, 86, 2458, - 86, 86, 2460, 2464, 86, 2461, 2465, 2466, 2469, 86, - 2470, 86, 86, 2472, 86, 86, 2468, 2474, 86, 86, - 2467, 86, 2477, 86, 2478, 86, 2476, 86, 86, 86, - 86, 2471, 86, 2473, 2475, 86, 86, 2480, 2485, 86, - 2484, 2479, 2487, 86, 2482, 86, 2481, 86, 86, 86, - 86, 2483, 2490, 2489, 86, 2486, 86, 2491, 2493, 86, - - 86, 86, 2496, 2488, 86, 2495, 86, 2494, 86, 2497, - 2499, 86, 2492, 86, 2504, 86, 86, 2503, 86, 86, - 2498, 86, 86, 2502, 2500, 86, 2506, 2509, 86, 2501, - 86, 86, 2511, 2507, 2508, 2505, 86, 86, 86, 2516, - 2522, 86, 2510, 86, 2512, 2518, 86, 86, 86, 2513, - 2517, 2519, 86, 86, 2514, 86, 86, 2524, 2525, 2523, - 86, 86, 86, 2515, 86, 86, 2520, 2529, 2521, 2527, - 2531, 86, 86, 86, 86, 86, 2532, 2533, 2535, 2534, - 2526, 2528, 2536, 86, 86, 2539, 86, 2530, 86, 2538, - 86, 86, 86, 86, 2537, 2540, 2543, 2541, 86, 86, - - 2542, 2544, 2545, 86, 86, 86, 2553, 86, 2546, 2550, - 2551, 2552, 2547, 2548, 86, 86, 86, 86, 2557, 2549, - 86, 2556, 86, 2558, 86, 170, 2555, 86, 86, 2561, - 2562, 2559, 86, 86, 2554, 86, 2560, 2567, 86, 86, - 86, 86, 86, 86, 86, 86, 2574, 86, 2569, 2565, - 86, 2566, 2563, 2570, 2564, 2568, 86, 2573, 2571, 2572, - 3507, 2575, 2577, 2578, 86, 86, 2579, 2576, 2580, 86, - 86, 86, 2583, 2581, 2584, 86, 2582, 86, 86, 86, - 86, 2586, 86, 86, 2585, 86, 2588, 86, 86, 2592, - 2593, 2587, 86, 2590, 86, 2589, 86, 2595, 86, 86, - - 86, 86, 2596, 2597, 2598, 86, 2591, 86, 2594, 86, - 2600, 86, 2599, 2604, 86, 2603, 86, 86, 2601, 2602, - 86, 86, 2606, 86, 86, 86, 86, 86, 2614, 2605, - 2611, 86, 2613, 86, 86, 86, 2616, 2615, 2610, 86, - 2607, 2608, 86, 2609, 86, 2612, 86, 2622, 86, 2620, - 86, 2617, 86, 86, 86, 2628, 86, 2626, 2618, 2625, - 86, 2619, 2623, 86, 2627, 86, 86, 2621, 2624, 2629, - 86, 2631, 86, 86, 2634, 2632, 86, 2636, 86, 2630, - 2635, 2638, 86, 86, 86, 2640, 86, 86, 86, 86, - 2637, 86, 2633, 2639, 2644, 86, 86, 86, 86, 86, - - 2649, 86, 2642, 2647, 2648, 2641, 2651, 2643, 2650, 86, - 86, 2652, 86, 2653, 86, 86, 86, 2646, 86, 86, - 2655, 2645, 2657, 2660, 86, 86, 2662, 86, 86, 86, - 2658, 86, 86, 2665, 86, 2656, 2654, 2659, 2661, 86, - 86, 86, 2666, 2664, 86, 2663, 86, 2669, 2670, 86, - 2667, 86, 86, 2673, 86, 86, 2671, 2674, 2668, 2672, - 86, 86, 2675, 86, 86, 86, 86, 86, 2676, 2677, - 2679, 2682, 3507, 2678, 2683, 86, 2684, 86, 2685, 86, - 2686, 86, 86, 2680, 2681, 2688, 86, 86, 2690, 86, - 2691, 2689, 86, 2692, 2687, 86, 86, 86, 86, 86, - - 86, 86, 2699, 86, 2701, 86, 3507, 2693, 86, 2695, - 2702, 86, 86, 86, 86, 2705, 2694, 2698, 2696, 2700, - 2697, 86, 86, 2703, 86, 2704, 2706, 2708, 86, 2711, - 86, 86, 2713, 86, 86, 86, 86, 86, 86, 170, - 2712, 2707, 86, 86, 2709, 2720, 86, 2722, 2710, 2716, - 86, 2721, 2718, 86, 86, 2715, 86, 86, 86, 2723, - 2714, 2717, 86, 86, 2719, 2729, 86, 86, 2724, 2725, - 3507, 2731, 2732, 86, 2726, 2733, 86, 2730, 86, 2727, - 86, 2728, 2734, 86, 86, 2735, 86, 2736, 86, 2737, - 86, 2738, 86, 86, 86, 2741, 86, 2740, 86, 86, - - 86, 2739, 2748, 86, 86, 2746, 86, 86, 2752, 2753, - 86, 2743, 2742, 86, 86, 86, 2744, 86, 2745, 2747, - 2757, 86, 2750, 2749, 2751, 86, 2756, 2754, 2759, 86, - 86, 86, 86, 2760, 2758, 86, 2755, 86, 86, 2763, - 86, 86, 2770, 86, 86, 2771, 86, 86, 2761, 2762, - 2764, 2769, 86, 86, 86, 2765, 2766, 2767, 86, 2768, - 2774, 2775, 86, 2776, 86, 2777, 86, 2772, 2779, 86, - 2773, 86, 86, 86, 86, 86, 2778, 2782, 86, 86, - 2785, 2786, 86, 2781, 2788, 2780, 2787, 86, 2789, 86, - 86, 86, 86, 2783, 2784, 86, 86, 2790, 86, 2791, - - 86, 2795, 86, 2796, 2793, 86, 86, 2801, 86, 2800, - 2792, 86, 86, 2804, 86, 2794, 86, 86, 86, 86, - 2797, 2798, 2807, 86, 86, 2799, 2802, 2805, 2809, 86, - 2803, 86, 2806, 86, 2808, 2810, 86, 86, 2812, 2815, - 86, 86, 2811, 86, 2819, 86, 86, 2818, 86, 2816, - 2817, 2813, 86, 2814, 2821, 86, 86, 2822, 86, 86, - 2827, 86, 86, 2828, 2824, 2820, 86, 2823, 2825, 2830, - 86, 86, 86, 86, 86, 2837, 86, 86, 86, 2826, - 86, 86, 3507, 2834, 2831, 2832, 2833, 2835, 2829, 2836, - 2840, 86, 86, 86, 86, 86, 2839, 2838, 2841, 2842, - - 2844, 86, 86, 86, 86, 86, 2843, 86, 86, 2845, - 86, 86, 2847, 2848, 86, 2850, 2851, 2853, 86, 2849, - 86, 2846, 2852, 2854, 86, 2855, 86, 2856, 2857, 170, - 86, 86, 2860, 2858, 2862, 2859, 86, 86, 2864, 86, - 86, 2863, 86, 2867, 86, 2868, 86, 2866, 86, 2861, - 2870, 86, 86, 2872, 2865, 2871, 86, 86, 2873, 86, - 86, 2869, 2874, 2877, 86, 2875, 86, 86, 2878, 86, - 2876, 2879, 86, 86, 86, 86, 2880, 2884, 2885, 86, - 2886, 2882, 86, 86, 86, 86, 86, 2881, 86, 2888, - 2889, 2887, 86, 86, 86, 2883, 2890, 2892, 2891, 2893, - - 86, 86, 86, 86, 86, 2894, 2895, 86, 2899, 86, - 86, 2897, 2898, 2900, 2896, 2901, 2903, 86, 86, 86, - 86, 86, 86, 2904, 2908, 86, 86, 2902, 86, 2911, - 86, 2913, 86, 2909, 86, 86, 86, 2905, 86, 2906, - 2907, 86, 2917, 2918, 86, 2912, 2920, 2910, 2921, 86, - 2915, 2923, 86, 2914, 86, 86, 2916, 86, 2924, 86, - 86, 86, 86, 2925, 86, 2926, 2919, 2922, 2929, 86, - 2927, 86, 2930, 86, 86, 2928, 86, 2931, 2932, 86, - 2934, 2936, 86, 2937, 86, 86, 2933, 2938, 86, 2939, - 86, 2941, 86, 86, 2935, 2940, 86, 86, 2945, 86, - - 86, 2943, 86, 2946, 86, 86, 2949, 2950, 86, 2944, - 86, 2947, 86, 2942, 2951, 86, 2952, 86, 86, 86, - 2948, 2953, 2958, 2954, 86, 2955, 2956, 86, 2959, 86, - 86, 2960, 2961, 86, 2963, 86, 86, 2957, 86, 2962, - 86, 2967, 2968, 86, 86, 2970, 86, 86, 2969, 2964, - 86, 86, 2972, 86, 2966, 2971, 2965, 2973, 86, 86, - 86, 2978, 86, 86, 86, 3507, 2977, 86, 2980, 2974, - 2981, 86, 86, 2975, 86, 86, 86, 2982, 2984, 2976, - 86, 86, 2983, 2986, 86, 2987, 2990, 2979, 2985, 86, - 86, 86, 86, 2988, 2989, 2994, 86, 86, 86, 86, - - 2996, 86, 86, 3006, 86, 2993, 2995, 2991, 2997, 3000, - 2992, 3001, 2998, 86, 3003, 86, 3002, 86, 2999, 3004, - 86, 3005, 86, 3007, 86, 3008, 86, 3009, 86, 3010, - 86, 3011, 86, 86, 86, 3014, 86, 86, 3013, 3015, - 86, 86, 3017, 86, 86, 3019, 3023, 86, 3012, 86, - 3016, 86, 3020, 3018, 3024, 86, 86, 3027, 86, 3025, - 3032, 3021, 86, 86, 3022, 3029, 86, 3026, 3030, 3028, - 3031, 86, 86, 86, 86, 86, 3037, 86, 86, 86, - 86, 3033, 3034, 3035, 3038, 86, 86, 3039, 86, 3043, - 86, 3049, 86, 3036, 3044, 86, 3041, 3046, 3040, 86, - - 86, 3042, 86, 3045, 3047, 3050, 86, 3048, 86, 86, - 3054, 86, 86, 3051, 86, 86, 86, 86, 86, 86, - 86, 3055, 3058, 3061, 86, 3059, 3056, 3053, 3092, 86, - 86, 3062, 86, 3052, 86, 3064, 86, 3065, 3060, 3068, - 3057, 3063, 86, 3066, 86, 3067, 86, 86, 3071, 3073, - 86, 3072, 3074, 86, 3075, 86, 86, 3069, 86, 86, - 3070, 86, 3080, 86, 3079, 3076, 86, 86, 86, 3083, - 86, 3081, 3082, 86, 86, 86, 86, 86, 3077, 86, - 3078, 3084, 3087, 3089, 3093, 3085, 3091, 86, 86, 86, - 86, 86, 86, 3088, 86, 3086, 3094, 86, 3095, 3100, - - 86, 3090, 86, 86, 86, 3097, 86, 3096, 86, 3098, - 3104, 86, 3099, 86, 86, 3101, 3102, 3103, 86, 86, - 3105, 86, 3108, 3109, 3106, 86, 3111, 86, 86, 86, - 3112, 86, 3107, 3115, 86, 3117, 86, 3118, 86, 3110, - 3120, 86, 86, 86, 86, 3113, 86, 86, 3116, 3123, - 86, 86, 3119, 86, 3114, 3125, 3126, 86, 3121, 3122, - 3128, 86, 3124, 3129, 86, 3132, 86, 3127, 86, 86, - 3135, 86, 86, 3137, 86, 86, 3130, 86, 86, 86, - 3131, 86, 3133, 3138, 86, 3134, 3140, 86, 3141, 86, - 3142, 86, 3136, 3144, 86, 3146, 3139, 3143, 3149, 86, - - 3147, 3148, 86, 86, 86, 3153, 86, 86, 86, 86, - 86, 3155, 3156, 3145, 3151, 86, 3157, 86, 3150, 3160, - 3161, 86, 3154, 3152, 86, 86, 3163, 3162, 86, 3158, - 3159, 86, 86, 3166, 86, 86, 3165, 86, 3169, 86, - 3167, 86, 3172, 86, 86, 86, 3164, 86, 86, 3177, - 86, 3173, 86, 86, 3193, 86, 3168, 86, 3170, 3171, - 86, 3176, 3184, 3174, 3180, 3181, 86, 3182, 86, 3179, - 86, 3178, 3175, 3183, 86, 86, 3187, 86, 3188, 86, - 3186, 3189, 86, 86, 3185, 3190, 86, 86, 86, 3195, - 86, 86, 86, 3194, 86, 86, 3191, 86, 86, 86, - - 3201, 3202, 86, 86, 86, 86, 86, 3208, 86, 86, - 3196, 3209, 86, 3192, 3197, 3207, 3198, 3199, 3205, 3200, - 3210, 3203, 3204, 86, 86, 3206, 86, 86, 3507, 3211, - 3215, 86, 3213, 3216, 86, 86, 86, 3219, 86, 86, - 3217, 86, 3212, 86, 86, 3214, 3221, 3222, 86, 3223, - 3218, 3220, 86, 86, 86, 86, 3224, 86, 3225, 86, - 3228, 3226, 86, 86, 86, 3230, 86, 86, 86, 3229, - 3231, 86, 86, 86, 3227, 86, 86, 3243, 86, 3507, - 3240, 3241, 3232, 86, 3233, 3235, 3234, 3236, 3242, 3237, - 3238, 86, 86, 86, 3239, 3246, 3244, 86, 3245, 3248, - - 86, 3249, 86, 86, 3251, 86, 3247, 3250, 86, 3254, - 86, 3255, 86, 3252, 3256, 3257, 3253, 86, 3258, 3259, - 86, 86, 3260, 86, 3261, 3262, 86, 86, 86, 3265, - 3263, 3266, 86, 3264, 86, 86, 86, 86, 86, 3272, - 86, 86, 86, 3271, 86, 86, 86, 86, 86, 3268, - 3276, 3275, 3267, 86, 3277, 86, 3269, 3270, 3280, 3281, - 86, 3273, 3278, 86, 3282, 86, 3279, 3274, 86, 3283, - 3284, 86, 3285, 86, 86, 86, 3290, 3292, 3286, 3287, - 86, 3291, 86, 86, 3288, 86, 86, 3289, 86, 86, - 3293, 3296, 3300, 3297, 86, 3294, 3299, 86, 86, 86, - - 3301, 3302, 86, 3303, 86, 86, 3295, 3507, 3298, 86, - 3305, 3306, 86, 86, 3304, 3307, 86, 3507, 3308, 3309, - 86, 3310, 86, 3311, 86, 3312, 86, 3313, 86, 3314, - 86, 3315, 86, 3316, 86, 86, 3319, 86, 86, 3317, - 86, 86, 3323, 86, 3318, 86, 86, 3320, 3325, 86, - 86, 86, 3321, 86, 3329, 3330, 86, 86, 86, 3327, - 86, 3322, 86, 3328, 3324, 3326, 3332, 86, 86, 86, - 3336, 3334, 3331, 3339, 86, 86, 3333, 3338, 86, 86, - 3337, 86, 86, 3341, 86, 86, 3335, 86, 86, 3340, - 86, 3345, 3347, 86, 86, 86, 3346, 86, 3344, 3350, - - 3342, 86, 3343, 86, 3351, 3348, 3353, 86, 3352, 3354, - 86, 3355, 86, 86, 86, 86, 86, 86, 3358, 3349, - 3356, 86, 3357, 3359, 86, 86, 3363, 3364, 3362, 3360, - 86, 86, 3366, 86, 86, 86, 86, 3367, 86, 3361, - 86, 86, 86, 86, 86, 3365, 3375, 3373, 86, 3377, - 3370, 86, 3368, 3369, 3374, 3372, 3378, 86, 86, 86, - 86, 3371, 86, 3380, 3376, 3381, 3383, 86, 3379, 3384, - 3385, 86, 86, 3386, 3387, 86, 3388, 86, 86, 3382, - 86, 3389, 86, 3391, 86, 86, 86, 3392, 3396, 3393, - 86, 86, 86, 86, 86, 3400, 86, 3399, 3390, 3402, - - 86, 3395, 86, 3398, 3397, 3403, 86, 86, 3406, 86, - 3394, 86, 86, 3401, 3409, 86, 86, 3404, 86, 3410, - 86, 86, 3413, 86, 3411, 3414, 3405, 3407, 86, 3408, - 86, 86, 86, 3419, 86, 3415, 3416, 3418, 86, 3412, - 3420, 86, 86, 86, 86, 86, 86, 86, 3424, 3417, - 86, 3426, 86, 86, 86, 86, 86, 3423, 3431, 3421, - 3432, 86, 3422, 3428, 86, 3425, 3427, 3429, 3433, 86, - 86, 3430, 3437, 86, 3439, 3438, 3434, 86, 3440, 3435, - 86, 86, 86, 3436, 86, 86, 3441, 3442, 3445, 3443, - 3446, 86, 86, 86, 86, 3448, 86, 3447, 86, 86, - - 86, 86, 3449, 3454, 3444, 86, 3451, 86, 86, 86, - 86, 3457, 3450, 3458, 86, 86, 86, 86, 86, 3452, - 3453, 3456, 3461, 86, 3455, 3459, 3462, 86, 3460, 86, - 3465, 3464, 3466, 86, 3463, 86, 3467, 86, 3469, 86, - 3471, 86, 3472, 86, 86, 86, 3476, 86, 3473, 3507, - 86, 3474, 3479, 86, 3470, 3477, 86, 86, 3478, 3468, - 86, 86, 86, 86, 3475, 86, 86, 3480, 3481, 86, - 3483, 3485, 86, 86, 3487, 86, 3482, 86, 3488, 86, - 3491, 3484, 3486, 3492, 86, 3489, 86, 86, 3495, 3496, - 86, 86, 3498, 86, 3490, 86, 3493, 86, 3497, 3499, - - 86, 86, 3500, 86, 86, 3494, 3501, 3507, 3502, 3505, - 86, 3506, 86, 3507, 3507, 3507, 3503, 3507, 3507, 3507, - 3507, 3507, 3507, 3504, 47, 47, 47, 47, 47, 47, - 47, 52, 52, 52, 52, 52, 52, 52, 57, 57, - 57, 57, 57, 57, 57, 63, 63, 63, 63, 63, - 63, 63, 68, 68, 68, 68, 68, 68, 68, 74, - 74, 74, 74, 74, 74, 74, 80, 80, 80, 80, - 80, 80, 80, 89, 89, 3507, 89, 89, 89, 89, - 160, 160, 3507, 3507, 3507, 160, 160, 162, 162, 3507, - 3507, 162, 3507, 162, 164, 3507, 3507, 3507, 3507, 3507, - - 164, 167, 167, 3507, 3507, 3507, 167, 167, 169, 3507, - 3507, 3507, 3507, 3507, 169, 171, 171, 3507, 171, 171, - 171, 171, 174, 3507, 3507, 3507, 3507, 3507, 174, 177, - 177, 3507, 3507, 3507, 177, 177, 90, 90, 3507, 90, - 90, 90, 90, 17, 3507, 3507, 3507, 3507, 3507, 3507, - 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, - 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, - 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, - 3507, 3507, 3507, 3507 ++ 341, 86, 333, 86, 86, 86, 343, 336, 345, 86, ++ 86, 344, 86, 86, 86, 347, 86, 86, 346, 349, ++ 86, 86, 354, 86, 352, 350, 86, 86, 86, 86, ++ ++ 348, 365, 355, 353, 351, 359, 356, 86, 86, 86, ++ 360, 86, 357, 361, 86, 86, 362, 358, 363, 368, ++ 86, 364, 86, 86, 86, 86, 374, 366, 367, 370, ++ 373, 375, 86, 86, 377, 369, 86, 86, 382, 372, ++ 86, 376, 86, 380, 86, 378, 381, 86, 384, 86, ++ 379, 385, 86, 86, 86, 170, 86, 86, 388, 86, ++ 86, 86, 383, 395, 391, 393, 396, 389, 386, 86, ++ 86, 86, 86, 86, 399, 387, 390, 86, 397, 392, ++ 86, 86, 398, 86, 394, 400, 86, 86, 86, 402, ++ 406, 407, 86, 409, 404, 401, 86, 403, 86, 410, ++ ++ 408, 86, 86, 86, 412, 86, 413, 86, 86, 86, ++ 86, 416, 405, 86, 417, 420, 86, 86, 175, 411, ++ 422, 86, 418, 414, 415, 419, 86, 86, 424, 423, ++ 86, 421, 86, 429, 86, 428, 425, 86, 427, 86, ++ 430, 86, 86, 86, 86, 86, 86, 86, 436, 86, ++ 86, 86, 437, 426, 439, 86, 86, 435, 86, 442, ++ 433, 432, 447, 438, 434, 431, 86, 86, 86, 444, ++ 440, 86, 86, 441, 443, 448, 86, 86, 86, 446, ++ 86, 463, 86, 449, 86, 456, 445, 86, 86, 458, ++ 466, 467, 170, 464, 465, 457, 450, 86, 86, 451, ++ ++ 459, 470, 460, 468, 452, 453, 454, 455, 469, 86, ++ 471, 86, 86, 86, 86, 461, 86, 86, 462, 480, ++ 86, 86, 86, 478, 86, 482, 86, 481, 474, 472, ++ 479, 475, 473, 86, 476, 477, 86, 483, 485, 86, ++ 86, 484, 86, 86, 490, 86, 491, 86, 492, 86, ++ 86, 486, 86, 508, 495, 496, 86, 493, 489, 487, ++ 86, 86, 488, 86, 86, 497, 86, 494, 498, 500, ++ 502, 501, 86, 507, 499, 503, 509, 510, 86, 86, ++ 86, 86, 86, 86, 511, 86, 525, 86, 504, 86, ++ 86, 505, 530, 506, 86, 512, 527, 513, 86, 529, ++ ++ 524, 86, 528, 514, 526, 541, 86, 515, 531, 170, ++ 542, 86, 516, 549, 86, 517, 86, 518, 543, 519, ++ 532, 86, 86, 544, 86, 86, 86, 545, 86, 591, ++ 547, 550, 520, 548, 546, 521, 86, 522, 86, 523, ++ 86, 552, 533, 534, 551, 86, 554, 86, 560, 86, ++ 558, 556, 535, 536, 537, 538, 539, 86, 561, 540, ++ 86, 557, 553, 555, 86, 86, 565, 86, 559, 563, ++ 86, 566, 86, 86, 86, 562, 570, 86, 86, 86, ++ 564, 86, 86, 86, 573, 568, 86, 567, 569, 574, ++ 575, 86, 86, 86, 572, 580, 86, 587, 86, 577, ++ ++ 579, 576, 571, 86, 86, 581, 582, 578, 584, 86, ++ 86, 86, 86, 585, 603, 86, 86, 588, 86, 168, ++ 86, 86, 606, 583, 604, 589, 592, 590, 586, 593, ++ 594, 86, 608, 86, 86, 86, 605, 609, 86, 611, ++ 610, 595, 607, 596, 86, 86, 86, 86, 612, 597, ++ 86, 613, 86, 615, 617, 86, 86, 598, 599, 86, ++ 621, 600, 601, 616, 618, 602, 86, 614, 86, 619, ++ 86, 620, 622, 86, 86, 86, 86, 86, 627, 86, ++ 625, 626, 86, 86, 86, 86, 628, 86, 623, 86, ++ 633, 629, 86, 86, 634, 624, 632, 635, 86, 637, ++ ++ 86, 631, 630, 86, 636, 638, 639, 86, 640, 86, ++ 642, 86, 86, 86, 86, 86, 86, 86, 86, 86, ++ 644, 648, 86, 646, 86, 641, 86, 656, 166, 658, ++ 650, 86, 643, 86, 645, 86, 647, 649, 655, 654, ++ 651, 86, 652, 86, 653, 660, 86, 86, 659, 86, ++ 657, 86, 663, 666, 661, 86, 669, 662, 86, 86, ++ 86, 664, 86, 668, 86, 86, 665, 86, 86, 672, ++ 86, 86, 671, 676, 675, 667, 86, 86, 86, 86, ++ 670, 678, 86, 86, 86, 86, 677, 673, 674, 86, ++ 86, 86, 681, 679, 693, 86, 695, 680, 86, 682, ++ ++ 692, 86, 690, 86, 683, 691, 684, 697, 694, 1606, ++ 86, 696, 685, 86, 686, 698, 700, 687, 688, 699, ++ 86, 86, 705, 86, 689, 701, 86, 86, 86, 702, ++ 704, 86, 703, 706, 709, 86, 86, 712, 707, 86, ++ 86, 714, 708, 86, 86, 86, 86, 718, 86, 86, ++ 710, 86, 86, 86, 86, 711, 716, 721, 715, 86, ++ 717, 86, 722, 86, 713, 725, 86, 719, 86, 724, ++ 723, 720, 726, 86, 170, 729, 731, 727, 728, 86, ++ 730, 86, 86, 86, 86, 732, 86, 86, 736, 738, ++ 86, 741, 86, 733, 742, 86, 744, 734, 740, 737, ++ ++ 86, 735, 86, 86, 86, 86, 86, 743, 746, 86, ++ 86, 86, 86, 750, 749, 745, 86, 755, 747, 165, ++ 751, 748, 756, 86, 758, 86, 86, 752, 754, 757, ++ 753, 759, 86, 760, 761, 86, 762, 86, 763, 86, ++ 764, 86, 86, 86, 86, 765, 86, 766, 86, 86, ++ 86, 768, 86, 767, 769, 772, 86, 86, 771, 86, ++ 86, 770, 773, 776, 777, 86, 774, 86, 86, 779, ++ 86, 86, 86, 781, 86, 775, 86, 783, 86, 86, ++ 778, 86, 86, 786, 790, 780, 782, 86, 86, 784, ++ 86, 86, 785, 791, 86, 798, 86, 788, 787, 793, ++ ++ 86, 792, 789, 86, 794, 86, 86, 795, 796, 797, ++ 801, 802, 86, 86, 805, 86, 163, 86, 799, 800, ++ 86, 808, 86, 86, 806, 807, 803, 86, 804, 86, ++ 86, 86, 810, 811, 812, 86, 86, 86, 86, 813, ++ 86, 817, 815, 809, 819, 86, 86, 86, 86, 814, ++ 816, 86, 86, 86, 868, 820, 826, 86, 818, 821, ++ 824, 86, 86, 827, 823, 825, 86, 86, 822, 828, ++ 829, 830, 86, 86, 86, 831, 86, 86, 86, 832, ++ 837, 838, 840, 836, 86, 833, 86, 86, 86, 839, ++ 834, 835, 86, 86, 844, 841, 86, 86, 843, 845, ++ ++ 86, 86, 851, 86, 86, 86, 848, 86, 86, 846, ++ 847, 842, 854, 853, 86, 856, 86, 86, 86, 866, ++ 849, 850, 852, 857, 86, 855, 860, 858, 86, 861, ++ 864, 86, 86, 862, 86, 865, 86, 86, 86, 870, ++ 86, 86, 859, 863, 86, 86, 876, 86, 86, 86, ++ 86, 877, 86, 869, 86, 86, 867, 874, 871, 872, ++ 86, 886, 873, 878, 879, 875, 881, 86, 86, 882, ++ 880, 883, 86, 86, 86, 885, 86, 86, 86, 86, ++ 884, 86, 86, 893, 86, 86, 889, 888, 86, 86, ++ 86, 86, 887, 86, 900, 890, 161, 892, 891, 894, ++ ++ 895, 899, 86, 896, 901, 904, 897, 898, 86, 902, ++ 86, 86, 905, 906, 903, 86, 86, 86, 86, 86, ++ 908, 86, 86, 86, 86, 907, 912, 913, 914, 916, ++ 86, 911, 909, 86, 86, 917, 910, 86, 86, 86, ++ 170, 919, 86, 924, 86, 925, 920, 915, 922, 86, ++ 86, 918, 921, 926, 923, 86, 86, 86, 928, 927, ++ 86, 86, 933, 86, 86, 929, 86, 934, 936, 86, ++ 86, 86, 930, 938, 931, 935, 937, 940, 86, 86, ++ 86, 86, 932, 86, 942, 86, 946, 86, 86, 939, ++ 86, 943, 86, 86, 86, 947, 86, 948, 941, 86, ++ ++ 86, 86, 86, 945, 86, 961, 944, 86, 964, 1045, ++ 962, 949, 86, 950, 951, 86, 959, 952, 963, 960, ++ 953, 86, 86, 965, 954, 966, 86, 955, 86, 967, ++ 86, 968, 86, 969, 956, 957, 86, 958, 86, 973, ++ 86, 86, 86, 982, 970, 86, 971, 86, 86, 86, ++ 86, 86, 985, 86, 987, 1009, 972, 86, 974, 975, ++ 981, 976, 983, 86, 977, 984, 986, 86, 989, 978, ++ 988, 86, 990, 86, 993, 979, 980, 86, 991, 995, ++ 994, 86, 992, 86, 996, 86, 86, 998, 997, 86, ++ 86, 1001, 86, 86, 1000, 86, 1003, 1002, 999, 86, ++ ++ 1004, 1005, 86, 86, 86, 1006, 86, 86, 86, 86, ++ 1013, 1007, 86, 86, 86, 1012, 86, 86, 1016, 86, ++ 1022, 86, 178, 1008, 1018, 1020, 1010, 1011, 1014, 86, ++ 1015, 86, 1017, 1023, 1021, 86, 1026, 86, 1024, 86, ++ 1025, 1019, 86, 1028, 86, 86, 1030, 1031, 86, 86, ++ 1029, 86, 86, 86, 1032, 86, 1027, 1034, 86, 1033, ++ 1035, 86, 86, 1036, 86, 86, 86, 1038, 1039, 86, ++ 86, 1037, 1040, 1044, 86, 86, 1047, 86, 86, 86, ++ 1048, 86, 86, 1046, 1041, 1042, 86, 86, 1050, 1043, ++ 1051, 86, 1053, 86, 86, 86, 1055, 1049, 86, 1056, ++ ++ 1054, 86, 86, 86, 1063, 86, 1052, 1061, 86, 1057, ++ 1059, 86, 1062, 86, 86, 1060, 86, 86, 86, 1071, ++ 1064, 1069, 86, 1058, 86, 1066, 86, 1065, 86, 1070, ++ 1072, 86, 1068, 1074, 86, 1067, 86, 86, 86, 86, ++ 86, 86, 86, 1073, 1082, 1075, 1076, 1080, 86, 1085, ++ 86, 86, 86, 86, 1077, 86, 86, 1079, 1078, 1083, ++ 1086, 1084, 1081, 86, 1087, 86, 1088, 1089, 86, 1091, ++ 1090, 86, 1096, 1092, 1095, 86, 1094, 86, 86, 86, ++ 86, 86, 1093, 86, 86, 1105, 86, 1098, 1100, 1106, ++ 86, 86, 1108, 86, 86, 86, 1111, 1097, 86, 1099, ++ ++ 86, 1101, 86, 1103, 1107, 1102, 1104, 1109, 86, 1112, ++ 86, 86, 1113, 86, 1110, 86, 1117, 86, 1119, 1114, ++ 1120, 1121, 1115, 86, 86, 86, 86, 86, 1122, 1125, ++ 1116, 86, 1127, 86, 1118, 86, 86, 1124, 86, 86, ++ 1133, 1123, 1130, 1129, 86, 1134, 170, 86, 86, 86, ++ 1137, 1126, 1136, 86, 1128, 1131, 86, 1132, 86, 1135, ++ 86, 1140, 86, 86, 86, 86, 86, 1153, 86, 1138, ++ 1156, 86, 1154, 1139, 86, 86, 1143, 1141, 1144, 86, ++ 1182, 86, 86, 1145, 1142, 1146, 86, 86, 86, 1147, ++ 1155, 1148, 1158, 86, 1159, 1149, 1160, 1150, 1161, 1157, ++ ++ 1163, 1162, 1151, 86, 86, 1164, 86, 1152, 86, 86, ++ 86, 86, 1165, 1167, 86, 86, 1170, 86, 1166, 1173, ++ 86, 86, 1172, 1169, 86, 1168, 1171, 86, 86, 1174, ++ 1177, 86, 86, 1178, 1176, 1180, 1179, 1181, 1175, 1183, ++ 1184, 86, 1187, 86, 86, 86, 86, 86, 86, 86, ++ 1185, 1186, 86, 1188, 1196, 86, 1201, 1195, 1189, 86, ++ 1190, 1197, 86, 1199, 1200, 86, 1191, 1198, 86, 86, ++ 86, 1192, 1193, 1207, 86, 86, 86, 86, 1194, 86, ++ 1208, 1202, 1203, 86, 86, 86, 1214, 86, 1204, 1205, ++ 1206, 86, 86, 1211, 1210, 1209, 1215, 86, 1217, 86, ++ ++ 1218, 86, 1212, 1213, 86, 86, 1220, 86, 1222, 86, ++ 1223, 1216, 86, 86, 86, 86, 86, 1228, 1219, 86, ++ 1221, 1225, 1226, 86, 86, 1229, 86, 86, 1224, 1231, ++ 86, 1227, 86, 86, 86, 86, 86, 86, 1230, 86, ++ 86, 1233, 1236, 1237, 1235, 1238, 1232, 1240, 86, 86, ++ 1234, 1242, 1239, 86, 1244, 1245, 1241, 86, 86, 86, ++ 86, 86, 86, 86, 86, 1249, 1250, 1251, 1243, 86, ++ 1253, 1246, 1252, 1254, 1248, 1255, 1247, 86, 86, 86, ++ 1259, 86, 86, 1260, 86, 86, 1256, 1264, 1261, 86, ++ 86, 1262, 86, 1257, 1263, 1258, 86, 86, 86, 1265, ++ ++ 86, 1271, 86, 1273, 86, 86, 86, 86, 86, 86, ++ 1275, 1269, 1266, 1267, 1268, 1270, 86, 86, 86, 1274, ++ 1276, 1277, 1272, 86, 86, 86, 1282, 86, 1279, 1278, ++ 1280, 86, 1281, 86, 86, 86, 1283, 86, 1284, 1285, ++ 1286, 1289, 1292, 1288, 1290, 86, 86, 86, 86, 86, ++ 86, 1287, 1293, 86, 1294, 1291, 86, 86, 86, 1300, ++ 1298, 1301, 1302, 176, 86, 86, 1295, 86, 86, 1296, ++ 86, 1299, 86, 1305, 1307, 1303, 1297, 1304, 86, 86, ++ 86, 86, 1309, 1306, 86, 1311, 1308, 86, 1313, 86, ++ 86, 86, 1312, 86, 86, 86, 86, 86, 86, 1314, ++ ++ 1318, 1319, 1315, 86, 1310, 86, 86, 1320, 1321, 86, ++ 1325, 1326, 1316, 86, 1317, 86, 86, 86, 1323, 86, ++ 1329, 86, 86, 1322, 1328, 86, 86, 1334, 1324, 86, ++ 1327, 86, 1330, 86, 86, 86, 1331, 1332, 86, 1340, ++ 86, 86, 1336, 86, 1333, 86, 170, 1335, 1342, 1341, ++ 1343, 86, 86, 1337, 86, 86, 86, 1339, 86, 1348, ++ 1338, 1350, 86, 1352, 1349, 1345, 1344, 1346, 1347, 86, ++ 1353, 86, 86, 86, 86, 1356, 86, 1355, 1351, 1357, ++ 86, 86, 86, 86, 86, 86, 86, 1354, 1360, 86, ++ 1366, 86, 1363, 86, 1358, 1359, 86, 1361, 86, 86, ++ ++ 86, 1364, 86, 1362, 86, 1370, 1376, 1367, 1365, 1378, ++ 86, 86, 1377, 1369, 1368, 1372, 1379, 86, 86, 86, ++ 1371, 86, 86, 86, 1373, 1380, 1374, 86, 86, 1375, ++ 1382, 1385, 86, 1381, 86, 86, 86, 1386, 86, 86, ++ 1383, 1384, 86, 1389, 1393, 86, 1388, 1387, 86, 1390, ++ 1391, 86, 86, 1394, 86, 1392, 1395, 1397, 1398, 86, ++ 86, 86, 1396, 86, 86, 86, 86, 86, 1399, 1403, ++ 86, 86, 1406, 86, 86, 1400, 1401, 86, 1404, 1405, ++ 86, 86, 1402, 1407, 1413, 86, 1408, 1411, 1412, 86, ++ 86, 1409, 1410, 86, 1416, 86, 86, 1414, 86, 86, ++ ++ 1415, 86, 1423, 1425, 1417, 86, 86, 1419, 86, 86, ++ 86, 86, 1418, 86, 1422, 1420, 86, 86, 86, 1428, ++ 1426, 1424, 1431, 1421, 1427, 1433, 1429, 86, 1432, 1430, ++ 1434, 86, 86, 86, 1438, 86, 1448, 1435, 86, 1449, ++ 86, 1436, 86, 86, 86, 1437, 86, 1439, 1446, 1447, ++ 1452, 1440, 86, 1451, 1441, 1442, 86, 1450, 86, 1443, ++ 86, 86, 175, 1453, 1456, 1444, 1454, 86, 1455, 1445, ++ 86, 1457, 86, 86, 86, 1458, 1462, 1459, 86, 86, ++ 1460, 86, 86, 1463, 1465, 86, 1468, 1469, 86, 86, ++ 86, 1461, 86, 86, 1470, 1466, 86, 86, 1464, 1473, ++ ++ 1471, 1472, 1478, 1467, 1474, 86, 1475, 86, 1476, 86, ++ 1477, 86, 1480, 1481, 1482, 86, 86, 86, 1483, 1479, ++ 86, 1484, 1488, 86, 1485, 86, 86, 1489, 86, 1487, ++ 86, 1492, 1490, 1486, 86, 86, 86, 86, 86, 1498, ++ 86, 1499, 86, 1494, 1493, 86, 1500, 1491, 86, 86, ++ 86, 1497, 86, 1502, 1495, 1496, 1501, 86, 86, 1504, ++ 86, 1509, 86, 1503, 1505, 1508, 86, 1511, 86, 86, ++ 1506, 1512, 86, 86, 86, 1513, 86, 86, 1514, 1517, ++ 86, 1510, 86, 1507, 86, 1516, 1519, 86, 86, 1520, ++ 86, 86, 86, 1515, 86, 1521, 86, 1518, 1525, 86, ++ ++ 1530, 86, 86, 1522, 1528, 1523, 86, 1531, 86, 1527, ++ 86, 86, 1524, 1533, 1526, 86, 1529, 1532, 1535, 86, ++ 86, 86, 86, 86, 86, 1537, 86, 1539, 1534, 1541, ++ 86, 1540, 86, 1542, 1536, 1538, 86, 1543, 86, 1544, ++ 86, 1545, 86, 86, 1546, 1550, 1547, 1551, 1554, 1548, ++ 86, 86, 86, 86, 86, 1552, 1549, 1553, 86, 86, ++ 86, 1558, 86, 86, 86, 86, 86, 1555, 86, 1560, ++ 170, 1557, 86, 1566, 1567, 1562, 86, 86, 1556, 86, ++ 86, 1569, 1568, 1559, 1561, 1563, 86, 86, 1564, 86, ++ 86, 1570, 86, 86, 86, 1565, 86, 1571, 86, 1577, ++ ++ 86, 86, 1574, 86, 1582, 86, 1572, 1575, 1581, 1573, ++ 1576, 86, 86, 86, 1578, 86, 1584, 1586, 1580, 86, ++ 86, 1579, 1587, 86, 1583, 86, 86, 1591, 1589, 86, ++ 86, 1585, 1598, 1588, 1590, 1592, 86, 86, 1597, 1600, ++ 1593, 1595, 86, 1594, 1596, 86, 1601, 86, 1603, 86, ++ 86, 1599, 86, 1604, 86, 1608, 86, 86, 1602, 86, ++ 86, 1609, 86, 86, 86, 1612, 86, 86, 1605, 86, ++ 1607, 86, 1617, 1618, 86, 1610, 86, 1614, 86, 1611, ++ 1621, 86, 1613, 1620, 1615, 1616, 86, 86, 1622, 86, ++ 86, 86, 1619, 86, 1623, 86, 86, 86, 1629, 86, ++ ++ 1624, 1625, 1630, 86, 1626, 1627, 86, 86, 1631, 170, ++ 1628, 86, 1635, 86, 1632, 1634, 86, 1640, 1633, 1638, ++ 86, 1639, 1636, 86, 1641, 1637, 86, 1642, 86, 1643, ++ 86, 1644, 86, 86, 86, 86, 86, 1649, 1650, 1645, ++ 1648, 1651, 1646, 86, 86, 86, 1652, 86, 86, 1653, ++ 1654, 86, 86, 86, 1657, 1647, 1655, 86, 86, 86, ++ 86, 86, 1656, 86, 1662, 86, 86, 1661, 86, 1658, ++ 86, 1665, 1659, 1664, 1660, 86, 86, 1673, 1668, 86, ++ 1670, 1663, 1666, 1669, 86, 1671, 86, 86, 86, 1667, ++ 86, 86, 86, 86, 1681, 1672, 1677, 1676, 1674, 86, ++ ++ 86, 86, 86, 86, 1682, 86, 1675, 1685, 86, 1678, ++ 1688, 1680, 1679, 86, 1687, 86, 86, 86, 86, 86, ++ 86, 1683, 1686, 86, 1689, 86, 1698, 86, 1684, 86, ++ 1697, 86, 86, 86, 1690, 86, 1691, 1692, 1693, 1694, ++ 1704, 1695, 1696, 1702, 86, 1701, 1703, 86, 86, 86, ++ 1699, 1700, 1705, 86, 86, 86, 86, 1709, 86, 86, ++ 86, 1710, 1706, 1707, 1713, 86, 1708, 1717, 86, 86, ++ 86, 1714, 1719, 86, 1711, 1718, 1712, 86, 86, 86, ++ 1715, 1716, 1722, 1723, 1720, 86, 1721, 86, 86, 1724, ++ 86, 86, 1729, 1730, 86, 86, 86, 86, 86, 1727, ++ ++ 86, 1734, 1733, 1735, 86, 86, 1726, 1725, 1738, 86, ++ 86, 1728, 86, 1731, 1737, 86, 86, 1732, 1739, 86, ++ 86, 86, 86, 1743, 1736, 86, 1740, 86, 1741, 86, ++ 1748, 1746, 1742, 86, 86, 86, 86, 86, 86, 1754, ++ 86, 1752, 1744, 86, 86, 1745, 86, 1747, 1749, 1755, ++ 86, 1753, 86, 1760, 1751, 1750, 86, 86, 86, 1757, ++ 86, 1756, 1763, 1765, 86, 86, 86, 86, 1768, 1766, ++ 1759, 1758, 1761, 86, 1762, 1764, 86, 86, 86, 86, ++ 86, 86, 1772, 1775, 86, 1774, 1767, 1771, 86, 170, ++ 86, 1776, 86, 86, 1777, 1769, 1770, 1778, 1773, 86, ++ ++ 86, 86, 86, 1786, 86, 1779, 86, 1781, 1780, 1787, ++ 86, 86, 1790, 86, 1784, 1791, 86, 86, 1782, 1783, ++ 86, 1792, 1794, 86, 86, 86, 1785, 1796, 1795, 1798, ++ 1788, 1789, 86, 86, 86, 86, 86, 1793, 86, 1799, ++ 1800, 86, 1802, 1803, 1797, 86, 1805, 86, 1806, 86, ++ 86, 1801, 86, 86, 86, 1811, 1810, 86, 1804, 86, ++ 86, 86, 86, 1807, 1818, 1820, 86, 1809, 1808, 1815, ++ 86, 1813, 1816, 86, 86, 1812, 86, 86, 1819, 1825, ++ 1814, 1821, 1823, 1822, 1817, 1827, 1824, 1826, 86, 1828, ++ 1832, 86, 86, 86, 1830, 86, 86, 1829, 86, 1831, ++ ++ 86, 86, 86, 86, 86, 1833, 86, 1839, 86, 1838, ++ 1840, 1841, 86, 86, 1834, 1843, 86, 86, 86, 86, ++ 1835, 86, 1836, 1842, 1837, 86, 1846, 86, 86, 86, ++ 1845, 1844, 1849, 1847, 86, 86, 86, 1848, 86, 86, ++ 86, 86, 86, 86, 1858, 1857, 86, 86, 1850, 1852, ++ 1853, 86, 1854, 1860, 1851, 86, 86, 1855, 1864, 1861, ++ 86, 86, 1859, 1862, 86, 1856, 86, 86, 1863, 1870, ++ 86, 86, 86, 86, 86, 1874, 1865, 1866, 1872, 86, ++ 1867, 1868, 86, 86, 1873, 86, 86, 1869, 168, 86, ++ 86, 1871, 86, 86, 1875, 1879, 1876, 1881, 86, 86, ++ ++ 1889, 86, 1882, 1878, 1880, 1883, 86, 1877, 1884, 1888, ++ 1890, 86, 86, 1885, 86, 86, 86, 86, 1886, 1893, ++ 1894, 86, 86, 86, 1887, 86, 1891, 1897, 1895, 86, ++ 1892, 86, 1898, 86, 86, 86, 1896, 86, 1899, 1907, ++ 1902, 1901, 1900, 86, 1904, 86, 1906, 1905, 1908, 86, ++ 1909, 86, 86, 1903, 86, 86, 1915, 86, 86, 86, ++ 86, 1916, 86, 1917, 86, 1911, 86, 1921, 86, 1913, ++ 86, 1910, 1912, 1914, 86, 86, 1918, 1923, 1920, 1924, ++ 86, 1925, 86, 86, 1919, 86, 1922, 86, 1929, 86, ++ 86, 1927, 1933, 1930, 1928, 1926, 86, 1934, 86, 86, ++ ++ 86, 1939, 86, 1935, 1938, 1932, 1931, 86, 1941, 86, ++ 1942, 1936, 1937, 86, 86, 1945, 86, 86, 1940, 1943, ++ 86, 86, 1947, 1946, 1949, 86, 86, 1944, 86, 1951, ++ 86, 1953, 86, 86, 1948, 1952, 1954, 86, 1950, 86, ++ 86, 86, 86, 86, 86, 86, 1959, 86, 1958, 86, ++ 166, 1955, 1956, 1960, 1962, 1961, 1963, 86, 1957, 1966, ++ 86, 1964, 1968, 1965, 1969, 86, 1971, 86, 86, 86, ++ 86, 86, 1975, 86, 1977, 86, 86, 1972, 1970, 86, ++ 86, 1967, 86, 1981, 86, 86, 86, 1973, 1976, 86, ++ 1974, 1984, 86, 1983, 86, 1979, 86, 86, 1978, 1986, ++ ++ 1980, 1987, 86, 86, 86, 1982, 1988, 86, 170, 86, ++ 1992, 86, 1985, 1991, 1990, 1995, 86, 86, 86, 86, ++ 1993, 1999, 86, 86, 1994, 1989, 86, 86, 86, 1997, ++ 1996, 86, 86, 2000, 2001, 2002, 2006, 1998, 2003, 86, ++ 86, 86, 86, 86, 2007, 2057, 2009, 2004, 2010, 86, ++ 86, 2005, 2014, 2011, 2012, 86, 86, 2008, 2015, 2016, ++ 86, 2013, 86, 86, 86, 2018, 86, 86, 86, 2019, ++ 86, 86, 86, 86, 2017, 86, 86, 2024, 2025, 86, ++ 86, 2029, 86, 86, 2026, 86, 165, 2020, 2022, 2023, ++ 2021, 2027, 2030, 86, 86, 2028, 2037, 86, 2035, 2033, ++ ++ 2036, 2038, 2032, 86, 86, 2031, 2034, 86, 86, 86, ++ 86, 86, 86, 2044, 86, 2047, 2048, 86, 2049, 86, ++ 86, 2051, 86, 2040, 2039, 2042, 2045, 2041, 2046, 86, ++ 2043, 86, 2052, 86, 86, 2056, 86, 2058, 86, 2060, ++ 2050, 2059, 86, 86, 86, 86, 2062, 86, 86, 2063, ++ 2053, 2065, 86, 86, 2054, 2055, 2066, 86, 86, 86, ++ 2061, 2069, 86, 2068, 86, 86, 86, 86, 2074, 86, ++ 2072, 2073, 2064, 2067, 2070, 86, 2076, 86, 86, 86, ++ 2075, 86, 86, 86, 163, 2071, 2084, 2082, 2086, 2077, ++ 2078, 2079, 86, 2087, 86, 86, 2080, 2088, 2081, 2083, ++ ++ 86, 2085, 2090, 86, 86, 2093, 86, 86, 86, 86, ++ 2089, 86, 2097, 86, 2091, 2094, 86, 2099, 86, 2092, ++ 86, 86, 2102, 2103, 86, 86, 86, 2095, 86, 2096, ++ 2105, 86, 86, 86, 2110, 2098, 86, 2107, 2100, 86, ++ 86, 2108, 2101, 2112, 86, 2104, 86, 86, 86, 86, ++ 86, 2106, 2111, 86, 2109, 2115, 2116, 86, 2118, 2121, ++ 2113, 2114, 86, 86, 2123, 86, 86, 2122, 2126, 2120, ++ 86, 86, 2129, 2125, 86, 2117, 2119, 86, 86, 2127, ++ 2130, 86, 86, 2124, 86, 86, 86, 2131, 86, 86, ++ 2128, 86, 2136, 2132, 86, 86, 2139, 2140, 2135, 86, ++ ++ 2141, 86, 86, 86, 86, 2133, 86, 2134, 2144, 2137, ++ 86, 86, 86, 2149, 86, 86, 2143, 2148, 86, 2142, ++ 2138, 86, 2146, 86, 2145, 2153, 86, 2154, 86, 2155, ++ 2150, 86, 2147, 2151, 2152, 2157, 86, 2156, 86, 86, ++ 2161, 86, 2158, 86, 86, 86, 86, 86, 86, 86, ++ 2159, 2165, 2162, 2169, 86, 2160, 86, 2163, 86, 86, ++ 86, 2172, 86, 2164, 2171, 2166, 2176, 2167, 2168, 2174, ++ 86, 2173, 2170, 86, 2175, 86, 86, 2181, 86, 2185, ++ 2180, 2182, 86, 2183, 2177, 86, 86, 2178, 2184, 86, ++ 2186, 86, 2179, 86, 2190, 86, 86, 86, 2188, 86, ++ ++ 86, 2192, 86, 2189, 86, 2194, 86, 2191, 2196, 2198, ++ 86, 2193, 2187, 86, 86, 86, 2199, 86, 170, 86, ++ 86, 86, 86, 2202, 86, 86, 2234, 2195, 2197, 2200, ++ 2206, 2203, 2204, 2201, 86, 86, 2208, 2207, 2209, 86, ++ 2205, 2210, 86, 2212, 2211, 86, 86, 86, 86, 86, ++ 86, 2213, 2214, 86, 2215, 2216, 86, 86, 2217, 2218, ++ 86, 2220, 2219, 86, 86, 86, 2224, 86, 86, 2221, ++ 2223, 86, 86, 2225, 86, 2222, 2226, 2227, 86, 2229, ++ 86, 2228, 86, 2231, 86, 86, 2236, 86, 2230, 86, ++ 2235, 86, 86, 86, 86, 2241, 86, 86, 2238, 86, ++ ++ 2232, 86, 2246, 2233, 86, 2237, 2242, 2240, 2244, 2239, ++ 86, 86, 86, 2247, 2243, 86, 86, 2245, 2252, 86, ++ 2250, 86, 2248, 86, 2253, 2251, 86, 86, 2259, 86, ++ 86, 2257, 2249, 86, 86, 86, 2261, 86, 86, 2254, ++ 2262, 86, 2255, 2256, 2258, 2265, 2260, 2264, 86, 2266, ++ 86, 2263, 86, 2267, 86, 2270, 86, 86, 86, 86, ++ 2269, 86, 86, 86, 2268, 2272, 86, 2275, 2276, 86, ++ 2271, 86, 86, 86, 86, 86, 86, 86, 86, 2273, ++ 86, 2278, 2274, 2279, 2277, 2281, 2284, 2280, 86, 2288, ++ 2283, 2289, 86, 86, 86, 86, 2286, 2292, 86, 2285, ++ ++ 2282, 2287, 86, 2293, 86, 86, 2290, 2295, 86, 86, ++ 2296, 86, 2299, 2291, 2298, 2294, 86, 86, 86, 86, ++ 2300, 2304, 2297, 86, 86, 2306, 2302, 86, 86, 2307, ++ 2303, 86, 2309, 86, 2301, 86, 86, 86, 2308, 2312, ++ 2311, 2313, 2305, 86, 86, 86, 86, 2318, 2314, 86, ++ 86, 86, 2322, 86, 2310, 2319, 86, 2323, 86, 86, ++ 86, 2321, 2315, 2316, 2320, 86, 2317, 2324, 2327, 86, ++ 86, 2328, 86, 2331, 2326, 2325, 86, 86, 86, 86, ++ 2329, 2332, 86, 161, 2333, 86, 2335, 2337, 86, 86, ++ 2339, 86, 2330, 86, 2336, 2334, 86, 2338, 86, 2340, ++ ++ 2341, 2342, 86, 86, 2346, 86, 86, 86, 2348, 86, ++ 86, 2343, 2344, 2349, 86, 2345, 2351, 86, 2350, 86, ++ 86, 2352, 2353, 86, 2354, 2355, 2347, 86, 2359, 86, ++ 2356, 86, 86, 86, 86, 86, 2358, 86, 86, 86, ++ 2367, 86, 86, 2357, 86, 86, 86, 2371, 86, 2360, ++ 2361, 2362, 2365, 2363, 2366, 86, 2368, 2369, 86, 2364, ++ 2372, 2370, 86, 86, 86, 86, 86, 2373, 2374, 2376, ++ 86, 2377, 170, 86, 2382, 86, 86, 2384, 86, 2378, ++ 86, 2375, 2381, 2379, 86, 2383, 86, 86, 2385, 2388, ++ 2387, 2380, 86, 86, 2392, 2391, 2397, 2393, 2395, 2386, ++ ++ 2389, 86, 2394, 86, 86, 86, 2396, 86, 2400, 86, ++ 86, 2390, 86, 2398, 86, 2401, 2405, 86, 86, 2404, ++ 86, 2406, 2409, 86, 86, 2411, 86, 2399, 86, 2402, ++ 2407, 2410, 2412, 86, 86, 86, 2414, 86, 86, 2413, ++ 2403, 2408, 86, 86, 86, 86, 86, 2415, 2417, 86, ++ 2420, 86, 86, 86, 86, 2416, 2423, 2418, 86, 2427, ++ 86, 2429, 86, 2419, 2422, 86, 86, 86, 86, 2421, ++ 2424, 2430, 86, 2426, 2425, 86, 86, 2432, 86, 86, ++ 2431, 86, 2428, 2437, 2440, 86, 2434, 2435, 86, 86, ++ 86, 86, 2433, 86, 2438, 2436, 2441, 2439, 86, 86, ++ ++ 86, 86, 86, 86, 86, 2451, 86, 86, 2442, 2443, ++ 2444, 86, 2455, 2449, 86, 3523, 2445, 2454, 2447, 2452, ++ 2453, 2448, 2446, 2450, 86, 86, 2456, 2458, 86, 86, ++ 2459, 86, 2460, 86, 2457, 86, 86, 2464, 2465, 86, ++ 86, 86, 2466, 86, 2461, 2467, 86, 2462, 2463, 86, ++ 86, 2470, 2471, 2473, 86, 2472, 2468, 2474, 86, 86, ++ 86, 86, 2469, 86, 2475, 2476, 86, 2480, 86, 2481, ++ 86, 86, 2483, 86, 86, 2485, 86, 86, 2479, 86, ++ 86, 2477, 2487, 2478, 2488, 86, 2489, 86, 86, 2491, ++ 2482, 86, 2484, 86, 2486, 86, 86, 2496, 86, 86, ++ ++ 3523, 2495, 2490, 2498, 86, 86, 86, 2493, 2492, 86, ++ 86, 2500, 86, 2502, 2494, 2501, 86, 2503, 2497, 2505, ++ 86, 86, 86, 2499, 2508, 86, 86, 2511, 86, 86, ++ 86, 2506, 2504, 86, 86, 86, 2507, 86, 2515, 86, ++ 2509, 2516, 86, 86, 2518, 2510, 2521, 86, 2514, 2512, ++ 86, 86, 2519, 2513, 2517, 86, 86, 86, 2520, 86, ++ 86, 2528, 2523, 86, 86, 2524, 2530, 2534, 86, 86, ++ 2522, 2531, 2529, 86, 2525, 2526, 86, 86, 86, 86, ++ 86, 2535, 2536, 2537, 86, 2527, 2532, 86, 2533, 86, ++ 86, 86, 2539, 86, 2541, 2543, 2544, 2547, 2545, 86, ++ ++ 86, 2538, 2546, 86, 2548, 2540, 2542, 2551, 86, 86, ++ 86, 86, 86, 86, 2552, 2550, 2553, 86, 86, 86, ++ 2549, 2556, 86, 86, 86, 2555, 2557, 86, 2558, 2562, ++ 2563, 2559, 2560, 2554, 86, 86, 86, 86, 2561, 86, ++ 2569, 2564, 86, 2568, 86, 2570, 86, 2565, 2567, 86, ++ 86, 2573, 170, 2571, 2566, 86, 86, 2574, 2572, 86, ++ 86, 2579, 86, 86, 86, 86, 86, 86, 86, 86, ++ 2586, 86, 2577, 2581, 2580, 2575, 2578, 2576, 2582, 2583, ++ 2584, 2585, 86, 2589, 2590, 86, 86, 2587, 2588, 86, ++ 2591, 2592, 86, 86, 86, 2595, 2593, 2596, 86, 2594, ++ ++ 2599, 86, 86, 86, 2598, 86, 86, 2597, 86, 2600, ++ 86, 86, 2604, 2605, 2601, 86, 86, 86, 2609, 86, ++ 2602, 86, 2607, 2610, 86, 2608, 86, 86, 86, 2603, ++ 2606, 2611, 86, 86, 86, 86, 2612, 2613, 2615, 2616, ++ 86, 86, 86, 86, 86, 86, 2617, 2618, 86, 2623, ++ 86, 86, 2614, 2626, 86, 2619, 2625, 86, 2622, 86, ++ 2627, 2620, 86, 2621, 86, 2628, 86, 86, 2624, 2630, ++ 86, 2632, 2634, 86, 86, 2629, 86, 86, 86, 2638, ++ 86, 2631, 2635, 2637, 2639, 86, 2641, 86, 2633, 2640, ++ 2636, 86, 2643, 86, 2642, 86, 2644, 86, 2646, 86, ++ ++ 2648, 86, 86, 2647, 2650, 86, 86, 2652, 86, 86, ++ 86, 2651, 86, 2649, 86, 86, 86, 86, 86, 2656, ++ 86, 2645, 2659, 2660, 2654, 2661, 86, 2653, 2655, 2662, ++ 86, 86, 2663, 86, 2665, 86, 86, 2658, 86, 86, ++ 2664, 2657, 86, 86, 2668, 2670, 86, 2666, 86, 2673, ++ 86, 86, 2674, 2675, 86, 2669, 86, 2667, 2671, 86, ++ 2672, 2678, 86, 86, 86, 86, 2679, 86, 2682, 2676, ++ 2684, 2677, 86, 2680, 2683, 86, 86, 86, 86, 2688, ++ 86, 86, 2681, 2687, 86, 2686, 86, 86, 86, 3523, ++ 2685, 2692, 86, 86, 2689, 2690, 2691, 2695, 2696, 86, ++ ++ 2697, 86, 2698, 86, 2699, 86, 86, 2693, 2694, 86, ++ 86, 2701, 86, 2703, 2702, 86, 2704, 86, 2700, 86, ++ 2705, 86, 2706, 86, 86, 86, 2712, 86, 86, 2714, ++ 86, 2715, 86, 2708, 86, 86, 86, 2707, 86, 86, ++ 86, 2711, 86, 2709, 2721, 2710, 2716, 2713, 2717, 2718, ++ 2719, 86, 2724, 86, 2720, 86, 2726, 86, 86, 86, ++ 2722, 86, 86, 86, 2725, 86, 86, 86, 2733, 170, ++ 86, 2723, 86, 2735, 2729, 86, 2736, 2731, 86, 2728, ++ 86, 2734, 86, 86, 2727, 2737, 2730, 2732, 86, 86, ++ 2738, 2742, 3523, 86, 2744, 86, 2739, 2743, 2745, 2746, ++ ++ 86, 86, 2740, 2747, 86, 2741, 86, 2748, 86, 2749, ++ 86, 2750, 2752, 2751, 86, 86, 86, 86, 86, 86, ++ 86, 86, 86, 86, 2761, 86, 86, 86, 86, 2759, ++ 2754, 86, 2765, 2753, 3523, 2756, 2755, 2766, 86, 2758, ++ 2757, 2760, 2767, 2762, 2763, 2764, 86, 2768, 2770, 86, ++ 86, 2772, 86, 86, 86, 2769, 86, 86, 86, 2771, ++ 86, 86, 86, 86, 2776, 86, 2783, 86, 86, 2782, ++ 3523, 2773, 2774, 2777, 2775, 2784, 86, 86, 2778, 2779, ++ 86, 2780, 2781, 2788, 86, 2790, 2787, 86, 2785, 2789, ++ 86, 86, 86, 86, 86, 2786, 86, 86, 86, 86, ++ ++ 86, 2795, 2799, 86, 2798, 2791, 86, 2792, 2794, 2800, ++ 86, 86, 2793, 2801, 2802, 86, 86, 2796, 2797, 86, ++ 86, 86, 2803, 86, 86, 2804, 2807, 86, 2808, 2809, ++ 86, 86, 2806, 86, 2815, 86, 2814, 86, 2805, 86, ++ 86, 2810, 2818, 86, 86, 86, 2811, 2824, 86, 2813, ++ 2812, 2819, 2816, 86, 86, 86, 86, 2817, 2821, 2820, ++ 2822, 86, 86, 2829, 86, 2823, 2825, 86, 86, 86, ++ 2826, 2833, 86, 2832, 86, 86, 2827, 2831, 86, 2830, ++ 2835, 86, 2828, 2836, 2837, 86, 86, 86, 2841, 86, ++ 86, 2842, 86, 2834, 2844, 86, 86, 86, 2839, 86, ++ ++ 86, 2838, 86, 86, 86, 86, 86, 2840, 2885, 2845, ++ 2846, 2848, 2847, 2849, 2843, 2850, 2851, 86, 2853, 86, ++ 2852, 2854, 86, 86, 2855, 86, 86, 86, 2856, 86, ++ 86, 2858, 86, 86, 86, 2859, 86, 86, 2862, 2857, ++ 86, 2861, 2864, 2867, 86, 2865, 2868, 86, 2860, 2863, ++ 86, 2866, 2870, 2871, 170, 2869, 86, 86, 86, 86, ++ 2876, 3523, 2873, 2872, 86, 86, 86, 86, 2878, 2877, ++ 86, 2881, 86, 2882, 86, 2880, 2874, 2875, 86, 2886, ++ 2879, 2884, 86, 86, 2887, 86, 86, 86, 2888, 2891, ++ 86, 2883, 2889, 86, 2892, 86, 86, 86, 2893, 86, ++ ++ 2890, 86, 2898, 2899, 86, 2894, 86, 2896, 86, 86, ++ 86, 2900, 2895, 86, 86, 86, 2901, 2902, 2903, 86, ++ 86, 86, 2897, 2904, 2906, 86, 2905, 86, 86, 86, ++ 2907, 86, 2908, 2909, 2910, 86, 2913, 2911, 2912, 86, ++ 2914, 86, 2917, 86, 2915, 86, 86, 86, 86, 2918, ++ 86, 2922, 86, 86, 2923, 86, 86, 2927, 86, 2916, ++ 86, 86, 86, 86, 2919, 2925, 2920, 2931, 86, 2921, ++ 2926, 2934, 2924, 2932, 86, 2935, 2929, 86, 86, 2928, ++ 2937, 86, 2930, 2938, 86, 86, 86, 86, 86, 86, ++ 86, 86, 2944, 2933, 2941, 2939, 2936, 2942, 86, 86, ++ ++ 86, 86, 2945, 2943, 2946, 2947, 86, 2949, 86, 86, ++ 2940, 2951, 86, 2952, 86, 86, 2948, 2953, 86, 2954, ++ 86, 2956, 86, 86, 86, 2955, 2950, 2960, 2958, 2957, ++ 86, 86, 2961, 86, 86, 2964, 2959, 2965, 86, 2966, ++ 86, 86, 2962, 2967, 86, 86, 86, 86, 2968, 2971, ++ 86, 2963, 86, 86, 2969, 2974, 86, 86, 2975, 2970, ++ 2976, 86, 2978, 86, 86, 2972, 86, 86, 2977, 2982, ++ 2983, 86, 2973, 2985, 86, 86, 86, 2979, 2984, 86, ++ 86, 2981, 2987, 86, 2980, 2986, 86, 2988, 86, 86, ++ 2993, 86, 86, 86, 86, 2992, 86, 2995, 3054, 2989, ++ ++ 2996, 86, 86, 2990, 86, 86, 2991, 2997, 2999, 86, ++ 86, 86, 2998, 3001, 86, 3002, 2994, 3000, 86, 86, ++ 86, 3009, 86, 3005, 86, 86, 3003, 3004, 3011, 3006, ++ 86, 86, 86, 86, 3008, 86, 3012, 3016, 3010, 3007, ++ 3015, 3018, 3017, 86, 3013, 86, 3019, 86, 3021, 86, ++ 3014, 3027, 3020, 86, 3022, 86, 3023, 86, 3024, 86, ++ 3025, 86, 3026, 86, 86, 3029, 86, 86, 3028, 86, ++ 86, 86, 3032, 86, 86, 3034, 3038, 86, 3039, 86, ++ 3031, 86, 3035, 86, 3040, 3042, 86, 86, 3033, 86, ++ 3030, 3036, 3044, 86, 3037, 86, 3043, 3046, 86, 86, ++ ++ 3045, 3041, 86, 86, 86, 3051, 3052, 86, 3047, 3053, ++ 86, 3048, 3049, 3050, 86, 86, 86, 86, 86, 3059, ++ 86, 86, 86, 3055, 3060, 86, 3063, 3057, 86, 3062, ++ 86, 3061, 3058, 3064, 3056, 3065, 86, 3066, 86, 86, ++ 3070, 86, 86, 86, 3067, 86, 3068, 86, 86, 86, ++ 3077, 3071, 3074, 86, 86, 3072, 86, 3069, 3075, 86, ++ 86, 86, 86, 3082, 3080, 3078, 3081, 86, 3076, 3083, ++ 3073, 86, 3084, 86, 86, 3079, 86, 3087, 3089, 86, ++ 3088, 3090, 86, 3092, 3085, 3091, 86, 3086, 86, 86, ++ 86, 3096, 86, 86, 3095, 86, 86, 86, 3097, 86, ++ ++ 3098, 3099, 86, 86, 86, 3107, 86, 86, 3093, 3094, ++ 3100, 3101, 3103, 3105, 86, 86, 86, 3102, 3108, 86, ++ 3109, 3104, 86, 86, 3111, 86, 86, 3110, 86, 3106, ++ 3116, 86, 86, 86, 86, 3112, 86, 86, 86, 86, ++ 3113, 3114, 3120, 86, 3125, 3117, 3118, 3119, 3115, 86, ++ 86, 86, 3121, 3122, 86, 3123, 86, 3124, 86, 3127, ++ 3128, 3131, 86, 86, 86, 3133, 86, 3134, 86, 86, ++ 3126, 86, 3129, 3136, 86, 86, 86, 3142, 86, 86, ++ 3139, 86, 3130, 3132, 3135, 3137, 3141, 3138, 86, 3145, ++ 86, 86, 3140, 86, 3148, 86, 86, 3144, 86, 3143, ++ ++ 3151, 86, 86, 3153, 86, 86, 86, 3156, 86, 86, ++ 3147, 3154, 3149, 3146, 86, 3150, 3157, 86, 3160, 86, ++ 3158, 86, 3152, 86, 86, 3165, 3155, 86, 86, 86, ++ 86, 86, 3162, 3163, 3159, 3169, 86, 86, 3161, 86, ++ 3167, 86, 3171, 3164, 3172, 3170, 3166, 86, 3173, 3168, ++ 86, 86, 3176, 3177, 86, 3179, 86, 3175, 86, 3178, ++ 86, 86, 3174, 3182, 86, 3181, 86, 86, 3185, 3180, ++ 86, 3183, 3188, 86, 86, 86, 86, 86, 86, 3193, ++ 86, 86, 86, 86, 3197, 86, 3184, 3186, 3187, 3189, ++ 3523, 3192, 3196, 3190, 3198, 86, 3199, 86, 3195, 86, ++ ++ 3194, 3191, 86, 86, 3200, 3203, 86, 86, 3202, 3204, ++ 86, 3205, 86, 3206, 86, 86, 3201, 3209, 86, 86, ++ 3207, 3211, 86, 86, 3210, 86, 86, 86, 86, 86, ++ 3217, 3218, 86, 86, 86, 86, 86, 3212, 3224, 86, ++ 86, 3208, 86, 3225, 86, 86, 3215, 3213, 3214, 3221, ++ 3216, 3223, 3226, 3220, 86, 3235, 3222, 86, 86, 3219, ++ 3227, 86, 3229, 86, 3228, 3231, 86, 3232, 86, 86, ++ 86, 86, 3238, 86, 3233, 3230, 86, 3234, 86, 3237, ++ 86, 3239, 3236, 3241, 3240, 86, 86, 86, 86, 86, ++ 86, 86, 3244, 86, 86, 3246, 86, 86, 3247, 86, ++ ++ 3245, 86, 86, 86, 86, 3242, 3243, 3256, 3257, 86, ++ 3248, 3523, 3252, 3249, 3250, 3251, 3253, 3254, 86, 3259, ++ 86, 86, 3255, 3260, 3258, 86, 3268, 86, 86, 3261, ++ 3262, 3264, 86, 3263, 3265, 86, 86, 3267, 86, 3523, ++ 3266, 3270, 86, 3271, 86, 3272, 3273, 3269, 86, 3274, ++ 3275, 86, 86, 3276, 86, 3277, 3278, 86, 86, 86, ++ 3281, 3279, 3282, 86, 3280, 86, 86, 86, 86, 86, ++ 3288, 86, 86, 86, 3287, 86, 86, 86, 86, 86, ++ 3284, 3292, 3291, 3283, 86, 3293, 86, 3285, 3286, 3296, ++ 3297, 86, 3289, 3294, 86, 3298, 86, 3295, 3290, 86, ++ ++ 3299, 3300, 86, 3301, 86, 86, 86, 3306, 3308, 3302, ++ 3303, 86, 3307, 86, 86, 3304, 86, 86, 3305, 86, ++ 86, 3309, 3312, 3316, 3313, 86, 3310, 3315, 86, 86, ++ 86, 3317, 3318, 86, 3319, 86, 86, 3311, 3523, 3314, ++ 86, 3321, 3322, 86, 86, 3320, 3323, 86, 3523, 3324, ++ 3325, 86, 3326, 86, 3327, 86, 3328, 86, 3329, 86, ++ 3330, 86, 3331, 86, 3332, 86, 86, 3335, 86, 86, ++ 3333, 86, 86, 3339, 86, 3334, 86, 86, 3336, 3341, ++ 86, 86, 86, 3337, 86, 3345, 3346, 86, 86, 86, ++ 3343, 86, 3338, 86, 3344, 3340, 3342, 3348, 86, 86, ++ ++ 86, 3352, 3350, 3347, 3355, 86, 86, 3349, 3354, 86, ++ 86, 3353, 86, 86, 3357, 86, 86, 3351, 86, 86, ++ 3356, 86, 3361, 3363, 86, 86, 86, 3362, 86, 3360, ++ 3366, 3358, 86, 3359, 86, 3367, 3364, 3369, 86, 3368, ++ 3370, 86, 3371, 86, 86, 86, 86, 86, 86, 3374, ++ 3365, 3372, 86, 3373, 3375, 86, 86, 3379, 3380, 3378, ++ 3376, 86, 86, 3382, 86, 86, 86, 86, 3383, 86, ++ 3377, 86, 86, 86, 86, 86, 3381, 3391, 3389, 86, ++ 3393, 3386, 86, 3384, 3385, 3390, 3388, 3394, 86, 86, ++ 86, 86, 3387, 86, 3396, 3392, 3397, 3399, 86, 3395, ++ ++ 3400, 3401, 86, 86, 3402, 3403, 86, 3404, 86, 86, ++ 3398, 86, 3405, 86, 3407, 86, 86, 86, 3408, 3412, ++ 3409, 86, 86, 86, 86, 86, 3416, 86, 3415, 3406, ++ 3418, 86, 3411, 86, 3414, 3413, 3419, 86, 86, 3422, ++ 86, 3410, 86, 86, 3417, 3425, 86, 86, 3420, 86, ++ 3426, 86, 86, 3429, 86, 3427, 3430, 3421, 3423, 86, ++ 3424, 86, 86, 86, 3435, 86, 3431, 3432, 3434, 86, ++ 3428, 3436, 86, 86, 86, 86, 86, 86, 86, 3440, ++ 3433, 86, 3442, 86, 86, 86, 86, 86, 3439, 3447, ++ 3437, 3448, 86, 3438, 3444, 86, 3441, 3443, 3445, 3449, ++ ++ 86, 86, 3446, 3453, 86, 3455, 3454, 3450, 86, 3456, ++ 3451, 86, 86, 86, 3452, 86, 86, 3457, 3458, 3461, ++ 3459, 3462, 86, 86, 86, 86, 3464, 86, 3463, 86, ++ 86, 86, 86, 3465, 3470, 3460, 86, 3467, 86, 86, ++ 86, 86, 3473, 3466, 3474, 86, 86, 86, 86, 86, ++ 3468, 3469, 3472, 3477, 86, 3471, 3475, 3478, 86, 3476, ++ 86, 3481, 3480, 3482, 86, 3479, 86, 3483, 86, 3485, ++ 86, 3487, 86, 3488, 86, 86, 86, 3492, 86, 3489, ++ 3523, 86, 3490, 3495, 86, 3486, 3493, 86, 86, 3494, ++ 3484, 86, 86, 86, 86, 3491, 86, 86, 3496, 3497, ++ ++ 86, 3499, 3501, 86, 86, 3503, 86, 3498, 86, 3504, ++ 86, 3507, 3500, 3502, 3508, 86, 3505, 86, 86, 3511, ++ 3512, 86, 86, 3514, 86, 3506, 86, 3509, 86, 3513, ++ 3515, 86, 86, 3516, 86, 86, 3510, 3517, 3523, 3518, ++ 3521, 86, 3522, 86, 3523, 3523, 3523, 3519, 3523, 3523, ++ 3523, 3523, 3523, 3523, 3520, 47, 47, 47, 47, 47, ++ 47, 47, 52, 52, 52, 52, 52, 52, 52, 57, ++ 57, 57, 57, 57, 57, 57, 63, 63, 63, 63, ++ 63, 63, 63, 68, 68, 68, 68, 68, 68, 68, ++ 74, 74, 74, 74, 74, 74, 74, 80, 80, 80, ++ ++ 80, 80, 80, 80, 89, 89, 3523, 89, 89, 89, ++ 89, 160, 160, 3523, 3523, 3523, 160, 160, 162, 162, ++ 3523, 3523, 162, 3523, 162, 164, 3523, 3523, 3523, 3523, ++ 3523, 164, 167, 167, 3523, 3523, 3523, 167, 167, 169, ++ 3523, 3523, 3523, 3523, 3523, 169, 171, 171, 3523, 171, ++ 171, 171, 171, 174, 3523, 3523, 3523, 3523, 3523, 174, ++ 177, 177, 3523, 3523, 3523, 177, 177, 90, 90, 3523, ++ 90, 90, 90, 90, 17, 3523, 3523, 3523, 3523, 3523, ++ 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, ++ 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, ++ ++ 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, ++ 3523, 3523, 3523, 3523, 3523 } ; - static const flex_int16_t yy_chk[6885] = -static const flex_int16_t yy_chk[5741] = ++static const flex_int16_t yy_chk[6916] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 4, 4, 4, 5, 5, 6, 6, - 5, 3, 6, 20, 4, 20, 20, 5, 20, 6, - 7, 7, 7, 7, 20, 7, 8, 8, 8, 8, - 29, 8, 7, 9, 9, 9, 22, 22, 8, 10, - 10, 10, 15, 25, 9, 29, 15, 25, 2926, 31, - 10, 11, 11, 11, 11, 11, 11, 19, 79, 19, - - 19, 30, 19, 11, 31, 79, 30, 25, 19, 19, - 47, 47, 11, 12, 12, 12, 12, 12, 12, 21, - 23, 23, 21, 21, 24, 12, 21, 81, 23, 24, - 34, 21, 23, 24, 12, 23, 24, 976, 24, 24, - 21, 26, 26, 27, 27, 90, 28, 81, 32, 32, - 28, 34, 27, 28, 33, 33, 26, 32, 36, 33, - 28, 35, 28, 32, 90, 42, 35, 32, 52, 84, - 35, 52, 36, 37, 37, 33, 35, 38, 37, 35, - 42, 69, 38, 63, 63, 38, 35, 84, 37, 40, - 72, 37, 38, 40, 72, 69, 38, 38, 39, 39, - - 102, 39, 78, 40, 41, 41, 78, 40, 40, 41, - 39, 149, 58, 41, 58, 58, 39, 58, 66, 102, - 66, 66, 68, 66, 68, 68, 71, 68, 71, 71, - 66, 71, 85, 74, 80, 74, 74, 71, 74, 77, - 82, 85, 77, 82, 74, 74, 80, 83, 86, 88, - 83, 89, 87, 91, 93, 92, 98, 95, 87, 91, - 96, 98, 86, 83, 87, 94, 87, 88, 88, 92, - 159, 99, 91, 89, 93, 95, 94, 94, 96, 97, - 105, 159, 101, 97, 94, 99, 100, 106, 101, 100, - 103, 104, 100, 107, 104, 103, 108, 107, 104, 105, - - 109, 106, 110, 108, 105, 100, 100, 101, 111, 110, - 112, 113, 114, 109, 104, 103, 114, 115, 116, 117, - 119, 111, 121, 116, 118, 118, 122, 116, 120, 113, - 112, 124, 120, 127, 127, 115, 125, 121, 126, 117, - 119, 120, 125, 123, 124, 122, 123, 120, 128, 129, - 126, 127, 130, 131, 127, 134, 132, 123, 133, 135, - 133, 123, 137, 136, 135, 129, 128, 134, 138, 133, - 139, 130, 132, 138, 131, 136, 141, 141, 147, 143, - 137, 133, 143, 145, 139, 145, 145, 154, 145, 148, - 148, 150, 154, 150, 150, 151, 150, 151, 151, 153, - - 151, 156, 153, 155, 160, 157, 158, 151, 161, 155, - 162, 163, 160, 164, 158, 165, 163, 167, 155, 156, - 157, 158, 166, 191, 165, 162, 168, 161, 166, 166, - 170, 168, 178, 164, 169, 169, 170, 172, 171, 191, - 171, 172, 167, 171, 173, 173, 172, 174, 175, 176, - 177, 172, 178, 175, 176, 179, 182, 172, 172, 180, - 171, 179, 177, 180, 181, 183, 174, 184, 185, 181, - 182, 186, 187, 189, 190, 192, 186, 187, 189, 184, - 183, 192, 184, 196, 179, 194, 185, 188, 188, 193, - 193, 194, 195, 188, 190, 197, 198, 194, 195, 199, - - 200, 197, 198, 196, 201, 188, 200, 188, 202, 201, - 203, 198, 205, 206, 202, 204, 203, 204, 207, 206, - 199, 208, 204, 209, 210, 205, 211, 208, 212, 214, - 215, 213, 210, 212, 216, 218, 217, 220, 207, 211, - 213, 217, 221, 219, 214, 209, 215, 219, 221, 222, - 223, 224, 225, 218, 216, 227, 223, 225, 226, 220, - 226, 230, 227, 228, 229, 232, 231, 222, 222, 228, - 229, 224, 231, 233, 234, 234, 236, 232, 235, 235, - 230, 239, 236, 237, 238, 240, 238, 233, 242, 237, - 240, 243, 244, 241, 246, 260, 245, 260, 257, 243, - - 236, 245, 247, 238, 239, 241, 249, 242, 247, 248, - 251, 249, 244, 250, 252, 248, 251, 246, 250, 253, - 254, 255, 256, 257, 259, 258, 263, 259, 267, 252, - 256, 258, 266, 253, 146, 255, 261, 261, 254, 262, - 264, 264, 262, 267, 263, 265, 265, 268, 266, 269, - 268, 270, 271, 269, 272, 273, 275, 274, 271, 274, - 270, 273, 275, 276, 277, 277, 278, 276, 272, 279, - 280, 278, 282, 281, 283, 279, 284, 284, 285, 286, - 288, 285, 287, 290, 276, 144, 287, 283, 289, 289, - 280, 281, 291, 282, 292, 291, 293, 286, 288, 295, - - 294, 290, 293, 294, 297, 298, 292, 301, 310, 299, - 301, 295, 296, 297, 299, 300, 303, 310, 300, 308, - 300, 296, 302, 298, 296, 305, 305, 307, 303, 296, - 296, 296, 296, 309, 308, 302, 300, 304, 306, 304, - 304, 306, 311, 315, 307, 312, 312, 307, 309, 313, - 316, 311, 314, 314, 313, 316, 317, 318, 315, 319, - 320, 321, 322, 142, 323, 324, 380, 321, 317, 323, - 380, 324, 325, 326, 328, 320, 318, 325, 326, 319, - 327, 330, 322, 327, 326, 327, 329, 332, 328, 329, - 330, 331, 331, 332, 333, 334, 338, 339, 334, 333, - - 340, 336, 329, 337, 334, 329, 342, 329, 334, 342, - 346, 338, 339, 343, 340, 345, 334, 335, 335, 346, - 335, 336, 351, 347, 337, 342, 348, 343, 347, 347, - 345, 349, 348, 335, 140, 350, 335, 351, 335, 352, - 335, 344, 353, 344, 344, 354, 355, 356, 352, 357, - 359, 354, 349, 344, 350, 344, 344, 344, 358, 360, - 344, 353, 361, 357, 358, 362, 363, 356, 358, 364, - 365, 363, 355, 359, 366, 366, 365, 367, 368, 360, - 362, 369, 361, 370, 364, 371, 372, 373, 375, 370, - 368, 376, 373, 374, 374, 369, 374, 367, 377, 378, - - 381, 379, 372, 379, 381, 382, 382, 376, 375, 383, - 371, 384, 386, 378, 377, 385, 388, 390, 387, 381, - 389, 379, 390, 391, 392, 388, 384, 391, 383, 389, - 386, 385, 387, 392, 393, 394, 388, 395, 388, 397, - 393, 396, 398, 395, 397, 396, 399, 399, 400, 401, - 402, 403, 403, 404, 401, 406, 394, 407, 413, 404, - 405, 400, 398, 402, 405, 70, 408, 409, 410, 410, - 406, 408, 409, 411, 412, 414, 413, 410, 407, 415, - 416, 417, 415, 420, 416, 411, 419, 414, 418, 418, - 424, 419, 425, 417, 412, 421, 421, 423, 423, 426, - - 425, 427, 428, 429, 420, 431, 432, 433, 434, 435, - 427, 424, 437, 436, 434, 429, 438, 437, 435, 436, - 426, 433, 428, 431, 439, 431, 432, 440, 441, 444, - 438, 442, 439, 440, 442, 439, 443, 446, 450, 445, - 447, 448, 443, 444, 445, 448, 449, 451, 441, 452, - 453, 449, 451, 450, 454, 456, 476, 457, 458, 446, - 443, 447, 458, 459, 460, 452, 463, 454, 476, 453, - 455, 455, 457, 461, 462, 456, 455, 461, 455, 462, - 460, 463, 459, 462, 455, 465, 455, 464, 466, 455, - 455, 468, 464, 467, 470, 469, 455, 466, 469, 467, - - 471, 465, 472, 472, 467, 473, 475, 468, 474, 474, - 477, 479, 478, 480, 481, 482, 64, 470, 480, 486, - 471, 475, 483, 481, 491, 477, 484, 494, 486, 489, - 473, 478, 484, 479, 482, 487, 488, 483, 490, 487, - 492, 489, 488, 491, 493, 494, 495, 496, 498, 497, - 495, 497, 501, 490, 492, 500, 498, 499, 499, 493, - 496, 500, 502, 503, 501, 505, 504, 506, 502, 504, - 508, 507, 509, 508, 510, 503, 507, 59, 511, 505, - 512, 509, 506, 511, 511, 513, 513, 519, 509, 526, - 510, 509, 515, 512, 514, 514, 516, 516, 515, 517, - - 517, 518, 520, 522, 521, 520, 523, 518, 519, 521, - 524, 525, 526, 524, 523, 527, 525, 528, 529, 530, - 531, 528, 522, 530, 529, 532, 533, 534, 536, 537, - 532, 535, 537, 534, 527, 538, 535, 537, 531, 539, - 539, 537, 536, 540, 541, 542, 533, 546, 543, 541, - 542, 544, 545, 538, 547, 548, 546, 547, 545, 548, - 549, 540, 543, 551, 550, 549, 544, 550, 551, 552, - 553, 554, 556, 555, 557, 558, 558, 556, 554, 560, - 559, 548, 562, 561, 563, 552, 555, 564, 553, 559, - 570, 562, 569, 564, 557, 565, 563, 566, 560, 561, - - 566, 565, 567, 568, 570, 567, 571, 572, 568, 573, - 569, 574, 575, 572, 573, 575, 576, 574, 577, 578, - 571, 576, 579, 577, 577, 580, 584, 581, 582, 583, - 586, 584, 578, 581, 585, 579, 586, 585, 583, 587, - 591, 588, 593, 589, 580, 580, 588, 582, 589, 589, - 595, 587, 585, 590, 590, 592, 594, 592, 594, 596, - 597, 593, 598, 599, 600, 591, 602, 601, 595, 603, - 600, 601, 604, 605, 606, 602, 607, 596, 597, 608, - 609, 598, 610, 599, 603, 611, 609, 604, 607, 612, - 613, 605, 615, 606, 608, 614, 610, 611, 616, 614, - - 617, 618, 619, 620, 621, 621, 623, 622, 612, 613, - 615, 622, 624, 625, 616, 627, 628, 620, 617, 618, - 618, 619, 638, 624, 626, 623, 629, 625, 631, 626, - 630, 627, 635, 631, 632, 628, 638, 630, 633, 629, - 634, 632, 636, 633, 637, 634, 639, 640, 643, 636, - 635, 641, 643, 637, 642, 639, 641, 642, 644, 640, - 645, 646, 648, 647, 649, 649, 650, 650, 654, 645, - 651, 651, 644, 652, 655, 650, 646, 647, 656, 658, - 655, 657, 652, 648, 659, 657, 660, 654, 661, 662, - 664, 658, 663, 665, 661, 666, 669, 662, 656, 663, - - 672, 667, 687, 675, 660, 677, 667, 687, 664, 659, - 667, 669, 675, 667, 682, 666, 676, 672, 665, 683, - 667, 677, 676, 667, 678, 679, 679, 681, 678, 680, - 680, 684, 682, 683, 685, 690, 688, 689, 681, 691, - 685, 693, 691, 692, 692, 694, 694, 695, 693, 696, - 696, 684, 686, 686, 686, 689, 686, 688, 697, 686, - 690, 699, 695, 697, 686, 698, 699, 700, 698, 700, - 686, 686, 701, 702, 703, 704, 708, 705, 703, 706, - 707, 707, 711, 709, 701, 710, 710, 706, 713, 712, - 730, 708, 702, 714, 730, 704, 705, 709, 715, 714, - - 711, 712, 717, 715, 716, 716, 719, 717, 717, 720, - 713, 719, 721, 54, 722, 720, 723, 724, 721, 722, - 724, 725, 723, 726, 727, 728, 732, 725, 729, 731, - 734, 726, 727, 729, 733, 733, 731, 737, 735, 734, - 739, 736, 740, 728, 745, 732, 735, 736, 741, 739, - 742, 740, 743, 741, 746, 743, 737, 744, 745, 742, - 747, 747, 744, 748, 749, 750, 751, 756, 754, 752, - 754, 758, 752, 759, 750, 755, 755, 757, 748, 746, - 752, 760, 757, 749, 761, 762, 763, 764, 756, 766, - 751, 768, 758, 759, 765, 763, 767, 768, 765, 769, - - 770, 760, 771, 772, 774, 762, 761, 766, 769, 775, - 764, 777, 770, 773, 775, 767, 778, 772, 774, 773, - 779, 771, 776, 776, 780, 778, 781, 782, 783, 785, - 784, 777, 780, 787, 786, 785, 788, 789, 790, 787, - 779, 791, 792, 789, 790, 791, 781, 783, 786, 782, - 784, 793, 794, 795, 796, 796, 788, 794, 797, 798, - 799, 792, 798, 793, 797, 802, 800, 801, 803, 803, - 804, 793, 805, 801, 795, 806, 806, 805, 799, 800, - 807, 810, 808, 809, 809, 802, 808, 811, 804, 812, - 813, 815, 816, 818, 812, 807, 819, 821, 821, 823, - - 822, 824, 824, 810, 822, 825, 816, 811, 826, 813, - 827, 829, 826, 818, 823, 815, 829, 819, 820, 828, - 834, 820, 830, 820, 832, 827, 831, 820, 838, 820, - 825, 831, 831, 828, 820, 834, 830, 833, 832, 820, - 835, 833, 836, 837, 839, 835, 840, 836, 841, 838, - 842, 846, 840, 847, 841, 835, 842, 837, 839, 843, - 843, 844, 845, 848, 850, 851, 844, 853, 845, 856, - 851, 852, 847, 846, 854, 854, 850, 856, 857, 853, - 858, 848, 849, 849, 855, 852, 859, 861, 849, 855, - 849, 861, 857, 860, 860, 864, 849, 863, 864, 858, - - 865, 849, 849, 863, 866, 859, 867, 869, 849, 868, - 873, 870, 867, 871, 868, 872, 873, 866, 874, 865, - 870, 875, 871, 876, 877, 878, 869, 874, 876, 879, - 880, 872, 881, 884, 882, 890, 893, 887, 891, 878, - 875, 881, 880, 882, 877, 883, 885, 889, 892, 879, - 884, 883, 885, 887, 893, 890, 894, 891, 895, 896, - 897, 889, 892, 895, 896, 897, 898, 899, 899, 902, - 900, 894, 901, 904, 905, 898, 900, 908, 901, 905, - 905, 909, 902, 906, 906, 907, 910, 906, 907, 904, - 911, 908, 912, 913, 914, 916, 915, 917, 916, 913, - - 918, 909, 915, 911, 910, 918, 919, 912, 920, 923, - 921, 919, 922, 925, 914, 921, 926, 922, 917, 925, - 927, 923, 928, 931, 920, 930, 927, 934, 928, 929, - 929, 935, 926, 932, 930, 936, 932, 933, 933, 937, - 938, 931, 937, 939, 53, 934, 940, 946, 947, 939, - 935, 941, 940, 938, 942, 936, 941, 943, 944, 942, - 948, 953, 943, 957, 944, 946, 948, 949, 947, 950, - 950, 951, 949, 952, 954, 955, 956, 954, 955, 953, - 951, 957, 952, 958, 959, 960, 961, 956, 963, 962, - 965, 960, 961, 963, 966, 958, 964, 964, 967, 969, - - 971, 968, 970, 959, 962, 968, 972, 974, 966, 965, - 967, 970, 975, 975, 977, 978, 980, 969, 981, 971, - 979, 980, 982, 982, 983, 48, 974, 981, 977, 984, - 978, 972, 979, 985, 989, 984, 986, 988, 987, 985, - 987, 986, 988, 990, 983, 991, 992, 993, 989, 994, - 991, 996, 995, 998, 998, 999, 994, 990, 1000, 1001, - 1003, 992, 1002, 1006, 1006, 1009, 993, 995, 1002, 999, - 996, 1011, 1004, 1007, 1001, 1008, 1000, 1004, 1007, 1009, - 1003, 1010, 1008, 1012, 1010, 1013, 1004, 1014, 1004, 1011, - 1013, 1004, 1012, 1015, 1016, 1017, 1019, 1019, 1015, 1020, - - 1022, 1025, 1021, 1023, 1020, 1016, 1014, 1021, 1023, 1024, - 1025, 1026, 1027, 1024, 1017, 1028, 1029, 1030, 1031, 1032, - 1022, 1033, 1034, 1035, 1036, 1031, 1026, 1027, 1029, 1037, - 1036, 1032, 1030, 1038, 1028, 1039, 1040, 1043, 1044, 1045, - 1033, 1035, 1042, 1034, 1037, 1040, 1044, 1046, 1042, 1047, - 1049, 1043, 1046, 1038, 1050, 1039, 1082, 1048, 1051, 1045, - 1054, 1047, 1048, 1048, 1052, 1052, 1055, 1082, 1050, 1049, - 1056, 1051, 1053, 1054, 1059, 1055, 1056, 1053, 1057, 1057, - 1053, 1053, 1058, 1059, 1060, 1053, 1064, 1058, 1061, 1062, - 1060, 1053, 1067, 1061, 1062, 1053, 1063, 1063, 1065, 1065, - - 1066, 1068, 1069, 1066, 1070, 1066, 1072, 1064, 1071, 1073, - 1074, 1069, 1067, 1071, 1077, 1075, 1074, 1076, 1077, 1068, - 1072, 1075, 1076, 1078, 1070, 1079, 1086, 1073, 1080, 1080, - 1081, 1084, 1081, 1085, 1079, 1084, 1078, 1087, 1089, 1079, - 43, 1079, 1091, 1079, 1086, 1079, 1087, 1088, 1085, 1090, - 1092, 1093, 1088, 1088, 1090, 1094, 1091, 1095, 1096, 1092, - 1089, 1097, 1098, 1100, 1099, 1095, 1097, 1101, 1103, 1103, - 1093, 1104, 1096, 1099, 1094, 1102, 1098, 1105, 1105, 1110, - 1102, 1100, 1106, 1113, 1106, 1108, 1104, 1111, 1108, 1109, - 1112, 1112, 1101, 1117, 1109, 1118, 1111, 1120, 1110, 1114, - - 1114, 1115, 1115, 1113, 1116, 1119, 1119, 1121, 1122, 1116, - 1121, 1124, 1126, 1123, 1117, 1137, 1118, 1120, 1123, 1125, - 1124, 1125, 1128, 1129, 1130, 1128, 1131, 1132, 1122, 1130, - 1126, 1131, 1133, 1137, 1134, 1132, 14, 1133, 1129, 1134, - 1135, 1135, 1136, 1138, 1139, 1140, 1142, 1136, 1143, 1138, - 1144, 1139, 1142, 1145, 1143, 1144, 1146, 1147, 1140, 1145, - 1148, 1149, 1149, 1150, 1152, 1146, 1153, 1154, 1155, 1156, - 1160, 1148, 1158, 1154, 1155, 1156, 1147, 1159, 1158, 1162, - 1161, 1163, 1165, 1150, 1152, 1164, 1164, 1166, 1167, 1153, - 1160, 1159, 1161, 1162, 1170, 1168, 1171, 1159, 1175, 1163, - - 1168, 1171, 1165, 1169, 1169, 1173, 1167, 1177, 1174, 1176, - 13, 1178, 1166, 1174, 1174, 1177, 1175, 1170, 1176, 1179, - 1180, 1181, 1183, 1188, 1173, 1178, 1181, 1184, 1182, 1181, - 1182, 1186, 1187, 1184, 1179, 1180, 1183, 1185, 1180, 1189, - 1190, 1185, 1186, 1191, 1193, 1190, 1195, 1192, 1196, 1188, - 1197, 1187, 1192, 1198, 1198, 1199, 1200, 1189, 1201, 1199, - 1195, 1191, 1204, 1202, 1193, 1206, 1196, 1203, 1197, 1202, - 1205, 1207, 1208, 1209, 1200, 1210, 1212, 1201, 1209, 1203, - 1206, 1204, 1210, 1211, 1205, 1215, 1207, 1213, 1211, 1214, - 1214, 1208, 1216, 1217, 1212, 1219, 1213, 1218, 1216, 1220, - - 1215, 1219, 1218, 1221, 1221, 1220, 1222, 1222, 1224, 1224, - 1226, 1225, 1227, 1228, 1217, 1225, 1229, 1230, 1232, 1226, - 1231, 1231, 1235, 1234, 1230, 1233, 1236, 1228, 1234, 1237, - 1227, 1229, 1239, 1233, 1237, 1237, 1235, 1238, 1232, 1240, - 1240, 1241, 1238, 1238, 1242, 1236, 1243, 1245, 1244, 1246, - 1247, 1248, 1239, 1244, 1249, 1243, 1250, 1248, 1251, 1249, - 1241, 1252, 1255, 1242, 1251, 1253, 1245, 1254, 1247, 1246, - 1256, 1253, 1257, 1254, 1258, 1259, 1260, 1261, 1263, 1263, - 1252, 1255, 1250, 1264, 1262, 1265, 1264, 1266, 1266, 1256, - 1260, 1257, 1268, 1258, 1259, 1267, 1268, 1265, 1261, 1262, - - 1267, 1269, 1270, 1271, 1272, 1275, 1272, 1274, 1276, 1277, - 1272, 1270, 1274, 0, 1269, 1283, 1271, 1278, 1278, 1279, - 1275, 1280, 1284, 1272, 1279, 1277, 1280, 1281, 1276, 1282, - 1285, 1281, 1286, 1282, 1289, 1283, 1287, 1287, 1286, 1291, - 1284, 1292, 1293, 1293, 1295, 1294, 1292, 1297, 1297, 1301, - 1285, 1294, 1289, 1299, 1300, 1300, 1299, 1302, 1304, 1305, - 1291, 1304, 1306, 1308, 1295, 1301, 1307, 1307, 1309, 1310, - 1311, 1306, 1312, 1302, 1314, 1311, 1313, 1313, 1308, 1305, - 1315, 1316, 1317, 1317, 1318, 1319, 1312, 1321, 1310, 1309, - 1324, 1320, 1314, 1322, 1322, 1315, 1320, 1323, 1318, 1325, - - 1325, 1323, 1321, 1319, 1326, 1327, 1316, 1328, 1329, 1330, - 1324, 1328, 1332, 1332, 1330, 1333, 1327, 1334, 1335, 1337, - 1336, 1338, 1338, 1339, 0, 1340, 1326, 1329, 1339, 1341, - 1342, 1334, 1344, 1333, 1336, 1343, 1348, 1335, 1335, 1342, - 1343, 1345, 1346, 1345, 1337, 1340, 1351, 1346, 1347, 1341, - 1353, 1349, 1344, 1357, 1347, 1354, 1348, 1349, 1352, 1352, - 1351, 1354, 1356, 1358, 1358, 1359, 1359, 1356, 1360, 1353, - 1361, 1362, 1363, 1364, 1364, 1363, 1366, 1357, 1365, 1368, - 1372, 1367, 1360, 1370, 1367, 1368, 1362, 1367, 1361, 1369, - 1365, 0, 1370, 1371, 1369, 1374, 1366, 1373, 1371, 1367, - - 1373, 1374, 1375, 1376, 1376, 1372, 1378, 1375, 1377, 1377, - 1379, 1380, 1378, 1381, 1382, 1379, 1383, 1384, 1387, 1385, - 1384, 1386, 1388, 1387, 1380, 1385, 1389, 1386, 1388, 1390, - 1392, 1381, 1393, 1382, 1390, 1392, 1383, 1391, 1391, 1394, - 1395, 1396, 1397, 1401, 1402, 1398, 1400, 1404, 1399, 1389, - 1393, 1403, 1400, 1406, 1406, 1396, 1397, 1398, 1407, 1394, - 1395, 1399, 1408, 1401, 1402, 1403, 1410, 1408, 1404, 1409, - 1409, 1411, 1412, 1413, 1414, 1415, 1422, 1416, 1407, 1418, - 1417, 1410, 1420, 1414, 1416, 1411, 1424, 1424, 1427, 1417, - 1415, 1413, 1417, 1425, 1425, 1418, 1412, 1420, 1426, 1430, - - 1423, 1422, 1420, 1423, 1428, 1431, 1427, 1428, 1429, 1429, - 1426, 1432, 1430, 1433, 1434, 1435, 1432, 1436, 1433, 1437, - 1438, 1439, 1440, 1445, 1431, 1443, 1436, 1444, 1440, 1438, - 1439, 1435, 1438, 1434, 1441, 1441, 1442, 1446, 1437, 1447, - 1444, 1445, 1448, 1442, 1450, 1443, 1451, 1452, 1452, 1453, - 1454, 1446, 1455, 1458, 1448, 1447, 1459, 1455, 1457, 1454, - 1456, 1456, 1460, 1465, 1451, 1453, 0, 1457, 1461, 1450, - 1457, 1458, 1463, 1461, 1461, 1456, 1464, 1459, 1466, 1466, - 1460, 1465, 1464, 1467, 1472, 1468, 1463, 1469, 1470, 1467, - 1468, 1473, 1474, 1469, 1470, 1475, 1477, 1476, 1474, 1479, - - 1476, 1481, 1477, 1482, 1472, 1473, 1476, 1479, 1475, 1483, - 1484, 1485, 1486, 1487, 1488, 1489, 1489, 1483, 1492, 1484, - 1481, 1493, 1482, 1490, 1485, 1486, 1491, 1487, 1488, 1490, - 1494, 1492, 1491, 1495, 1496, 1498, 1497, 1489, 1499, 1503, - 1500, 1493, 1497, 1502, 1502, 1504, 1505, 1496, 1494, 1504, - 1506, 1505, 1495, 1508, 1499, 1506, 1507, 1498, 1500, 1503, - 1509, 1507, 1508, 1511, 1512, 1512, 1513, 1514, 1515, 1516, - 1516, 1521, 1517, 1518, 1522, 1523, 1519, 1520, 1511, 1514, - 1518, 1523, 1525, 1509, 1524, 1513, 1517, 1515, 1519, 1520, - 1521, 1526, 1527, 1527, 1522, 1528, 1524, 1526, 1528, 1531, - - 1525, 1529, 1529, 1532, 1531, 1533, 1534, 1534, 1535, 1538, - 1539, 1533, 1532, 1536, 1537, 1536, 1540, 1537, 1541, 1542, - 1535, 1543, 1545, 1544, 1542, 1548, 1546, 1552, 1549, 1538, - 1543, 1546, 1539, 1547, 1540, 1544, 1541, 1545, 1550, 1550, - 1551, 1553, 1547, 1549, 1555, 1548, 1551, 1554, 1552, 1556, - 1561, 1556, 1557, 1558, 1558, 1547, 1559, 1559, 1560, 1560, - 1553, 1562, 1562, 1554, 1555, 1564, 1557, 1565, 1557, 1572, - 1561, 1563, 1563, 1566, 1566, 1567, 1568, 1569, 1571, 1567, - 1569, 1574, 1568, 1573, 1571, 1579, 1564, 1572, 1565, 1573, - 1575, 1576, 1576, 1575, 1577, 1577, 1578, 1579, 1579, 1579, - - 1580, 1581, 1578, 1582, 1579, 1583, 1574, 1585, 1586, 1582, - 1591, 1592, 1585, 1585, 1587, 1588, 1587, 1589, 1590, 1591, - 1580, 1581, 1586, 1593, 1590, 1583, 1588, 1594, 1594, 1595, - 1597, 1592, 1589, 1596, 1596, 1598, 1599, 1599, 1600, 1600, - 1601, 1604, 1604, 1605, 1593, 1606, 1609, 1608, 1611, 1611, - 1597, 1612, 1610, 1616, 1606, 1595, 1608, 1598, 1610, 1613, - 1601, 1615, 1614, 1617, 1617, 1618, 1619, 1609, 1605, 1614, - 1615, 1621, 1612, 1622, 1613, 1623, 1624, 1621, 1622, 1616, - 1625, 1623, 1619, 1626, 1627, 1628, 1628, 1625, 1629, 1626, - 1627, 1618, 1630, 1629, 1631, 1633, 1624, 1632, 1636, 1634, - - 1635, 1630, 1634, 1637, 1637, 1638, 1639, 1633, 1640, 1641, - 1643, 1638, 1644, 1641, 1631, 1647, 1632, 1645, 1635, 1651, - 1651, 1648, 1649, 1640, 1636, 1648, 1639, 1650, 1649, 1641, - 1643, 1644, 1645, 1652, 1647, 1653, 1650, 1652, 1654, 1654, - 1655, 1656, 1658, 1657, 1659, 1660, 1653, 1658, 1661, 1664, - 1664, 1653, 1662, 1663, 1661, 1656, 1665, 1665, 1663, 1666, - 1668, 1655, 1657, 1666, 1659, 1660, 1669, 1662, 1670, 1668, - 1671, 1671, 1672, 1672, 1673, 1674, 1676, 1669, 1675, 1673, - 1673, 1674, 1669, 1678, 1675, 1677, 1679, 1681, 1670, 1682, - 1677, 1683, 1679, 1682, 1684, 1678, 1686, 1688, 1685, 1681, - - 1687, 1690, 1676, 1683, 1685, 1691, 1687, 1692, 1694, 1688, - 1698, 1694, 1692, 1690, 1695, 1695, 1696, 1696, 1686, 1684, - 1697, 1697, 1699, 1700, 1691, 1703, 1701, 1702, 1699, 1700, - 1698, 1701, 1705, 1702, 1703, 1707, 1708, 1705, 1707, 1709, - 1709, 1711, 1712, 1715, 1713, 1714, 1714, 1719, 1708, 1713, - 1716, 1717, 1715, 1711, 1712, 1716, 1717, 1718, 1718, 1720, - 1721, 1722, 1723, 1726, 1724, 1725, 1723, 1719, 1720, 1724, - 1729, 1725, 1728, 1728, 1730, 1731, 1731, 1726, 1721, 1733, - 1722, 1732, 1734, 1730, 1728, 1736, 1741, 1735, 1729, 1741, - 1732, 1733, 1735, 1739, 1739, 1742, 1743, 0, 1736, 1745, - - 1747, 1746, 1748, 1734, 1749, 1749, 1747, 1750, 1755, 1750, - 1752, 1742, 1743, 1754, 1745, 1746, 1751, 1751, 1752, 1748, - 1754, 1756, 1756, 1757, 1758, 1759, 1760, 1761, 1755, 1762, - 1764, 1763, 1757, 1766, 1769, 1767, 1764, 1759, 1760, 1761, - 1768, 1768, 1770, 1773, 0, 1758, 1763, 1767, 1771, 1764, - 1777, 1771, 1769, 1766, 1772, 1762, 1775, 1781, 1776, 1772, - 1776, 1775, 1770, 1773, 1778, 1779, 1781, 1783, 1777, 1778, - 1784, 1785, 1779, 1786, 1787, 1786, 1789, 1790, 1789, 1784, - 1791, 1791, 1792, 1785, 1793, 1783, 1794, 1795, 1794, 1793, - 1796, 1790, 1795, 1787, 1797, 1796, 1798, 1799, 1800, 1803, - - 1801, 1805, 1802, 0, 1800, 1801, 1809, 1803, 1792, 1806, - 1807, 1807, 1797, 1810, 1798, 1802, 1811, 1799, 1808, 1808, - 1805, 1809, 1811, 1806, 1812, 1813, 1814, 1813, 1816, 1812, - 1815, 1815, 1819, 1810, 1814, 1817, 1817, 1818, 1818, 1820, - 1816, 1819, 1814, 1821, 1822, 1821, 1824, 1823, 1820, 1825, - 1827, 1820, 1823, 1823, 1828, 1824, 1831, 1832, 1829, 1828, - 1835, 1825, 1827, 1829, 1833, 1822, 1834, 1834, 1836, 1831, - 1838, 1837, 1843, 1833, 1839, 1844, 1841, 1832, 1835, 1842, - 1844, 1852, 1853, 1855, 1838, 1845, 1836, 1837, 1841, 1839, - 1845, 1842, 1843, 1846, 1849, 1851, 1854, 1853, 1856, 1860, - - 1849, 1851, 1846, 1858, 1852, 1857, 1857, 1856, 1855, 1859, - 1859, 1861, 1858, 1849, 1854, 1861, 1862, 1863, 1860, 1864, - 1865, 1862, 1866, 1868, 1864, 1864, 1865, 1869, 1866, 1867, - 1863, 1868, 1867, 1872, 1872, 1873, 1873, 1874, 1875, 1875, - 1876, 1876, 1877, 1879, 1878, 0, 1874, 1869, 1880, 1879, - 1873, 1881, 1881, 1880, 1877, 1882, 1882, 1887, 1883, 1884, - 1886, 1873, 1878, 1883, 1886, 1884, 1888, 1890, 1891, 1893, - 1888, 1892, 1895, 1891, 1894, 1896, 1901, 1887, 1898, 1894, - 1897, 1897, 1898, 1899, 1893, 1902, 1903, 1912, 1900, 1906, - 1895, 1896, 1890, 1900, 1892, 1904, 1905, 1902, 1899, 1910, - - 1904, 1911, 1901, 1907, 1907, 1903, 1909, 1906, 1913, 1905, - 1912, 1914, 1915, 1916, 1909, 1917, 1919, 0, 1910, 1950, - 1911, 1920, 1920, 1921, 1922, 1916, 1921, 1923, 1950, 1924, - 1914, 1919, 1913, 1915, 1925, 1925, 1917, 1922, 1926, 1926, - 1928, 1923, 1924, 1927, 1927, 1929, 1930, 1930, 1931, 1932, - 1932, 1933, 1936, 1937, 1935, 1928, 1933, 1931, 1929, 1935, - 1931, 1941, 1938, 1939, 1939, 1940, 1940, 1942, 1942, 1943, - 1944, 1944, 1936, 1937, 1938, 1945, 1946, 1947, 1947, 1949, - 1941, 1946, 1948, 1948, 1951, 1952, 1954, 1943, 1955, 1955, - 1945, 1954, 1956, 1949, 1957, 1957, 1958, 1959, 1951, 1960, - - 1961, 1964, 1959, 1961, 1952, 1960, 1962, 1962, 1963, 1963, - 1965, 1956, 1966, 1969, 1958, 1967, 1967, 1970, 1974, 1971, - 1964, 1975, 1962, 1972, 1976, 1965, 1979, 1972, 1973, 1973, - 1981, 1966, 1982, 1969, 1971, 1986, 1975, 1974, 1980, 1976, - 1970, 1978, 1978, 1984, 1981, 1980, 1979, 1983, 1983, 1985, - 1988, 1985, 1984, 1991, 1989, 1986, 1990, 1992, 1982, 1989, - 1993, 1990, 1988, 1994, 1995, 1999, 1997, 1998, 1994, 2000, - 1992, 1997, 1998, 2001, 2003, 2000, 2002, 2005, 1991, 2003, - 1999, 1993, 2002, 2004, 2006, 2012, 2007, 2008, 2004, 2007, - 1995, 2009, 2010, 2017, 2001, 2011, 2008, 2006, 2019, 2012, - - 2009, 2010, 2005, 2013, 2011, 2014, 2015, 2019, 2023, 2013, - 2015, 2014, 2021, 2017, 2020, 2020, 2022, 2022, 2021, 2025, - 2026, 2027, 2027, 2028, 2029, 2022, 2032, 2031, 2023, 2033, - 2023, 2034, 2038, 2029, 2036, 2025, 2026, 2036, 2028, 2031, - 2037, 2039, 2032, 2034, 2033, 2037, 2040, 2040, 2041, 2041, - 2043, 2043, 2038, 2039, 2044, 2045, 2046, 2044, 2047, 2049, - 2045, 2053, 2046, 2051, 2047, 2048, 2048, 2050, 2050, 2052, - 2054, 2054, 2056, 2049, 2057, 2051, 2056, 2057, 2058, 2058, - 2053, 2059, 2060, 2052, 2061, 2062, 2059, 2063, 2063, 2062, - 2064, 2060, 2066, 2067, 2068, 2069, 2070, 2066, 2071, 2073, - - 2070, 2072, 2074, 2064, 2061, 2073, 2072, 2075, 2074, 2069, - 2077, 2078, 2080, 2067, 2068, 2079, 2078, 2081, 2071, 2081, - 2080, 2079, 2084, 2085, 2085, 2075, 2077, 2086, 2087, 2090, - 2086, 2088, 2088, 2090, 2091, 2092, 2084, 2093, 2093, 2094, - 2091, 2097, 2097, 2099, 2101, 2105, 2102, 2092, 2094, 2106, - 2105, 2107, 2108, 2114, 2087, 2117, 2107, 2108, 2101, 2109, - 2109, 2099, 2102, 2111, 2111, 2113, 2115, 2115, 2116, 2118, - 2120, 2113, 2124, 2114, 2118, 2106, 2121, 2117, 2122, 2122, - 2125, 2124, 2126, 2127, 2116, 2130, 2125, 2131, 2121, 2120, - 2129, 2129, 2133, 2133, 2134, 2134, 2135, 2136, 2127, 2138, - - 2126, 2135, 2136, 2139, 2130, 2131, 2137, 2140, 2137, 2141, - 2142, 2142, 2146, 2138, 2141, 2143, 2143, 2139, 2144, 2144, - 2145, 2145, 2147, 2148, 2146, 2149, 2149, 2140, 2148, 2150, - 2150, 2151, 2152, 2153, 2154, 2155, 2155, 2156, 2157, 2157, - 2147, 2158, 2158, 2151, 2152, 2161, 2159, 2160, 2162, 2163, - 2154, 2165, 2161, 2153, 2166, 2168, 2156, 2159, 2164, 2160, - 2162, 2167, 2167, 2164, 2168, 2169, 2170, 2171, 2172, 2163, - 2173, 2165, 2174, 2174, 2166, 2176, 2175, 2179, 2177, 2180, - 2171, 2181, 2183, 2184, 2173, 2175, 2170, 2231, 2184, 2231, - 2176, 2169, 2172, 2177, 2182, 2179, 2183, 2182, 2185, 2186, - - 2186, 2180, 2193, 2185, 2181, 2187, 2187, 2188, 2188, 2190, - 2190, 2192, 2192, 2194, 2195, 2197, 2198, 2199, 2200, 2201, - 2193, 2202, 2203, 2207, 2194, 2204, 2204, 2208, 2201, 2206, - 2206, 2209, 2209, 2195, 2198, 2197, 2208, 2211, 2200, 2199, - 2203, 2202, 2212, 2212, 2213, 2207, 2211, 2214, 2215, 2216, - 2217, 2218, 2220, 2226, 2219, 2215, 2221, 2221, 2222, 2222, - 2223, 2224, 2213, 2225, 2216, 2214, 2223, 2228, 2217, 2218, - 2219, 2220, 2226, 2229, 0, 2227, 2230, 2236, 2225, 2224, - 2227, 2230, 2232, 2232, 2233, 2238, 2233, 2228, 2234, 2234, - 2239, 2240, 2241, 2229, 2238, 2242, 2236, 2243, 2248, 2244, - - 2242, 2247, 2249, 2240, 2251, 2249, 2250, 2250, 2252, 2239, - 2253, 2253, 2241, 2256, 2258, 2258, 2248, 2243, 2244, 2251, - 2254, 2247, 2259, 2257, 2254, 2261, 2252, 2257, 2256, 2262, - 2263, 2263, 2265, 2266, 2266, 2259, 2267, 2268, 2268, 2270, - 2277, 2269, 2271, 2271, 2265, 2261, 2269, 2276, 2276, 2262, - 2279, 2270, 2278, 2278, 2280, 2267, 2281, 2282, 2283, 2283, - 2284, 2294, 2277, 2279, 2291, 2281, 2282, 2280, 2286, 2286, - 2298, 2289, 2290, 2293, 2292, 2284, 2289, 2290, 2291, 2292, - 2294, 2293, 2295, 2299, 2296, 2298, 2301, 2306, 2299, 2300, - 2307, 2295, 2296, 2304, 2300, 2302, 2302, 2303, 2303, 2305, - - 2304, 2301, 2309, 2308, 2305, 2306, 2311, 2309, 2307, 2308, - 2310, 2310, 2312, 2313, 2313, 2314, 2314, 2312, 2317, 2318, - 2318, 2311, 2319, 2320, 2773, 2319, 2773, 2321, 2320, 2320, - 2322, 2317, 2321, 2323, 2324, 2322, 2325, 2326, 2324, 2323, - 2327, 2325, 2328, 2329, 2330, 2335, 2326, 2332, 2329, 2339, - 2328, 2333, 2332, 2337, 2333, 2327, 2330, 2335, 2337, 2338, - 2340, 2341, 2342, 2344, 2338, 2343, 2343, 2339, 2347, 2348, - 2341, 2342, 2344, 2340, 2349, 2350, 2350, 2351, 2355, 2352, - 2353, 2354, 2354, 2357, 2359, 2362, 2360, 2347, 2352, 2348, - 2360, 2361, 2361, 2349, 2363, 2353, 2351, 2355, 2357, 2364, - - 2363, 2365, 2366, 2366, 2359, 2364, 2367, 2365, 2368, 2371, - 2362, 2369, 2372, 2374, 2367, 2375, 2369, 2374, 2371, 2376, - 2378, 2378, 2379, 2379, 2386, 2372, 2380, 2380, 2389, 2375, - 2382, 2382, 2387, 2368, 2376, 2384, 2384, 2387, 2387, 2390, - 2390, 2392, 2392, 2395, 2386, 2393, 2393, 2394, 2389, 2397, - 2394, 2399, 2400, 2400, 2401, 2401, 2395, 2402, 2402, 2403, - 2404, 2404, 2405, 2406, 2407, 2414, 2408, 2397, 2409, 2409, - 2415, 2399, 2408, 2410, 2403, 2405, 2416, 2410, 2407, 2413, - 2417, 2406, 2419, 2418, 2413, 2413, 2417, 2420, 2414, 2418, - 2415, 2420, 2421, 2421, 2424, 2426, 2416, 2427, 2429, 2424, - - 2427, 2430, 2431, 2426, 2430, 2432, 2433, 2419, 2434, 2438, - 2432, 2435, 2436, 2436, 2437, 2440, 2439, 2438, 2449, 2431, - 2431, 2439, 2439, 2429, 2433, 2435, 2441, 2441, 2434, 2442, - 2442, 2443, 2443, 2437, 2440, 2444, 2444, 2445, 2445, 2446, - 2447, 2448, 2450, 2451, 2449, 2447, 2452, 2454, 2454, 2455, - 2456, 2450, 2455, 2458, 2458, 2446, 2468, 2459, 2460, 2460, - 2461, 2448, 2464, 2451, 2459, 2461, 2452, 2465, 2456, 2463, - 2463, 2464, 2466, 2473, 2468, 2472, 2465, 2469, 2469, 2470, - 2470, 2466, 2471, 2475, 2472, 2474, 2471, 2482, 2473, 2476, - 2474, 2474, 2481, 2481, 2484, 2485, 2475, 2488, 2476, 2489, - - 2490, 2493, 2495, 2484, 2491, 2482, 2497, 2485, 2489, 2498, - 2491, 2497, 2500, 2493, 2498, 2499, 2499, 2505, 2505, 2502, - 2490, 2500, 2488, 2495, 2502, 2503, 2503, 2506, 2506, 2503, - 2507, 2507, 2508, 2509, 2511, 2510, 2513, 2517, 2514, 2511, - 2515, 2508, 2513, 2514, 2518, 2515, 2516, 2516, 2520, 2522, - 2525, 2519, 2521, 2509, 2510, 2517, 2519, 2526, 2521, 2523, - 2523, 2527, 2529, 2529, 2531, 2518, 2520, 2532, 2535, 2525, - 2534, 2533, 2526, 2536, 2522, 2533, 2539, 2531, 2537, 2534, - 2532, 2527, 2538, 2550, 2535, 2541, 2537, 2538, 2540, 2540, - 2543, 2543, 2536, 2544, 2544, 2546, 2548, 2548, 2551, 2550, - - 2553, 2552, 2539, 2557, 2541, 2553, 2556, 2556, 2558, 2559, - 2561, 2561, 2562, 2564, 2551, 2565, 2546, 2552, 2564, 2566, - 2566, 2567, 2567, 2557, 2568, 2570, 2562, 2572, 2559, 2569, - 2569, 2558, 2571, 2573, 2574, 2576, 2570, 2565, 2575, 2573, - 2584, 2571, 2577, 2577, 2568, 2578, 2583, 2572, 2578, 2569, - 2575, 2579, 2579, 2574, 2587, 2576, 2585, 2587, 2583, 2588, - 2584, 2589, 2585, 2586, 2586, 2588, 2591, 2592, 2593, 2594, - 2599, 2591, 2592, 2595, 2600, 2594, 2596, 2596, 2638, 2589, - 2598, 2598, 2605, 2600, 2602, 2602, 2638, 2593, 0, 2599, - 2595, 2595, 2603, 2603, 2604, 2606, 2605, 2607, 2607, 2604, - - 2606, 2608, 2608, 2609, 2609, 2610, 2612, 2612, 2615, 2617, - 2610, 2618, 2619, 2620, 2620, 2622, 2622, 2624, 2623, 2625, - 2626, 2626, 2627, 0, 2628, 2631, 2631, 2615, 2625, 2628, - 2635, 2617, 2623, 2618, 2619, 2633, 2633, 2624, 2634, 2636, - 2637, 2627, 2642, 2634, 2635, 2636, 2639, 2639, 2640, 2643, - 2644, 2645, 2637, 2640, 2646, 2644, 2648, 2649, 2650, 2651, - 2646, 2653, 2642, 2645, 2648, 2652, 2655, 2654, 2656, 2643, - 2659, 2663, 2663, 2656, 2689, 2660, 2649, 2653, 2650, 2651, - 2664, 2664, 2665, 2652, 2654, 2654, 2665, 2655, 2660, 2689, - 2659, 2669, 2669, 2671, 2671, 2672, 2672, 2675, 2672, 2673, - - 2673, 2675, 2673, 2674, 2674, 2678, 2674, 2677, 2677, 2681, - 2679, 2682, 2682, 2685, 2681, 2686, 2687, 2688, 2691, 2692, - 2687, 2700, 2686, 2678, 2679, 2696, 2688, 2700, 2692, 2693, - 2693, 2694, 2694, 2695, 2695, 2698, 2691, 2697, 2685, 2701, - 2696, 2702, 2697, 2699, 2698, 2703, 2704, 2698, 2699, 2699, - 2705, 2704, 2706, 2707, 2707, 2705, 2702, 2708, 2711, 2711, - 2714, 2714, 2708, 2724, 2701, 2726, 2703, 2715, 2715, 2716, - 2716, 2706, 2717, 2717, 2718, 2718, 2719, 2719, 2720, 2720, - 2722, 2723, 2723, 2724, 2726, 2727, 2727, 2728, 2729, 2722, - 2732, 2730, 2731, 2731, 2733, 2733, 2736, 2737, 2738, 2740, - - 2737, 2729, 2728, 2730, 2743, 2732, 2739, 2739, 2742, 2744, - 2743, 2742, 2746, 2745, 2736, 2747, 2748, 2740, 2745, 2750, - 2761, 2761, 2759, 2744, 2738, 2759, 2762, 2762, 2764, 2765, - 2767, 2746, 2748, 2747, 2750, 2766, 2770, 2771, 2765, 2766, - 2768, 2772, 2774, 2775, 2775, 2776, 2772, 2777, 2771, 2778, - 2767, 2764, 2779, 2780, 2768, 2781, 2782, 2774, 2776, 2770, - 2783, 2786, 2787, 2788, 2788, 2789, 2777, 2778, 2779, 2795, - 2781, 2790, 2790, 2794, 2789, 2786, 2796, 2782, 2780, 2796, - 2783, 2799, 2787, 2791, 2791, 2792, 2792, 2793, 2793, 2795, - 2797, 2798, 2794, 2800, 2801, 2797, 2798, 2802, 2803, 2808, - - 2801, 2804, 2804, 2805, 2806, 2806, 2799, 2810, 2800, 2813, - 2813, 2802, 2814, 2814, 2808, 2815, 2816, 2819, 2803, 2820, - 2817, 2818, 2805, 2815, 2821, 2810, 2817, 2818, 2822, 2822, - 2824, 2819, 2820, 2826, 2827, 2816, 2829, 2830, 2827, 2831, - 2832, 2833, 2830, 2821, 2834, 2839, 2835, 2826, 2838, 2842, - 2824, 2835, 2836, 2832, 2833, 2842, 2829, 2836, 2831, 2840, - 2840, 2847, 2841, 2834, 2839, 2844, 2838, 2841, 2843, 2843, - 2844, 2845, 2846, 2848, 2850, 2850, 2845, 2846, 2849, 2848, - 2847, 2852, 2853, 2849, 2854, 2852, 2855, 2856, 2857, 2858, - 2859, 2854, 2860, 2860, 2857, 2862, 2862, 2864, 2863, 2865, - - 2866, 2853, 2864, 2859, 2867, 2855, 2856, 2863, 2858, 2869, - 2863, 2868, 2868, 2870, 2869, 2872, 2874, 2867, 2865, 2866, - 2873, 2873, 2875, 2875, 2876, 2876, 2870, 2877, 2879, 2878, - 2880, 2880, 2877, 2881, 2886, 2874, 2878, 2882, 2881, 2882, - 2888, 2872, 2883, 2883, 2884, 2885, 2891, 2879, 2895, 2887, - 2896, 2884, 2885, 2886, 2887, 2890, 2890, 2893, 2894, 2888, - 2897, 2897, 2893, 2894, 2900, 2891, 2901, 2895, 0, 2896, - 2899, 2899, 2902, 2902, 2903, 2903, 2914, 2904, 2906, 2906, - 2907, 2907, 2908, 2900, 2904, 2901, 2910, 2913, 2915, 2908, - 0, 2910, 2913, 2916, 2916, 2914, 2917, 2917, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 2915, 2921, 2921, - 2921, 2921, 2921, 2921, 2921, 2922, 2922, 2922, 2922, 2922, - 2922, 2922, 2923, 2923, 2923, 2923, 2923, 2923, 2923, 2924, - 2924, 2924, 2924, 2924, 2924, 2924, 2925, 2925, 2925, 2925, - 2925, 2925, 2925, 2927, 2927, 0, 2927, 2927, 2927, 2927, - 2928, 2928, 0, 0, 0, 2928, 2928, 2929, 2929, 0, - 0, 2929, 0, 2929, 2930, 0, 0, 0, 0, 0, - 2930, 2931, 2931, 0, 0, 0, 2931, 2931, 2932, 0, - 0, 0, 0, 0, 2932, 2933, 2933, 0, 2933, 2933, - 2933, 2933, 2934, 2934, 0, 2934, 2934, 2934, 2934, 2920, - - 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, - 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, - 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, - 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920 + 5, 3, 6, 24, 4, 24, 24, 5, 24, 6, + 7, 7, 7, 7, 24, 7, 8, 8, 8, 8, + 33, 8, 7, 9, 9, 9, 26, 26, 8, 10, - 10, 10, 19, 29, 9, 33, 19, 29, 3515, 35, ++ 10, 10, 19, 29, 9, 33, 19, 29, 3531, 35, + 10, 11, 11, 11, 11, 11, 11, 13, 13, 13, + + 13, 34, 13, 11, 35, 99, 34, 29, 38, 13, + 51, 51, 11, 12, 12, 12, 12, 12, 12, 14, + 14, 14, 14, 99, 14, 12, 15, 15, 15, 38, + 23, 14, 23, 23, 12, 23, 46, 15, 16, 16, - 16, 23, 23, 25, 27, 27, 25, 25, 2857, 16, ++ 16, 23, 23, 25, 27, 27, 25, 25, 2871, 16, + 25, 46, 27, 30, 30, 25, 27, 56, 40, 27, + 56, 73, 31, 31, 25, 28, 67, 67, 30, 32, + 28, 31, 40, 32, 28, 73, 32, 28, 92, 28, - 28, 92, 31, 32, 1129, 32, 36, 36, 37, 37, ++ 28, 92, 31, 32, 1134, 32, 36, 36, 37, 37, + 28, 45, 45, 37, 97, 36, 45, 97, 41, 41, + + 45, 36, 87, 41, 93, 36, 87, 37, 93, 37, + 39, 39, 42, 41, 41, 39, 41, 42, 96, 39, + 42, 43, 43, 105, 43, 39, 44, 42, 39, 101, + 44, 42, 42, 43, 94, 39, 84, 84, 96, 43, + 44, 94, 105, 101, 44, 44, 62, 192, 62, 62, + 70, 62, 70, 70, 72, 70, 72, 72, 79, 72, + 79, 79, 70, 79, 86, 95, 86, 86, 89, 86, + 89, 89, 192, 89, 100, 86, 102, 95, 98, 89, + 89, 98, 102, 100, 103, 104, 106, 107, 102, 113, + 102, 109, 106, 113, 98, 108, 111, 140, 114, 112, + + 177, 107, 103, 103, 110, 106, 116, 104, 115, 108, + 119, 109, 140, 115, 111, 110, 110, 112, 114, 117, + 116, 118, 117, 110, 122, 117, 120, 118, 123, 119, + 121, 120, 124, 121, 125, 130, 124, 121, 117, 117, + 127, 125, 123, 122, 126, 128, 118, 127, 122, 129, + 132, 120, 131, 121, 128, 130, 131, 126, 134, 133, + 135, 136, 129, 133, 138, 135, 137, 137, 132, 135, + 139, 141, 142, 144, 139, 256, 134, 256, 146, 150, + 151, 136, 143, 139, 138, 143, 144, 145, 149, 139, + 146, 142, 148, 145, 147, 147, 143, 141, 150, 148, + + 143, 151, 152, 153, 149, 153, 155, 154, 156, 157, + 148, 155, 147, 226, 153, 147, 158, 159, 152, 154, + 156, 158, 161, 161, 179, 163, 153, 157, 163, 179, + 165, 159, 165, 165, 226, 165, 168, 168, 170, 181, + 170, 170, 171, 170, 171, 171, 173, 171, 175, 173, + 175, 175, 180, 175, 171, 178, 178, 181, 180, 182, + 183, 184, 185, 186, 187, 189, 188, 180, 183, 190, + 185, 188, 184, 212, 182, 183, 193, 191, 190, 187, + 176, 193, 186, 191, 191, 189, 194, 194, 195, 197, + 196, 212, 196, 197, 195, 196, 198, 198, 197, 199, + + 200, 201, 202, 197, 203, 204, 201, 202, 205, 197, + 197, 199, 196, 206, 205, 207, 203, 206, 208, 200, + 207, 209, 213, 210, 211, 204, 214, 213, 216, 217, - 556, 214, 218, 216, 208, 209, 211, 205, 210, 211, ++ 558, 214, 218, 216, 208, 209, 211, 205, 210, 211, + 215, 215, 220, 220, 215, 219, 215, 221, 218, 217, - 222, 219, 223, 221, 556, 224, 222, 227, 215, 221, ++ 222, 219, 223, 221, 558, 224, 222, 227, 215, 221, + 215, 224, 225, 227, 228, 229, 230, 231, 225, 228, - 230, 229, 223, 231, 232, 234, 233, 225, 235, 236, - 237, 232, 233, 238, 235, 239, 237, 240, 234, 241, - 245, 243, 242, 239, 241, 244, 238, 246, 248, 236, - - 240, 242, 246, 246, 247, 238, 243, 250, 249, 247, - 245, 244, 249, 251, 252, 253, 248, 254, 255, 251, - 257, 253, 259, 255, 258, 261, 263, 264, 259, 250, - 260, 258, 252, 252, 262, 270, 260, 254, 263, 257, - 262, 264, 265, 265, 261, 266, 266, 267, 268, 269, - 271, 269, 272, 267, 268, 271, 273, 274, 270, 275, - 277, 276, 288, 278, 272, 274, 276, 279, 269, 278, - 283, 267, 280, 279, 282, 273, 281, 280, 284, 275, - 282, 281, 285, 277, 286, 283, 287, 288, 290, 289, - 293, 290, 284, 293, 287, 289, 294, 291, 286, 291, - - 285, 292, 292, 295, 295, 296, 296, 297, 299, 298, - 301, 299, 300, 302, 294, 303, 300, 304, 174, 301, - 305, 303, 302, 297, 298, 306, 305, 306, 307, 308, - 314, 304, 310, 308, 307, 309, 309, 310, 311, 312, - 313, 315, 316, 319, 311, 312, 317, 317, 314, 318, - 308, 321, 318, 320, 322, 316, 324, 320, 323, 323, - 313, 319, 315, 325, 312, 326, 325, 327, 328, 329, - 321, 328, 322, 327, 324, 333, 331, 326, 336, 332, - 333, 329, 337, 325, 330, 331, 335, 334, 169, 335, - 334, 336, 334, 330, 337, 340, 330, 332, 340, 341, - - 341, 330, 330, 330, 330, 334, 339, 338, 334, 338, - 338, 339, 339, 342, 343, 345, 346, 344, 347, 347, - 354, 348, 349, 349, 345, 346, 348, 350, 350, 343, - 342, 351, 352, 342, 344, 344, 353, 352, 355, 354, - 356, 357, 358, 358, 360, 358, 351, 357, 353, 369, - 369, 361, 363, 362, 358, 356, 361, 363, 355, 362, - 364, 366, 375, 365, 360, 364, 365, 367, 365, 368, - 367, 364, 388, 370, 410, 366, 371, 371, 368, 370, - 372, 377, 375, 367, 376, 372, 367, 376, 367, 373, - 373, 378, 373, 388, 379, 382, 377, 381, 373, 410, - - 381, 167, 373, 384, 385, 376, 378, 373, 379, 382, - 373, 374, 374, 385, 374, 386, 381, 391, 384, 394, - 386, 386, 389, 387, 390, 392, 391, 374, 396, 387, - 374, 166, 374, 395, 374, 383, 387, 383, 383, 390, - 393, 389, 396, 399, 392, 394, 393, 383, 383, 383, - 383, 383, 397, 395, 383, 398, 400, 401, 397, 402, - 398, 404, 397, 399, 402, 403, 406, 404, 405, 405, - 407, 408, 401, 409, 411, 414, 400, 415, 398, 409, - 403, 416, 407, 412, 417, 408, 406, 418, 412, 418, - 411, 413, 413, 415, 413, 414, 420, 416, 417, 419, - - 420, 419, 419, 421, 422, 422, 423, 421, 424, 426, - 425, 430, 428, 432, 427, 431, 164, 430, 432, 419, - 428, 428, 421, 424, 431, 423, 425, 426, 427, 433, - 434, 435, 428, 433, 428, 429, 436, 435, 437, 434, - 429, 438, 440, 439, 437, 438, 439, 440, 429, 429, - 441, 443, 429, 429, 442, 442, 429, 436, 444, 444, - 445, 446, 447, 447, 443, 445, 448, 449, 450, 451, - 441, 449, 448, 452, 446, 453, 454, 454, 452, 455, - 453, 456, 457, 450, 458, 454, 459, 460, 465, 459, - 451, 455, 460, 461, 462, 467, 458, 461, 463, 463, - - 457, 456, 464, 466, 466, 471, 462, 464, 472, 465, - 469, 469, 473, 474, 475, 476, 472, 467, 477, 475, - 479, 473, 481, 480, 486, 482, 471, 483, 484, 486, - 477, 487, 490, 483, 474, 476, 488, 484, 479, 482, - 479, 480, 481, 485, 488, 487, 490, 488, 489, 485, - 491, 489, 492, 493, 494, 495, 496, 494, 492, 497, - 498, 495, 499, 500, 497, 491, 501, 500, 505, 502, - 496, 501, 503, 493, 504, 506, 509, 503, 511, 495, - 510, 512, 498, 499, 502, 512, 515, 505, 506, 513, - 504, 507, 507, 511, 516, 514, 509, 507, 516, 507, - - 514, 510, 515, 518, 517, 507, 520, 507, 513, 517, - 507, 507, 521, 517, 519, 523, 524, 507, 518, 519, - 522, 521, 520, 526, 525, 520, 522, 525, 527, 529, - 523, 522, 524, 528, 528, 530, 530, 531, 532, 535, - 533, 534, 534, 536, 537, 539, 526, 538, 527, 537, - 532, 540, 531, 541, 529, 533, 538, 544, 535, 541, - 543, 544, 546, 545, 539, 536, 540, 545, 546, 543, - 547, 548, 549, 550, 551, 552, 553, 554, 566, 555, - 553, 555, 547, 566, 557, 560, 548, 550, 562, 551, - 554, 549, 557, 552, 558, 558, 559, 560, 561, 564, - - 562, 565, 559, 563, 561, 567, 563, 569, 567, 568, - 162, 571, 581, 564, 570, 581, 565, 579, 568, 570, - 570, 572, 572, 569, 571, 568, 573, 573, 568, 574, - 575, 575, 576, 576, 577, 574, 578, 580, 579, 582, - 577, 578, 578, 583, 582, 584, 586, 585, 587, 580, - 585, 586, 589, 584, 588, 590, 589, 591, 593, 592, - 594, 590, 583, 592, 595, 594, 596, 596, 597, 598, - 599, 587, 600, 588, 602, 599, 593, 591, 595, 601, - 603, 607, 604, 597, 605, 606, 603, 604, 606, 609, - 598, 600, 610, 606, 602, 601, 606, 606, 605, 607, - - 608, 608, 613, 614, 611, 612, 616, 609, 610, 611, - 612, 617, 616, 623, 618, 619, 613, 618, 614, 619, - 617, 620, 621, 622, 624, 621, 620, 625, 622, 623, - 626, 627, 628, 632, 625, 630, 627, 629, 629, 631, - 633, 619, 624, 626, 630, 635, 634, 636, 638, 160, - 642, 638, 628, 636, 632, 634, 633, 635, 631, 637, - 639, 639, 643, 639, 640, 637, 641, 640, 642, 644, - 645, 641, 646, 648, 644, 647, 643, 650, 646, 648, - 647, 649, 651, 653, 649, 652, 654, 651, 655, 645, - 652, 652, 656, 655, 657, 658, 653, 660, 656, 654, - - 659, 669, 650, 663, 658, 659, 663, 655, 655, 661, - 661, 662, 665, 657, 664, 668, 668, 660, 662, 671, - 664, 663, 666, 667, 665, 673, 669, 666, 667, 667, - 670, 672, 670, 672, 674, 675, 676, 666, 671, 677, - 678, 679, 680, 673, 85, 679, 678, 681, 682, 683, - 684, 680, 674, 675, 685, 676, 686, 685, 687, 677, - 688, 689, 681, 682, 687, 690, 685, 683, 691, 684, - 692, 686, 694, 693, 696, 689, 694, 690, 695, 697, - 688, 698, 699, 700, 701, 702, 702, 691, 700, 703, - 696, 692, 693, 703, 704, 705, 695, 697, 701, 698, - - 698, 699, 706, 707, 708, 709, 710, 711, 704, 708, - 713, 712, 714, 706, 705, 713, 715, 707, 712, 714, - 711, 709, 716, 717, 718, 710, 719, 716, 717, 720, - 721, 723, 722, 719, 726, 728, 732, 726, 720, 724, - 715, 722, 718, 723, 721, 724, 725, 729, 727, 728, - 730, 725, 727, 731, 733, 733, 729, 732, 736, 734, - 734, 735, 735, 736, 737, 730, 739, 731, 734, 740, - 741, 743, 742, 737, 744, 740, 742, 745, 746, 747, - 749, 748, 750, 743, 746, 739, 751, 747, 748, 754, - 741, 760, 757, 767, 767, 745, 761, 763, 749, 744, - - 760, 80, 761, 763, 754, 764, 751, 750, 752, 757, - 752, 769, 766, 752, 764, 765, 766, 752, 768, 768, - 752, 770, 769, 771, 772, 778, 773, 752, 752, 776, - 752, 765, 773, 775, 776, 777, 779, 771, 780, 770, - 779, 789, 783, 778, 772, 774, 774, 774, 789, 774, - 781, 786, 774, 775, 781, 782, 777, 774, 785, 852, - 782, 783, 780, 774, 774, 787, 784, 791, 787, 788, - 781, 784, 852, 785, 788, 788, 786, 790, 790, 792, - 793, 793, 791, 794, 792, 796, 795, 799, 794, 795, - 796, 797, 797, 798, 800, 798, 801, 802, 804, 799, - - 801, 803, 805, 805, 806, 809, 804, 807, 808, 808, - 810, 811, 812, 800, 814, 814, 819, 802, 812, 806, - 803, 807, 810, 809, 813, 815, 75, 817, 818, 813, - 815, 815, 817, 811, 818, 819, 820, 823, 821, 822, - 823, 824, 820, 821, 825, 822, 828, 824, 826, 826, - 827, 827, 825, 829, 828, 830, 831, 832, 833, 834, - 830, 835, 835, 831, 836, 838, 838, 840, 837, 844, - 842, 829, 843, 836, 833, 832, 837, 839, 834, 842, - 845, 843, 846, 839, 847, 845, 840, 847, 849, 848, - 850, 846, 851, 844, 848, 854, 854, 855, 853, 856, - - 857, 851, 849, 853, 853, 858, 859, 864, 860, 857, - 866, 860, 855, 867, 862, 850, 862, 865, 856, 860, - 863, 863, 865, 868, 859, 869, 870, 871, 864, 858, - 872, 866, 874, 867, 873, 875, 871, 881, 873, 876, - 877, 879, 880, 868, 878, 876, 870, 869, 884, 877, - 874, 881, 882, 872, 875, 883, 878, 879, 882, 885, - 887, 880, 884, 883, 885, 886, 886, 888, 889, 890, - 891, 892, 893, 894, 896, 895, 897, 889, 891, 887, - 896, 901, 897, 898, 899, 900, 905, 888, 906, 890, - 899, 892, 894, 908, 893, 895, 902, 898, 903, 900, - - 906, 901, 902, 904, 903, 905, 907, 904, 906, 909, - 909, 907, 910, 911, 908, 913, 914, 912, 910, 911, - 912, 915, 916, 917, 917, 918, 919, 915, 930, 914, - 922, 919, 920, 913, 921, 920, 925, 923, 928, 921, - 921, 923, 916, 918, 926, 922, 924, 924, 920, 927, - 920, 931, 930, 933, 927, 934, 935, 928, 925, 937, - 937, 939, 1337, 938, 926, 931, 933, 938, 940, 940, - 941, 943, 1337, 948, 944, 934, 939, 935, 936, 946, - 942, 936, 948, 936, 942, 945, 943, 936, 944, 936, - 945, 947, 949, 946, 936, 941, 947, 947, 950, 936, - - 951, 953, 950, 952, 954, 955, 949, 956, 952, 954, - 957, 958, 960, 953, 950, 951, 959, 960, 952, 955, - 958, 961, 959, 962, 957, 963, 963, 961, 956, 962, - 964, 965, 966, 967, 970, 964, 971, 965, 968, 972, - 976, 971, 975, 973, 974, 974, 970, 975, 976, 979, - 977, 980, 967, 972, 966, 973, 968, 969, 969, 978, - 984, 982, 981, 969, 983, 969, 977, 982, 979, 983, - 980, 969, 984, 978, 985, 986, 969, 969, 981, 987, - 988, 989, 989, 969, 990, 991, 994, 993, 990, 994, - 995, 986, 985, 993, 996, 997, 998, 987, 988, 996, - - 1000, 999, 998, 1002, 1003, 991, 999, 1004, 997, 995, - 1005, 1006, 1002, 1003, 1007, 1009, 1005, 1008, 1010, 1000, - 1006, 1011, 1008, 1004, 1012, 1013, 1016, 1022, 1014, 74, - 1019, 1024, 1010, 1007, 1013, 1009, 1012, 1014, 1015, 1017, - 1021, 1011, 1025, 1016, 1015, 1017, 1019, 1022, 1023, 1026, - 1024, 1027, 1028, 1023, 1021, 1029, 1025, 1028, 1032, 1033, - 1029, 1034, 1034, 1032, 1035, 1036, 1027, 1026, 1033, 1037, - 1035, 1040, 1038, 1041, 1036, 1045, 1043, 1043, 1041, 1041, - 1043, 1046, 1047, 1044, 1037, 1038, 1044, 1040, 1048, 1045, - 1049, 1051, 1050, 1052, 1053, 1054, 1059, 1051, 1047, 1055, - - 1053, 1046, 1056, 1049, 1055, 1058, 1048, 1050, 1058, 1060, - 1054, 1062, 1063, 1052, 1060, 1061, 1056, 1059, 1064, 1065, - 1061, 1063, 1066, 1064, 1065, 1068, 1069, 1062, 1073, 1070, - 1071, 1068, 1072, 1072, 1066, 1070, 1071, 1073, 1074, 1077, - 1075, 1078, 1069, 1075, 1076, 1076, 1079, 1080, 1081, 1082, - 1080, 1101, 1083, 1084, 1101, 1082, 1074, 1077, 1083, 1084, - 1078, 1081, 1085, 1086, 1087, 1089, 1079, 1085, 1086, 1088, - 1087, 1089, 1091, 1092, 1088, 1093, 1094, 1091, 1095, 1096, - 1096, 1097, 1094, 1095, 1098, 1099, 1100, 1103, 1105, 1102, - 1097, 1092, 1102, 1098, 1104, 1093, 1106, 1107, 1103, 1104, - - 1110, 1108, 1113, 1099, 1109, 1100, 1105, 1108, 1106, 1111, - 1109, 1112, 1112, 1114, 1111, 1110, 1107, 1115, 1116, 1117, - 1118, 1113, 1119, 1117, 1120, 1121, 1123, 1114, 1128, 1115, - 1126, 1119, 1124, 1124, 1125, 1126, 1116, 1130, 1118, 1127, - 1131, 1132, 1125, 1120, 1127, 1123, 1136, 1133, 1128, 1134, - 1121, 1130, 1133, 1132, 1137, 1131, 1135, 1135, 1134, 1138, - 1137, 1139, 1140, 1147, 1142, 1138, 1136, 1140, 1141, 1142, - 1141, 1143, 1144, 1145, 1146, 1149, 1148, 1139, 1145, 1150, - 1152, 1152, 1147, 1148, 1154, 1143, 1144, 1153, 1155, 1146, - 1149, 1156, 1157, 1165, 1158, 68, 1160, 1156, 1150, 1158, - - 1160, 1153, 1154, 1155, 1161, 1161, 1162, 1165, 1158, 1164, - 1158, 1162, 1157, 1158, 1163, 1163, 1164, 1166, 1167, 1169, - 1166, 1168, 1170, 1171, 1172, 1173, 1174, 1170, 1169, 1176, - 1173, 1181, 1175, 1178, 1178, 63, 1172, 1167, 1184, 1168, - 1174, 1179, 1171, 1175, 1180, 1182, 1179, 1184, 1176, 1180, - 1182, 1181, 1183, 1185, 1186, 1187, 1183, 1189, 1188, 1190, - 1192, 1188, 1193, 1191, 1194, 1195, 1190, 1198, 1185, 1186, - 1188, 1195, 1189, 1196, 1187, 1191, 1199, 1200, 1197, 1192, - 1201, 1202, 1194, 1193, 1197, 1203, 1200, 1198, 1196, 1204, - 1205, 1206, 1207, 1208, 1211, 1201, 1199, 1203, 1207, 1210, - - 1202, 1214, 1212, 1213, 1215, 1210, 1206, 1216, 1204, 1211, - 1217, 1213, 1216, 1208, 1219, 1205, 1212, 1220, 1218, 1221, - 1215, 1214, 1217, 1218, 1218, 1222, 1222, 1224, 1225, 1229, - 1226, 1220, 1221, 1219, 1223, 1223, 1226, 1225, 1229, 1223, - 1224, 1228, 1223, 1223, 1227, 1227, 1228, 1223, 1230, 1234, - 1231, 1232, 1237, 1223, 1230, 1231, 1232, 1223, 1233, 1233, - 1235, 1235, 1236, 1238, 1240, 1236, 1241, 1236, 1239, 1243, - 1234, 1242, 1237, 1240, 1239, 1244, 1242, 1247, 1245, 1246, - 1249, 1238, 1247, 1243, 1245, 1246, 1241, 1248, 1251, 1249, - 1250, 1248, 1257, 1244, 1249, 1250, 1249, 1256, 1249, 1254, - - 1249, 1256, 1251, 1252, 1252, 1253, 1253, 1257, 1253, 1258, - 1254, 1259, 1260, 1261, 1262, 1264, 1263, 1260, 1260, 1265, - 1259, 1263, 1261, 1266, 1267, 1268, 1269, 1258, 1265, 1264, - 1270, 1270, 1269, 1271, 1272, 1273, 1262, 1274, 1275, 1268, - 1273, 1271, 1266, 1267, 1277, 1276, 1278, 1275, 1272, 1279, - 1281, 1274, 1276, 1287, 1279, 1280, 1280, 1282, 1282, 1283, - 1285, 1283, 1277, 1285, 1286, 1281, 1288, 1289, 1289, 1286, - 1290, 1278, 1287, 1291, 1291, 1288, 1292, 1292, 1293, 1294, - 1295, 1296, 1299, 1293, 1297, 1297, 1298, 1301, 1300, 1302, - 1290, 1300, 1303, 1306, 1304, 1302, 1305, 1303, 1305, 1299, - - 1294, 1295, 1296, 1304, 1309, 1308, 1298, 1301, 1308, 1310, - 1311, 1306, 1312, 1313, 1310, 1314, 1319, 1312, 1316, 1309, - 1314, 1313, 1315, 1316, 1311, 1315, 1317, 1317, 1318, 1320, - 1321, 1322, 1324, 1318, 1319, 1320, 1325, 1321, 1324, 1329, - 1326, 1327, 1325, 1328, 1322, 1326, 1327, 1330, 1329, 1328, - 1331, 1332, 1332, 1333, 1335, 1338, 1336, 1339, 1340, 1335, - 1347, 1331, 1341, 1342, 1348, 1343, 1330, 1349, 1341, 1342, - 1338, 1343, 1345, 1333, 1336, 1346, 1350, 1339, 1345, 1349, - 1347, 1340, 1351, 1353, 1348, 1352, 1352, 1354, 1355, 1346, - 1350, 1356, 1357, 1357, 1358, 1346, 1356, 1359, 1363, 1361, - - 1351, 58, 1359, 1353, 1362, 1364, 1355, 1365, 1366, 1362, - 1362, 1367, 1354, 1368, 1364, 1365, 1363, 1358, 1361, 1369, - 1370, 1371, 1366, 1371, 1369, 1372, 1367, 1369, 1368, 1370, - 1374, 1368, 1376, 1375, 1378, 1377, 1374, 1375, 1379, 1372, - 1377, 1377, 1380, 1376, 1381, 1382, 1384, 1383, 1386, 1381, - 1382, 1385, 1389, 1378, 1390, 1388, 1385, 1391, 1391, 1392, - 1380, 1393, 1394, 1392, 1379, 1383, 1384, 1395, 1386, 1388, - 1389, 1396, 1390, 1395, 1397, 1398, 57, 1399, 1400, 1393, - 1401, 1394, 1402, 1396, 1403, 1404, 1406, 1407, 1410, 1403, - 1397, 1399, 1404, 1400, 1398, 1401, 1408, 1405, 1409, 1409, - - 1411, 1402, 1405, 1410, 1406, 1408, 1412, 1414, 1407, 1411, - 1413, 1413, 1415, 1414, 1416, 1417, 1417, 1419, 1415, 1418, - 1418, 1420, 1421, 1419, 1422, 1423, 1412, 1424, 1416, 1422, - 1425, 1423, 1432, 1424, 1426, 1426, 1425, 1420, 1427, 1427, - 1429, 1429, 1430, 1421, 1431, 1433, 1430, 1434, 1435, 1436, - 1432, 1437, 1437, 1431, 1438, 1440, 1436, 1433, 1439, 1441, - 1440, 1434, 1442, 1435, 1443, 1445, 1439, 1446, 1446, 1443, - 1443, 1444, 1447, 1441, 1438, 1448, 1444, 1444, 1449, 1450, - 1451, 1442, 1452, 1453, 1450, 1445, 1454, 1449, 1455, 1456, - 1457, 1447, 1454, 1455, 1448, 1459, 1462, 1458, 1460, 1451, - - 1461, 1453, 1452, 1458, 1460, 1463, 1461, 1464, 1465, 1456, - 1467, 1466, 52, 1468, 1459, 1462, 1457, 1469, 1469, 1470, - 1471, 1472, 1470, 1473, 1463, 1466, 1464, 1465, 1468, 1474, - 1474, 1467, 1475, 1475, 1477, 1473, 1476, 1478, 1477, 1471, - 1472, 1476, 1479, 1480, 1483, 1485, 1481, 1486, 1481, 1484, - 1478, 1479, 1481, 1487, 1484, 1490, 1480, 1488, 1488, 1489, - 1485, 1490, 1483, 1491, 1489, 1481, 1492, 1486, 1493, 1487, - 1494, 1495, 1496, 1493, 1494, 1495, 1497, 1498, 1491, 1492, - 1499, 1500, 1501, 1501, 1503, 1505, 1498, 1500, 1506, 1507, - 1507, 1508, 1496, 1506, 1497, 1509, 1515, 1508, 1511, 1511, - - 1499, 1513, 1503, 1516, 1513, 1517, 1505, 1514, 1514, 1520, - 1519, 1521, 1515, 1519, 1522, 1509, 1523, 1524, 1524, 1516, - 1525, 1517, 1526, 1522, 1528, 1527, 1529, 1530, 1530, 1528, - 1520, 1521, 1531, 1532, 1533, 1525, 1523, 1534, 1535, 1537, - 1529, 1531, 1538, 1526, 1527, 1536, 1536, 1539, 1540, 1533, - 1543, 1532, 1539, 1537, 1541, 1541, 1545, 1542, 1535, 1556, - 1538, 1542, 1534, 1540, 1544, 1544, 1546, 1548, 1547, 1549, - 1543, 1548, 1550, 1552, 1552, 1556, 1554, 1550, 1545, 1547, - 1553, 1555, 1557, 1553, 1558, 1546, 1555, 1559, 1549, 1554, - 1560, 1561, 1562, 1562, 1563, 1564, 1567, 1565, 1558, 1563, - - 1557, 1566, 1566, 1568, 1560, 1567, 1559, 1559, 1568, 1569, - 1570, 1573, 1570, 1571, 1572, 1564, 1561, 1565, 1571, 1574, - 1572, 1576, 1577, 1577, 1578, 1574, 1579, 1582, 1581, 1569, - 1585, 1573, 1579, 1581, 1586, 1576, 1583, 1583, 1584, 1584, - 1587, 1590, 1588, 1578, 1585, 1588, 1589, 1589, 1591, 1592, - 1593, 1582, 1586, 1593, 1600, 1587, 1593, 1594, 1598, 1590, - 1591, 1595, 1596, 1594, 47, 1596, 1595, 1598, 1593, 1592, - 1599, 1601, 1602, 1602, 1601, 1599, 1603, 1604, 1608, 1600, - 1605, 1596, 1603, 1604, 1608, 1605, 1606, 1606, 1607, 1607, - 1609, 1610, 1611, 1612, 1613, 1609, 1614, 1615, 1620, 1614, - - 1616, 1617, 1625, 1615, 1610, 1619, 1616, 1617, 1618, 1624, - 1611, 1619, 1612, 1618, 1613, 1621, 1622, 1622, 1623, 1626, - 1621, 1620, 1625, 1623, 1627, 1628, 1629, 1624, 1630, 1631, - 1632, 1633, 1634, 1635, 1634, 1633, 1636, 1638, 1626, 1628, - 1629, 1639, 1630, 1636, 1627, 1640, 1642, 1631, 1641, 1638, - 1644, 1643, 1635, 1639, 1641, 1632, 1646, 1645, 1640, 1648, - 1648, 1649, 1651, 1650, 1652, 1652, 1642, 1643, 1650, 1653, - 1644, 1645, 1654, 1655, 1651, 1656, 1657, 1646, 18, 1658, - 1659, 1649, 1661, 1660, 1653, 1657, 1654, 1659, 1663, 1665, - 1667, 1667, 1660, 1656, 1658, 1660, 1666, 1655, 1661, 1666, - - 1668, 1668, 1670, 1663, 1669, 1673, 1671, 1674, 1663, 1671, - 1672, 1672, 1675, 1678, 1665, 1679, 1669, 1675, 1673, 1676, - 1670, 1680, 1676, 1677, 1681, 1682, 1674, 1683, 1677, 1684, - 1680, 1679, 1678, 1686, 1682, 1684, 1683, 1682, 1685, 1685, - 1688, 1687, 1689, 1681, 1690, 1691, 1696, 1692, 1697, 1693, - 1691, 1691, 1692, 1686, 1687, 1700, 1689, 1699, 1688, 1706, - 1690, 1693, 1698, 1698, 1700, 1701, 1697, 1702, 1702, 1703, - 1701, 1696, 1704, 1699, 1705, 1707, 1710, 1704, 1703, 1708, - 1706, 1703, 1702, 1711, 1708, 1708, 1712, 1715, 1719, 1713, - 1710, 1714, 1705, 1707, 1713, 1716, 1716, 1714, 1711, 1718, - - 1717, 1720, 1719, 1721, 1718, 1715, 1717, 1720, 1712, 1721, - 1723, 1724, 1725, 1726, 1727, 1728, 1730, 1727, 1725, 1732, - 1733, 1728, 1734, 1727, 1730, 1724, 1726, 1735, 1736, 1738, - 1723, 1737, 1740, 1736, 1739, 1735, 1741, 1742, 1732, 1733, - 1737, 1734, 1738, 1739, 1746, 1740, 1743, 1743, 1744, 1745, - 1741, 1742, 1747, 1747, 1744, 1745, 1748, 1746, 1752, 1749, - 1750, 1751, 1751, 1753, 1754, 1755, 1756, 1759, 1743, 1753, - 1760, 1752, 1758, 1758, 1760, 1761, 1748, 1749, 1762, 1750, - 1761, 1755, 1765, 1763, 1756, 1764, 1754, 1759, 1763, 1766, - 1764, 1765, 1768, 1769, 1770, 1771, 1772, 1770, 1762, 1773, - - 1773, 1774, 1769, 1768, 1775, 1776, 1780, 1771, 1777, 1777, - 1779, 1772, 1766, 1778, 1781, 1783, 1775, 1779, 1780, 1784, - 1774, 1786, 1785, 1787, 1776, 1788, 1781, 1778, 1785, 1789, - 1789, 1788, 1790, 1786, 1783, 1790, 1791, 1791, 1793, 1784, - 1794, 1787, 1795, 1793, 1796, 1796, 1797, 1800, 1795, 1794, - 1798, 1799, 1798, 1801, 1799, 1802, 1803, 1804, 1797, 1805, - 1806, 1808, 1804, 1809, 1805, 1807, 1811, 1800, 1809, 1806, - 1810, 17, 1814, 1802, 1803, 1801, 1808, 1807, 1812, 1810, - 1813, 1815, 1815, 1812, 1817, 1813, 1811, 1814, 1816, 1819, - 1812, 1820, 1810, 1821, 1816, 1822, 1823, 1824, 1823, 1825, - - 1825, 1826, 1826, 1827, 1827, 1817, 1828, 1831, 1819, 1821, - 1820, 1824, 1832, 1824, 1833, 1822, 1829, 1829, 1830, 1830, - 1834, 1834, 1837, 1835, 1836, 1837, 1828, 1835, 1831, 1840, - 1836, 1839, 1841, 1832, 1842, 1833, 1843, 1839, 1841, 1842, - 1844, 1845, 1845, 1844, 1846, 1847, 1850, 1840, 1848, 1848, - 1847, 1849, 1851, 1852, 1853, 1853, 1855, 1851, 1852, 1856, - 1854, 1843, 1855, 1857, 1846, 1854, 1849, 1850, 1858, 1859, - 1860, 1856, 1856, 1856, 1861, 1863, 1860, 1864, 1856, 1867, - 1863, 1863, 1865, 1857, 1868, 1866, 1858, 1866, 1871, 1859, - 1867, 1864, 1869, 1870, 1861, 1872, 1874, 1865, 1869, 1868, - - 1873, 1873, 1870, 1875, 1875, 1876, 1877, 1880, 1871, 1878, - 1878, 1879, 1879, 1883, 1883, 1884, 1872, 1885, 1888, 1890, - 1887, 1892, 1874, 1893, 1889, 1876, 1885, 1880, 1877, 1887, - 1889, 1891, 1891, 1896, 1894, 1890, 1895, 1898, 1893, 1888, - 1884, 1894, 1892, 1897, 1897, 1895, 1899, 1901, 1902, 1903, - 1904, 1906, 1901, 1906, 1902, 1905, 1908, 1904, 1909, 1896, - 1913, 1905, 1899, 1898, 1909, 1910, 1910, 1911, 1912, 1903, - 1914, 1915, 1911, 1916, 1917, 1908, 1916, 1912, 1918, 1920, - 1913, 1919, 1919, 1915, 1921, 1920, 1922, 1923, 1926, 1914, - 1921, 1924, 1917, 1927, 1928, 1924, 1929, 1929, 1930, 1928, - - 1933, 1931, 1923, 1934, 1918, 1937, 1922, 1934, 1926, 1935, - 1935, 1924, 1936, 1940, 1937, 1927, 1931, 1930, 1936, 1933, - 1938, 1938, 1939, 1942, 1940, 1943, 1939, 1941, 1941, 1940, - 1944, 1945, 1946, 1947, 1948, 1949, 1945, 1950, 1952, 1943, - 2056, 1949, 1951, 1952, 1942, 1953, 1954, 1954, 2056, 1944, - 1955, 1955, 1946, 1947, 1948, 1950, 1956, 1951, 1953, 1958, - 1956, 1959, 1960, 1961, 1961, 1963, 1963, 1965, 1958, 1964, - 1967, 1968, 1959, 1965, 1964, 1964, 1967, 1959, 1969, 1970, - 1971, 1973, 1960, 1969, 1974, 1977, 1971, 1975, 1974, 1976, - 1976, 1970, 1978, 1973, 1979, 1980, 1982, 1968, 1978, 1975, - - 1983, 1980, 1981, 1981, 1984, 1985, 1987, 1988, 1989, 1984, - 1977, 1991, 1995, 1989, 1991, 1982, 1979, 1985, 1987, 1996, - 1983, 1992, 1992, 1993, 1993, 1996, 1988, 1994, 1994, 1997, - 0, 1998, 1995, 1999, 2000, 1997, 1998, 2002, 2004, 1999, - 2005, 2004, 2002, 2000, 2006, 2006, 2008, 2009, 2010, 2011, - 2011, 2012, 2005, 2010, 2016, 2016, 2013, 2014, 2008, 2009, - 2012, 2013, 2014, 2015, 2017, 2018, 2015, 2019, 2020, 2021, - 2022, 2023, 2024, 2021, 2018, 2022, 2026, 2023, 2027, 2025, - 2030, 2029, 2029, 2032, 2017, 2019, 2031, 2020, 2025, 2035, - 2024, 2034, 2027, 2029, 2026, 2031, 2033, 2033, 2030, 2036, - - 2034, 2035, 2037, 2032, 2038, 2041, 2041, 2037, 2043, 2044, - 2045, 2043, 2046, 2049, 2048, 2050, 2051, 2038, 2052, 2052, - 2036, 2050, 2053, 2054, 2053, 2044, 2045, 2049, 2046, 2048, - 2055, 2055, 2061, 2051, 2058, 2058, 2059, 2059, 2062, 2063, - 2064, 2054, 2065, 2066, 2062, 2063, 2067, 2068, 2068, 2065, - 2069, 2070, 2071, 2075, 2064, 2061, 2072, 2074, 2073, 2069, - 2076, 2077, 2079, 2080, 2071, 2066, 2067, 2077, 2072, 2074, - 2083, 2081, 2070, 2073, 2084, 2076, 2082, 2082, 2085, 2075, - 2077, 2085, 2079, 2081, 2086, 2087, 2080, 2089, 2083, 2086, - 2091, 2090, 2089, 2090, 2084, 2092, 2093, 2095, 2097, 2099, - - 2092, 2098, 2100, 2093, 2100, 2087, 2095, 2101, 2091, 2102, - 2098, 2099, 2104, 2105, 2104, 2102, 2097, 2106, 2106, 2107, - 2108, 2109, 2112, 2109, 2110, 2108, 2101, 2105, 2111, 2110, - 2113, 2114, 2117, 2111, 2115, 2116, 2118, 2114, 2119, 2115, - 2112, 2118, 2118, 2121, 2117, 2107, 2119, 2122, 2116, 2125, - 2113, 2123, 2123, 2124, 2124, 2126, 2129, 2127, 2129, 2130, - 2128, 2122, 2121, 2127, 2125, 2128, 2131, 2132, 2132, 2133, - 2134, 2134, 2135, 2135, 2131, 2126, 2136, 2130, 2137, 2138, - 2140, 2133, 2131, 2137, 2141, 2136, 2141, 2142, 2143, 2140, - 2144, 2145, 2140, 2143, 2143, 2146, 2149, 2138, 2148, 2150, - - 2145, 2149, 2144, 2152, 2150, 2153, 2154, 2146, 2142, 2156, - 2148, 2155, 2155, 2157, 2158, 2154, 2152, 2159, 2160, 2163, - 2161, 2162, 2167, 2165, 2163, 2153, 2166, 2156, 2170, 2179, - 2176, 2157, 2158, 2159, 2161, 2165, 2162, 2170, 2166, 2168, - 2169, 2173, 2167, 2160, 2168, 2169, 2175, 2173, 2177, 2178, - 2180, 2184, 2175, 2176, 2179, 2181, 2181, 2182, 2185, 2180, - 2173, 2183, 2183, 2177, 2186, 2187, 2182, 2178, 2186, 2184, - 2187, 2188, 2190, 2191, 2192, 2193, 2194, 2185, 2197, 2191, - 2193, 2193, 2194, 2195, 2188, 2196, 2197, 2198, 2196, 2195, - 2203, 2190, 2201, 2201, 2202, 2202, 2192, 2204, 2204, 2203, - - 2205, 2205, 2206, 2207, 2208, 2216, 2209, 2198, 2218, 2202, - 2208, 2209, 2210, 2210, 2206, 2211, 2211, 2212, 2213, 2215, - 2202, 2207, 2212, 2215, 2213, 2216, 2217, 2220, 2218, 2221, - 2217, 2222, 2223, 2224, 2221, 2225, 2227, 2228, 2224, 2226, - 2229, 2231, 2228, 2230, 2230, 2231, 2232, 2223, 2234, 2235, - 2240, 2237, 2220, 2225, 2222, 2226, 2227, 2236, 2233, 2238, - 2239, 2232, 2229, 2233, 2238, 2241, 2241, 2235, 2240, 2236, - 2237, 2243, 2244, 2239, 2234, 2245, 2246, 2247, 2248, 2243, - 2249, 2251, 2250, 2252, 2253, 2257, 2255, 2260, 2261, 2260, - 2253, 2244, 2258, 2251, 2245, 2246, 2262, 2262, 2257, 2249, - - 2247, 2255, 2248, 2250, 2252, 2259, 2258, 2263, 2261, 2265, - 2264, 2259, 2263, 2264, 2266, 2272, 2267, 2268, 2268, 2269, - 2269, 2270, 2265, 2270, 2271, 2271, 2273, 2281, 2266, 2267, - 2272, 2274, 2274, 2275, 2276, 2276, 2277, 2277, 2278, 2273, - 2282, 2280, 2275, 2278, 2283, 2275, 2280, 2281, 2284, 2284, - 2285, 2285, 2286, 2287, 2287, 2288, 2283, 2289, 2289, 2290, - 2282, 2291, 2292, 2292, 2293, 2293, 2291, 2294, 2295, 2296, - 2297, 2286, 2298, 2288, 2290, 2300, 2302, 2295, 2301, 2301, - 2300, 2294, 2303, 2303, 2297, 2304, 2296, 2305, 2309, 2306, - 2310, 2298, 2306, 2305, 2313, 2302, 2307, 2307, 2308, 2308, - - 2311, 2314, 2311, 2304, 2317, 2310, 2318, 2309, 2319, 2313, - 2315, 2315, 2307, 2320, 2321, 2321, 2322, 2320, 2324, 2325, - 2314, 2323, 2328, 2319, 2317, 2329, 2323, 2327, 2327, 2318, - 2330, 2331, 2329, 2324, 2325, 2322, 2332, 2333, 2334, 2334, - 2339, 2335, 2328, 2336, 2330, 2336, 2339, 2340, 2337, 2331, - 2335, 2337, 2341, 2342, 2332, 2343, 2344, 2341, 2342, 2340, - 2345, 2347, 2346, 2333, 2352, 2349, 2337, 2346, 2337, 2344, - 2349, 2350, 2351, 2355, 2356, 2360, 2350, 2351, 2353, 2352, - 2343, 2345, 2354, 2361, 2353, 2357, 2372, 2347, 2354, 2356, - 2358, 2357, 2359, 2363, 2355, 2358, 2361, 2359, 2362, 2364, - - 2360, 2362, 2363, 2365, 2366, 2367, 2372, 2370, 2364, 2368, - 2369, 2370, 2365, 2366, 2374, 2368, 2369, 2375, 2377, 2367, - 2376, 2376, 2378, 2378, 2377, 2381, 2375, 2379, 2380, 2380, - 2381, 2378, 2382, 2384, 2374, 2385, 2379, 2386, 2386, 2388, - 2387, 2390, 2391, 2395, 2392, 2393, 2395, 2397, 2388, 2384, - 2398, 2385, 2382, 2390, 2382, 2387, 2396, 2393, 2391, 2392, - 0, 2396, 2398, 2399, 2399, 2400, 2400, 2397, 2402, 2402, - 2403, 2404, 2405, 2403, 2406, 2407, 2404, 2409, 2405, 2412, - 2406, 2408, 2408, 2411, 2407, 2410, 2410, 2413, 2414, 2414, - 2415, 2409, 2417, 2412, 2416, 2411, 2415, 2417, 2419, 2425, - - 2420, 2423, 2419, 2420, 2421, 2421, 2413, 2422, 2416, 2424, - 2423, 2426, 2422, 2427, 2427, 2426, 2428, 2430, 2424, 2425, - 2431, 2432, 2430, 2433, 2434, 2436, 2435, 2437, 2438, 2428, - 2435, 2439, 2437, 2441, 2438, 2440, 2440, 2439, 2434, 2442, - 2431, 2432, 2443, 2433, 2444, 2436, 2445, 2446, 2446, 2444, - 2448, 2441, 2449, 2453, 2450, 2453, 2452, 2451, 2442, 2450, - 2455, 2443, 2448, 2451, 2452, 2457, 2460, 2445, 2449, 2455, - 2458, 2458, 2459, 2461, 2461, 2459, 2464, 2465, 2466, 2457, - 2464, 2467, 2467, 2465, 2468, 2471, 2471, 2473, 2475, 2479, - 2466, 2476, 2460, 2468, 2479, 2480, 2481, 2490, 2482, 2483, - - 2484, 2484, 2475, 2482, 2483, 2473, 2488, 2476, 2486, 2486, - 2489, 2489, 2488, 2490, 2491, 2492, 2494, 2481, 2496, 2495, - 2492, 2480, 2495, 2498, 2498, 2497, 2501, 2502, 2503, 2500, - 2496, 2507, 2501, 2505, 2505, 2494, 2491, 2497, 2500, 2506, - 2508, 2513, 2506, 2503, 2514, 2502, 2510, 2510, 2511, 2511, - 2507, 2512, 2515, 2514, 2517, 2518, 2512, 2515, 2508, 2513, - 2516, 2519, 2516, 2521, 2522, 2520, 2523, 2529, 2517, 2518, - 2520, 2523, 0, 2519, 2524, 2524, 2525, 2525, 2526, 2526, - 2527, 2527, 2528, 2521, 2522, 2529, 2530, 2531, 2531, 2532, - 2532, 2530, 2533, 2533, 2528, 2534, 2535, 2536, 2537, 2538, - - 2541, 2539, 2540, 2540, 2542, 2542, 0, 2534, 2546, 2536, - 2543, 2543, 2544, 2545, 2547, 2546, 2535, 2539, 2537, 2541, - 2538, 2548, 2549, 2544, 2550, 2545, 2547, 2549, 2551, 2552, - 2552, 2553, 2554, 2554, 2555, 2556, 2557, 2558, 2559, 2562, - 2553, 2548, 2560, 2561, 2550, 2561, 2563, 2563, 2551, 2557, - 2564, 2562, 2559, 2565, 2566, 2556, 2568, 2569, 2570, 2564, - 2555, 2558, 2571, 2572, 2560, 2571, 2573, 2574, 2565, 2566, - 0, 2573, 2574, 2582, 2568, 2575, 2575, 2572, 2584, 2569, - 2585, 2570, 2576, 2576, 2577, 2577, 2579, 2579, 2581, 2581, - 2583, 2582, 2587, 2588, 2589, 2585, 2591, 2584, 2590, 2592, - - 2593, 2583, 2593, 2594, 2595, 2591, 2596, 2597, 2597, 2599, - 2599, 2588, 2587, 2600, 2601, 2607, 2589, 2602, 2590, 2592, - 2603, 2603, 2595, 2594, 2596, 2605, 2602, 2600, 2606, 2606, - 2608, 2609, 2610, 2607, 2605, 2611, 2601, 2612, 2613, 2610, - 2615, 2614, 2617, 2617, 2616, 2618, 2618, 2619, 2608, 2609, - 2611, 2616, 2620, 2627, 2621, 2612, 2613, 2614, 2626, 2615, - 2621, 2623, 2623, 2624, 2624, 2625, 2628, 2619, 2627, 2629, - 2620, 2625, 2630, 2631, 2632, 2633, 2626, 2630, 2639, 2634, - 2633, 2634, 2636, 2629, 2636, 2628, 2635, 2635, 2637, 2637, - 2641, 2642, 2643, 2631, 2632, 2644, 2645, 2639, 2646, 2641, - - 2647, 2645, 2648, 2646, 2643, 2651, 2652, 2653, 2653, 2652, - 2642, 2654, 2655, 2656, 2656, 2644, 2657, 2658, 2659, 2661, - 2647, 2648, 2659, 2666, 2662, 2651, 2654, 2657, 2662, 2664, - 2655, 2667, 2658, 2668, 2661, 2663, 2663, 2671, 2666, 2669, - 2669, 2672, 2664, 2673, 2674, 2674, 2675, 2673, 2679, 2671, - 2672, 2667, 2677, 2668, 2676, 2676, 2680, 2677, 2678, 2681, - 2682, 2682, 2687, 2687, 2679, 2675, 2688, 2678, 2680, 2689, - 2689, 2690, 2691, 2692, 2693, 2696, 2696, 2697, 2694, 2681, - 2695, 2698, 0, 2693, 2690, 2691, 2692, 2694, 2688, 2695, - 2700, 2700, 2705, 2703, 2704, 2706, 2698, 2697, 2703, 2704, - - 2706, 2707, 2708, 2709, 2712, 2710, 2705, 2716, 2720, 2707, - 2714, 2715, 2709, 2710, 2724, 2714, 2715, 2717, 2717, 2712, - 2719, 2708, 2716, 2718, 2718, 2719, 2722, 2720, 2721, 2721, - 2723, 2725, 2724, 2722, 2726, 2723, 2727, 2728, 2728, 2729, - 2726, 2727, 2730, 2731, 2731, 2732, 2732, 2730, 2735, 2725, - 2736, 2736, 2737, 2738, 2729, 2737, 2741, 2739, 2738, 2738, - 2740, 2735, 2739, 2742, 2743, 2740, 2744, 2745, 2743, 2742, - 2741, 2744, 2746, 2747, 2748, 2751, 2745, 2749, 2750, 2752, - 2751, 2747, 2754, 2749, 2750, 2755, 2758, 2746, 2763, 2754, - 2755, 2752, 2760, 2756, 2761, 2748, 2756, 2760, 2758, 2761, - - 2762, 2764, 2765, 2766, 2768, 2762, 2763, 2767, 2767, 2772, - 2769, 2765, 2766, 2768, 2764, 2769, 2773, 2774, 2777, 2778, - 2783, 2779, 2773, 2774, 2780, 2780, 2781, 2772, 2782, 2783, - 2784, 2785, 2785, 2781, 2786, 2788, 2790, 2777, 2791, 2778, - 2779, 2793, 2791, 2792, 2792, 2784, 2794, 2782, 2795, 2796, - 2788, 2797, 2794, 2786, 2795, 2799, 2790, 2797, 2798, 2798, - 2800, 2802, 2803, 2799, 2808, 2800, 2793, 2796, 2805, 2806, - 2802, 2809, 2806, 2807, 2805, 2803, 2812, 2807, 2808, 2811, - 2811, 2813, 2813, 2814, 2814, 2817, 2809, 2816, 2816, 2817, - 2818, 2820, 2820, 2822, 2812, 2818, 2823, 2824, 2825, 2826, - - 2828, 2823, 2841, 2825, 2825, 2829, 2829, 2831, 2831, 2824, - 2835, 2826, 2836, 2822, 2832, 2832, 2833, 2833, 2834, 2839, - 2828, 2834, 2841, 2835, 2845, 2836, 2838, 2838, 2842, 2842, - 2843, 2843, 2844, 2844, 2846, 2846, 2847, 2839, 2848, 2845, - 2849, 2850, 2851, 2851, 2852, 2855, 2859, 2850, 2852, 2847, - 2856, 2855, 2858, 2860, 2849, 2856, 2848, 2858, 2858, 2861, - 2862, 2863, 2864, 2874, 2865, 0, 2862, 2863, 2865, 2859, - 2866, 2866, 2869, 2860, 2871, 2872, 2877, 2869, 2872, 2861, - 2875, 2878, 2871, 2875, 2876, 2876, 2878, 2864, 2874, 2879, - 2880, 2881, 2883, 2877, 2877, 2882, 2882, 2884, 2885, 2886, - - 2884, 2887, 2890, 2891, 2891, 2881, 2883, 2879, 2884, 2887, - 2880, 2888, 2885, 2900, 2889, 2899, 2888, 2888, 2886, 2889, - 2889, 2890, 2892, 2892, 2893, 2893, 2894, 2894, 2895, 2895, - 2896, 2896, 2897, 2898, 2903, 2899, 2901, 2902, 2898, 2900, - 2904, 2906, 2902, 2905, 2907, 2904, 2909, 2909, 2897, 2912, - 2901, 2920, 2905, 2903, 2910, 2910, 2911, 2914, 2914, 2911, - 2920, 2906, 2915, 2917, 2907, 2916, 2916, 2912, 2917, 2915, - 2919, 2919, 2921, 2922, 2923, 2925, 2926, 2926, 2928, 2929, - 2927, 2921, 2922, 2923, 2927, 2930, 2931, 2928, 2934, 2932, - 2933, 2940, 2940, 2925, 2932, 2932, 2930, 2934, 2929, 2943, - - 2935, 2931, 2939, 2933, 2935, 2942, 2942, 2939, 2944, 2945, - 2947, 2947, 2948, 2943, 2949, 2953, 2955, 2954, 2957, 2960, - 2962, 2948, 2954, 2958, 2995, 2955, 2949, 2945, 2995, 2958, - 2964, 2960, 2965, 2944, 2969, 2964, 2967, 2965, 2957, 2969, - 2953, 2962, 2966, 2966, 2970, 2967, 2971, 2972, 2972, 2974, - 2974, 2972, 2975, 2975, 2976, 2976, 2977, 2970, 2978, 2980, - 2971, 2979, 2982, 2986, 2980, 2977, 2983, 2984, 2982, 2985, - 2985, 2983, 2984, 2987, 2988, 2990, 2992, 2989, 2978, 2996, - 2979, 2986, 2989, 2991, 2996, 2987, 2993, 2993, 2999, 2991, - 3000, 2997, 3003, 2990, 3001, 2988, 2997, 2998, 2998, 3005, - - 3005, 2992, 3007, 3008, 3009, 3000, 3010, 2999, 3012, 3001, - 3010, 3011, 3003, 3013, 3014, 3007, 3008, 3009, 3015, 3016, - 3011, 3018, 3014, 3015, 3012, 3017, 3017, 3019, 3020, 3022, - 3018, 3028, 3013, 3021, 3021, 3025, 3025, 3026, 3026, 3016, - 3030, 3030, 3032, 3033, 3034, 3019, 3035, 3039, 3022, 3034, - 3036, 3040, 3028, 3042, 3020, 3036, 3038, 3038, 3032, 3033, - 3040, 3043, 3035, 3041, 3045, 3045, 3047, 3039, 3046, 3041, - 3048, 3048, 3051, 3052, 3055, 3058, 3042, 3059, 3053, 3052, - 3043, 3063, 3046, 3053, 3061, 3047, 3056, 3056, 3057, 3057, - 3058, 3062, 3051, 3060, 3060, 3061, 3055, 3059, 3064, 3065, - - 3062, 3063, 3066, 3067, 3064, 3068, 3068, 3069, 3070, 3071, - 3077, 3070, 3071, 3060, 3066, 3072, 3072, 3076, 3065, 3078, - 3079, 3079, 3069, 3067, 3080, 3078, 3081, 3080, 3082, 3076, - 3077, 3084, 3081, 3085, 3085, 3086, 3084, 3087, 3088, 3092, - 3086, 3089, 3090, 3090, 3088, 3093, 3082, 3094, 3095, 3096, - 3096, 3092, 3097, 3098, 3113, 3099, 3087, 3104, 3089, 3089, - 3113, 3095, 3104, 3093, 3099, 3101, 3101, 3102, 3102, 3098, - 3105, 3097, 3094, 3103, 3103, 3106, 3107, 3107, 3108, 3108, - 3106, 3109, 3109, 3111, 3105, 3110, 3110, 3112, 3114, 3116, - 3116, 3119, 3121, 3114, 3122, 3128, 3111, 3124, 3123, 3125, - - 3125, 3127, 3127, 3129, 3130, 3131, 3132, 3133, 3133, 3137, - 3119, 3134, 3134, 3112, 3121, 3132, 3122, 3123, 3130, 3124, - 3136, 3128, 3129, 3138, 3142, 3131, 3136, 3139, 0, 3137, - 3143, 3143, 3139, 3145, 3145, 3146, 3147, 3148, 3150, 3149, - 3146, 3156, 3138, 3148, 3152, 3142, 3150, 3151, 3151, 3152, - 3147, 3149, 3154, 3155, 3157, 3158, 3154, 3159, 3155, 3160, - 3158, 3156, 3162, 3163, 3164, 3160, 3165, 3167, 3174, 3159, - 3162, 3168, 3169, 3170, 3157, 3171, 3173, 3175, 3178, 0, - 3171, 3173, 3163, 3175, 3164, 3167, 3165, 3168, 3174, 3169, - 3169, 3176, 3179, 3180, 3170, 3179, 3176, 3193, 3178, 3184, - - 3184, 3185, 3185, 3186, 3191, 3191, 3180, 3186, 3192, 3194, - 3194, 3196, 3196, 3192, 3197, 3197, 3193, 3197, 3198, 3198, - 3204, 3198, 3199, 3199, 3200, 3200, 3201, 3200, 3203, 3204, - 3201, 3205, 3205, 3203, 3206, 3207, 3210, 3211, 3212, 3213, - 3213, 3214, 3217, 3212, 3218, 3220, 3219, 3221, 3223, 3207, - 3219, 3218, 3206, 3224, 3220, 3226, 3210, 3211, 3224, 3225, - 3225, 3214, 3221, 3230, 3226, 3235, 3223, 3217, 3227, 3227, - 3228, 3228, 3229, 3229, 3231, 3232, 3233, 3234, 3230, 3231, - 3236, 3233, 3233, 3234, 3232, 3237, 3238, 3232, 3239, 3240, - 3235, 3238, 3242, 3239, 3243, 3236, 3241, 3241, 3242, 3246, - - 3243, 3244, 3244, 3245, 3245, 3247, 3237, 0, 3240, 3253, - 3247, 3250, 3250, 3265, 3246, 3252, 3252, 0, 3253, 3256, - 3256, 3257, 3257, 3258, 3258, 3259, 3259, 3261, 3261, 3262, - 3262, 3263, 3263, 3264, 3264, 3267, 3268, 3268, 3269, 3265, - 3270, 3271, 3273, 3273, 3267, 3274, 3277, 3269, 3275, 3275, - 3276, 3278, 3270, 3279, 3279, 3280, 3280, 3282, 3286, 3277, - 3288, 3271, 3290, 3278, 3274, 3276, 3283, 3283, 3287, 3289, - 3289, 3287, 3282, 3293, 3292, 3294, 3286, 3292, 3295, 3293, - 3290, 3296, 3298, 3295, 3297, 3300, 3288, 3301, 3304, 3294, - 3305, 3300, 3304, 3308, 3317, 3320, 3301, 3326, 3298, 3317, - - 3296, 3318, 3297, 3329, 3318, 3305, 3321, 3321, 3320, 3322, - 3322, 3324, 3324, 3327, 3328, 3331, 3333, 3334, 3328, 3308, - 3326, 3335, 3327, 3329, 3339, 3336, 3335, 3336, 3334, 3331, - 3337, 3338, 3338, 3340, 3342, 3341, 3343, 3339, 3345, 3333, - 3344, 3347, 3346, 3348, 3349, 3337, 3347, 3345, 3351, 3349, - 3342, 3356, 3340, 3341, 3346, 3344, 3350, 3350, 3352, 3357, - 3359, 3343, 3364, 3352, 3348, 3356, 3358, 3358, 3351, 3359, - 3360, 3360, 3361, 3361, 3362, 3362, 3363, 3363, 3365, 3357, - 3366, 3364, 3367, 3366, 3368, 3369, 3370, 3367, 3371, 3368, - 3372, 3373, 3374, 3376, 3371, 3375, 3375, 3374, 3365, 3377, - - 3377, 3370, 3380, 3373, 3372, 3379, 3379, 3381, 3382, 3382, - 3369, 3386, 3384, 3376, 3389, 3389, 3391, 3380, 3390, 3390, - 3392, 3395, 3393, 3396, 3391, 3394, 3381, 3384, 3393, 3386, - 3397, 3394, 3398, 3399, 3399, 3395, 3396, 3398, 3404, 3392, - 3401, 3401, 3405, 3407, 3408, 3410, 3411, 3412, 3408, 3397, - 3413, 3411, 3415, 3416, 3414, 3417, 3421, 3407, 3416, 3404, - 3417, 3422, 3405, 3413, 3423, 3410, 3412, 3414, 3418, 3418, - 3425, 3415, 3424, 3424, 3426, 3425, 3421, 3427, 3427, 3422, - 3426, 3428, 3429, 3423, 3430, 3431, 3428, 3429, 3432, 3430, - 3434, 3434, 3435, 3439, 3432, 3436, 3436, 3435, 3438, 3440, - - 3441, 3442, 3438, 3443, 3431, 3444, 3440, 3452, 3445, 3443, - 3447, 3447, 3439, 3449, 3449, 3453, 3450, 3451, 3454, 3441, - 3442, 3445, 3451, 3457, 3444, 3450, 3452, 3456, 3450, 3455, - 3455, 3454, 3456, 3459, 3453, 3461, 3457, 3460, 3460, 3462, - 3462, 3463, 3463, 3464, 3465, 3466, 3467, 3467, 3464, 0, - 3468, 3465, 3470, 3470, 3461, 3468, 3469, 3473, 3469, 3459, - 3471, 3472, 3475, 3478, 3466, 3474, 3482, 3471, 3472, 3480, - 3474, 3477, 3477, 3481, 3480, 3483, 3473, 3487, 3481, 3484, - 3484, 3475, 3478, 3486, 3486, 3482, 3488, 3489, 3489, 3490, - 3490, 3491, 3493, 3493, 3483, 3495, 3487, 3501, 3491, 3494, - - 3494, 3497, 3495, 3500, 3502, 3488, 3497, 0, 3500, 3503, - 3503, 3504, 3504, 0, 0, 0, 3501, 0, 0, 0, - 0, 0, 0, 3502, 3508, 3508, 3508, 3508, 3508, 3508, - 3508, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3510, 3510, - 3510, 3510, 3510, 3510, 3510, 3511, 3511, 3511, 3511, 3511, - 3511, 3511, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3513, - 3513, 3513, 3513, 3513, 3513, 3513, 3514, 3514, 3514, 3514, - 3514, 3514, 3514, 3516, 3516, 0, 3516, 3516, 3516, 3516, - 3517, 3517, 0, 0, 0, 3517, 3517, 3518, 3518, 0, - 0, 3518, 0, 3518, 3519, 0, 0, 0, 0, 0, - - 3519, 3520, 3520, 0, 0, 0, 3520, 3520, 3521, 0, - 0, 0, 0, 0, 3521, 3522, 3522, 0, 3522, 3522, - 3522, 3522, 3523, 0, 0, 0, 0, 0, 3523, 3524, - 3524, 0, 0, 0, 3524, 3524, 3525, 3525, 0, 3525, - 3525, 3525, 3525, 3507, 3507, 3507, 3507, 3507, 3507, 3507, - 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, - 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, - 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, - 3507, 3507, 3507, 3507 ++ 230, 229, 223, 231, 232, 234, 232, 225, 233, 235, ++ 236, 232, 238, 237, 233, 235, 239, 241, 234, 237, ++ 240, 243, 241, 242, 239, 238, 244, 245, 248, 250, ++ ++ 236, 251, 242, 240, 238, 246, 243, 251, 247, 252, ++ 246, 246, 244, 247, 249, 254, 248, 245, 249, 253, ++ 257, 250, 261, 258, 255, 253, 259, 252, 252, 255, ++ 258, 260, 259, 263, 262, 254, 264, 260, 267, 257, ++ 262, 261, 265, 265, 267, 263, 266, 266, 268, 269, ++ 264, 269, 270, 271, 268, 272, 274, 273, 271, 275, ++ 276, 277, 267, 278, 274, 276, 279, 272, 269, 278, ++ 283, 285, 279, 280, 282, 270, 273, 281, 280, 275, ++ 282, 284, 281, 286, 277, 283, 287, 288, 290, 285, ++ 289, 290, 292, 292, 287, 284, 289, 286, 291, 293, ++ ++ 291, 294, 293, 295, 295, 296, 296, 297, 299, 298, ++ 300, 299, 288, 301, 300, 303, 302, 304, 174, 294, ++ 305, 303, 301, 297, 298, 302, 305, 306, 307, 306, ++ 310, 304, 308, 311, 307, 310, 308, 309, 309, 311, ++ 312, 313, 314, 315, 316, 319, 312, 317, 317, 318, ++ 320, 321, 318, 308, 320, 322, 324, 316, 323, 323, ++ 314, 313, 327, 319, 315, 312, 325, 326, 327, 325, ++ 321, 329, 328, 322, 324, 328, 331, 332, 335, 326, ++ 336, 335, 337, 329, 333, 331, 325, 330, 338, 333, ++ 338, 338, 169, 336, 337, 332, 330, 334, 340, 330, ++ ++ 334, 340, 334, 339, 330, 330, 330, 330, 339, 339, ++ 341, 341, 342, 343, 346, 334, 344, 345, 334, 348, ++ 348, 347, 349, 346, 350, 350, 352, 349, 343, 342, ++ 347, 344, 342, 353, 345, 345, 351, 351, 353, 354, ++ 355, 352, 356, 357, 358, 359, 359, 361, 359, 362, ++ 358, 354, 370, 370, 362, 363, 367, 359, 357, 355, ++ 364, 363, 356, 365, 369, 364, 366, 361, 365, 366, ++ 367, 366, 368, 369, 365, 368, 371, 372, 372, 373, ++ 376, 378, 371, 377, 373, 380, 377, 379, 368, 382, ++ 385, 368, 382, 368, 374, 374, 378, 374, 391, 380, ++ ++ 376, 386, 379, 374, 377, 385, 383, 374, 382, 389, ++ 386, 427, 374, 391, 390, 374, 375, 375, 387, 375, ++ 383, 388, 392, 387, 387, 393, 396, 388, 400, 427, ++ 389, 392, 375, 390, 388, 375, 395, 375, 401, 375, ++ 384, 394, 384, 384, 393, 399, 396, 394, 400, 397, ++ 399, 398, 384, 384, 384, 384, 384, 398, 401, 384, ++ 402, 398, 395, 397, 403, 404, 405, 407, 399, 403, ++ 406, 406, 405, 408, 409, 402, 410, 411, 412, 413, ++ 404, 415, 410, 416, 413, 408, 418, 407, 409, 414, ++ 414, 417, 414, 419, 412, 419, 423, 423, 424, 416, ++ ++ 418, 415, 411, 420, 421, 420, 420, 417, 421, 422, ++ 425, 426, 428, 422, 431, 432, 437, 424, 434, 167, ++ 431, 429, 434, 420, 432, 425, 428, 426, 422, 429, ++ 429, 433, 436, 435, 438, 439, 433, 437, 436, 439, ++ 438, 429, 435, 429, 430, 440, 441, 442, 440, 430, ++ 444, 441, 443, 443, 445, 445, 447, 430, 430, 446, ++ 449, 430, 430, 444, 446, 430, 449, 442, 450, 447, ++ 448, 448, 450, 451, 452, 453, 454, 455, 455, 456, ++ 453, 454, 457, 458, 459, 466, 455, 460, 451, 461, ++ 460, 456, 463, 462, 461, 452, 459, 462, 464, 464, ++ ++ 465, 458, 457, 468, 463, 465, 466, 467, 467, 470, ++ 470, 472, 473, 474, 475, 476, 477, 478, 479, 483, ++ 473, 477, 481, 475, 484, 468, 482, 485, 166, 487, ++ 479, 489, 472, 485, 474, 487, 476, 478, 484, 483, ++ 481, 486, 481, 488, 482, 489, 490, 492, 488, 491, ++ 486, 493, 491, 494, 490, 495, 497, 490, 498, 494, ++ 496, 492, 497, 496, 499, 500, 493, 501, 503, 499, ++ 502, 504, 498, 503, 502, 495, 505, 506, 507, 508, ++ 497, 505, 511, 1385, 512, 513, 504, 500, 501, 515, ++ 514, 516, 508, 506, 514, 517, 516, 507, 509, 509, ++ ++ 513, 520, 511, 518, 509, 512, 509, 518, 515, 1385, ++ 519, 517, 509, 522, 509, 519, 520, 509, 509, 519, ++ 521, 523, 524, 525, 509, 521, 526, 528, 524, 522, ++ 523, 527, 522, 524, 527, 529, 530, 530, 525, 531, ++ 532, 532, 526, 533, 534, 535, 536, 536, 537, 538, ++ 528, 541, 539, 540, 542, 529, 534, 539, 533, 543, ++ 535, 550, 540, 545, 531, 543, 551, 537, 549, 542, ++ 541, 538, 545, 546, 547, 548, 550, 546, 547, 552, ++ 549, 548, 553, 554, 555, 551, 556, 557, 555, 557, ++ 559, 560, 560, 552, 561, 562, 563, 553, 559, 556, ++ ++ 561, 554, 563, 564, 566, 565, 567, 562, 565, 568, ++ 569, 570, 571, 569, 568, 564, 573, 572, 566, 164, ++ 570, 567, 572, 572, 574, 574, 581, 570, 571, 573, ++ 570, 575, 575, 576, 577, 577, 578, 578, 579, 576, ++ 580, 582, 585, 589, 579, 580, 580, 581, 583, 584, ++ 586, 583, 587, 582, 584, 587, 590, 588, 586, 591, ++ 593, 585, 588, 591, 592, 594, 589, 595, 596, 594, ++ 592, 600, 597, 596, 599, 590, 598, 598, 601, 602, ++ 593, 603, 604, 601, 605, 595, 597, 607, 606, 599, ++ 605, 609, 600, 606, 610, 610, 608, 603, 602, 608, ++ ++ 611, 607, 604, 612, 608, 613, 614, 608, 608, 609, ++ 613, 614, 615, 616, 618, 619, 162, 621, 611, 612, ++ 618, 621, 620, 625, 619, 620, 615, 622, 616, 624, ++ 623, 626, 622, 623, 624, 627, 629, 628, 630, 625, ++ 633, 629, 627, 621, 631, 631, 632, 634, 635, 626, ++ 628, 636, 673, 637, 673, 632, 638, 639, 630, 633, ++ 636, 648, 638, 639, 635, 637, 640, 644, 634, 640, ++ 641, 641, 642, 641, 643, 642, 645, 646, 647, 643, ++ 648, 649, 651, 647, 650, 644, 653, 649, 651, 650, ++ 645, 646, 652, 654, 655, 652, 656, 657, 654, 655, ++ ++ 655, 658, 659, 660, 661, 663, 658, 662, 659, 656, ++ 657, 653, 662, 661, 664, 664, 665, 668, 671, 671, ++ 658, 658, 660, 665, 666, 663, 667, 666, 669, 668, ++ 670, 672, 667, 669, 674, 670, 670, 675, 679, 675, ++ 676, 677, 666, 669, 678, 680, 681, 682, 686, 684, ++ 687, 682, 681, 674, 683, 685, 672, 679, 676, 677, ++ 689, 690, 678, 683, 684, 680, 686, 690, 688, 687, ++ 685, 688, 691, 692, 693, 689, 694, 695, 696, 697, ++ 688, 698, 702, 697, 699, 700, 693, 692, 701, 703, ++ 704, 707, 691, 708, 703, 694, 160, 696, 695, 698, ++ ++ 699, 702, 709, 700, 704, 707, 701, 701, 705, 705, ++ 706, 710, 708, 709, 706, 711, 712, 713, 714, 715, ++ 711, 717, 716, 718, 719, 710, 715, 716, 717, 719, ++ 720, 714, 712, 721, 722, 720, 713, 723, 724, 725, ++ 728, 722, 726, 727, 731, 728, 723, 718, 725, 727, ++ 729, 721, 724, 729, 726, 730, 732, 733, 731, 730, ++ 734, 735, 736, 736, 740, 732, 737, 737, 738, 738, ++ 742, 739, 733, 740, 734, 737, 739, 743, 744, 746, ++ 745, 747, 735, 743, 745, 748, 749, 750, 753, 742, ++ 751, 746, 749, 752, 754, 750, 763, 751, 744, 767, ++ ++ 840, 757, 760, 748, 764, 763, 747, 768, 767, 840, ++ 764, 752, 766, 753, 754, 755, 757, 755, 766, 760, ++ 755, 769, 772, 768, 755, 769, 773, 755, 770, 770, ++ 771, 771, 774, 772, 755, 755, 775, 755, 779, 776, ++ 778, 780, 783, 779, 773, 776, 774, 781, 782, 789, ++ 784, 804, 782, 786, 784, 804, 775, 777, 777, 777, ++ 778, 777, 780, 785, 777, 781, 783, 788, 785, 777, ++ 784, 85, 786, 787, 789, 777, 777, 790, 787, 791, ++ 790, 792, 788, 794, 791, 791, 793, 793, 792, 795, ++ 796, 796, 797, 798, 795, 799, 798, 797, 794, 802, ++ ++ 799, 800, 800, 801, 803, 801, 805, 807, 806, 808, ++ 808, 802, 813, 809, 812, 807, 810, 811, 811, 814, ++ 817, 817, 80, 803, 813, 815, 805, 806, 809, 816, ++ 810, 815, 812, 818, 816, 820, 821, 822, 818, 818, ++ 820, 814, 821, 823, 826, 824, 825, 826, 827, 823, ++ 824, 828, 825, 832, 827, 831, 822, 829, 829, 828, ++ 830, 830, 833, 831, 834, 835, 836, 833, 834, 837, ++ 838, 832, 835, 839, 839, 841, 842, 842, 844, 846, ++ 843, 847, 848, 841, 836, 837, 843, 849, 846, 838, ++ 847, 850, 849, 851, 852, 853, 851, 844, 854, 852, ++ ++ 850, 855, 856, 858, 858, 859, 848, 857, 860, 853, ++ 855, 862, 857, 857, 863, 856, 861, 866, 864, 866, ++ 859, 864, 868, 854, 870, 861, 871, 860, 869, 864, ++ 867, 867, 863, 869, 872, 862, 873, 874, 875, 876, ++ 877, 878, 879, 868, 877, 870, 871, 875, 884, 880, ++ 883, 881, 882, 891, 872, 880, 885, 874, 873, 878, ++ 881, 879, 876, 886, 882, 887, 883, 884, 888, 886, ++ 885, 889, 891, 887, 890, 890, 889, 892, 893, 894, ++ 895, 896, 888, 897, 898, 900, 899, 893, 895, 901, ++ 902, 900, 903, 904, 905, 901, 906, 892, 903, 894, ++ ++ 909, 896, 906, 898, 902, 897, 899, 904, 908, 907, ++ 910, 911, 908, 912, 905, 907, 911, 913, 913, 909, ++ 914, 915, 910, 917, 918, 916, 914, 915, 916, 919, ++ 910, 920, 921, 921, 912, 919, 922, 918, 923, 924, ++ 925, 917, 924, 923, 926, 925, 925, 929, 927, 928, ++ 928, 920, 927, 930, 922, 924, 931, 924, 932, 926, ++ 934, 931, 935, 938, 939, 937, 941, 941, 942, 929, ++ 944, 944, 942, 930, 945, 943, 935, 932, 937, 947, ++ 967, 967, 948, 938, 934, 939, 940, 950, 946, 940, ++ 943, 940, 946, 949, 947, 940, 948, 940, 949, 945, ++ ++ 951, 950, 940, 952, 953, 951, 951, 940, 955, 954, ++ 957, 956, 952, 954, 958, 959, 956, 960, 953, 958, ++ 961, 962, 957, 955, 972, 954, 956, 963, 970, 959, ++ 962, 964, 971, 963, 961, 965, 964, 966, 960, 968, ++ 969, 965, 972, 966, 968, 974, 969, 976, 980, 975, ++ 970, 971, 973, 973, 975, 977, 980, 974, 973, 979, ++ 973, 976, 978, 978, 979, 981, 973, 977, 982, 983, ++ 984, 973, 973, 986, 985, 987, 989, 990, 973, 986, ++ 987, 981, 982, 988, 991, 992, 993, 993, 983, 984, ++ 985, 995, 994, 990, 989, 988, 994, 998, 997, 999, ++ ++ 998, 1000, 991, 992, 997, 1003, 1000, 1001, 1002, 1004, ++ 1003, 995, 1006, 1007, 1002, 1008, 1010, 1009, 999, 1011, ++ 1001, 1006, 1007, 1009, 1012, 1010, 1013, 1014, 1004, 1012, ++ 1015, 1008, 1016, 1017, 1018, 1020, 1028, 1025, 1011, 1019, ++ 1023, 1014, 1017, 1018, 1016, 1019, 1013, 1021, 1026, 1027, ++ 1015, 1025, 1020, 1021, 1027, 1028, 1023, 1029, 1030, 1031, ++ 1032, 1033, 1036, 1037, 1045, 1032, 1033, 1036, 1026, 1038, ++ 1038, 1029, 1037, 1039, 1031, 1040, 1030, 1041, 1042, 1039, ++ 1045, 1040, 1043, 1046, 1049, 1050, 1041, 1049, 1046, 1046, ++ 1048, 1048, 1051, 1042, 1048, 1043, 1053, 1052, 1054, 1050, ++ ++ 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1056, 1064, 1058, ++ 1060, 1054, 1051, 1052, 1053, 1055, 1067, 1068, 1063, 1059, ++ 1061, 1063, 1057, 1065, 1079, 1066, 1068, 1071, 1065, 1064, ++ 1066, 1069, 1067, 1070, 1073, 1074, 1069, 1075, 1070, 1071, ++ 1073, 1076, 1079, 1075, 1077, 1077, 1078, 1076, 1082, 1080, ++ 1083, 1074, 1080, 1081, 1081, 1078, 1084, 1085, 1086, 1087, ++ 1085, 1088, 1089, 75, 1097, 1087, 1082, 1088, 1089, 1083, ++ 1090, 1086, 1091, 1092, 1094, 1090, 1084, 1091, 1093, 1092, ++ 1094, 1096, 1097, 1093, 1098, 1099, 1096, 1100, 1101, 1101, ++ 1102, 1099, 1100, 1103, 1104, 1105, 1108, 1106, 1107, 1102, ++ ++ 1106, 1107, 1103, 1109, 1098, 1110, 1111, 1108, 1109, 1112, ++ 1113, 1114, 1104, 1118, 1105, 1115, 1113, 1114, 1111, 1116, ++ 1117, 1117, 1119, 1110, 1116, 1120, 1121, 1122, 1112, 1123, ++ 1115, 1122, 1118, 1124, 1125, 1126, 1119, 1120, 1128, 1129, ++ 1129, 1130, 1124, 1131, 1121, 1132, 1133, 1123, 1131, 1130, ++ 1132, 1135, 1136, 1125, 1138, 1139, 1137, 1128, 1141, 1138, ++ 1126, 1140, 1140, 1142, 1139, 1135, 1133, 1136, 1137, 1142, ++ 1143, 1144, 1145, 1146, 1147, 1146, 1143, 1145, 1141, 1147, ++ 1148, 1149, 1151, 1150, 1152, 1153, 1154, 1144, 1150, 1155, ++ 1157, 1157, 1153, 1158, 1148, 1149, 1159, 1151, 1160, 1161, ++ ++ 1162, 1154, 1165, 1152, 1167, 1161, 1165, 1158, 1155, 1167, ++ 1163, 1166, 1166, 1160, 1159, 1163, 1168, 1168, 1169, 1170, ++ 1162, 1172, 1174, 1173, 1163, 1169, 1163, 1171, 1176, 1163, ++ 1171, 1174, 1175, 1170, 1177, 1179, 1181, 1175, 1178, 1180, ++ 1172, 1173, 1186, 1178, 1183, 1183, 1177, 1176, 1184, 1179, ++ 1180, 1185, 1187, 1184, 1188, 1181, 1185, 1187, 1188, 1189, ++ 1190, 1191, 1186, 1192, 1194, 1195, 1193, 1197, 1189, 1193, ++ 1198, 1196, 1195, 1201, 1199, 1190, 1191, 1203, 1193, 1194, ++ 1204, 1200, 1192, 1196, 1202, 1205, 1197, 1200, 1201, 1206, ++ 1202, 1198, 1199, 1207, 1205, 1208, 1209, 1203, 1210, 1211, ++ ++ 1204, 1213, 1212, 1215, 1206, 1216, 1219, 1208, 1212, 1215, ++ 1217, 1218, 1207, 1220, 1211, 1209, 1222, 1221, 1224, 1218, ++ 1216, 1213, 1221, 1210, 1217, 1223, 1219, 1225, 1222, 1220, ++ 1223, 1223, 1226, 1227, 1227, 1229, 1231, 1224, 1232, 1232, ++ 1230, 1225, 1231, 1239, 1234, 1226, 1228, 1228, 1229, 1230, ++ 1235, 1228, 1233, 1234, 1228, 1228, 1235, 1233, 1236, 1228, ++ 1242, 1237, 74, 1236, 1239, 1228, 1237, 1238, 1238, 1228, ++ 1240, 1240, 1241, 1243, 1245, 1241, 1244, 1241, 1246, 1247, ++ 1242, 1248, 1244, 1245, 1247, 1249, 1250, 1251, 1254, 1252, ++ 1255, 1243, 1250, 1251, 1252, 1248, 1253, 1256, 1246, 1255, ++ ++ 1253, 1254, 1256, 1249, 1255, 1257, 1255, 1260, 1255, 1263, ++ 1255, 1258, 1258, 1259, 1259, 1264, 1259, 1262, 1260, 1257, ++ 1265, 1262, 1266, 1267, 1263, 1268, 1269, 1266, 1266, 1265, ++ 1270, 1269, 1267, 1264, 1271, 1272, 1273, 1274, 1277, 1275, ++ 1276, 1276, 1278, 1271, 1270, 1275, 1277, 1268, 1279, 1280, ++ 1281, 1274, 1283, 1279, 1272, 1273, 1278, 1282, 1284, 1281, ++ 1285, 1286, 1286, 1280, 1282, 1285, 1287, 1288, 1288, 1289, ++ 1283, 1289, 1291, 1292, 1293, 1291, 1294, 1296, 1292, 1295, ++ 1295, 1287, 1300, 1284, 1301, 1294, 1297, 1297, 1298, 1298, ++ 1299, 1302, 1305, 1293, 1304, 1299, 1307, 1296, 1303, 1303, ++ ++ 1308, 1306, 1309, 1300, 1306, 1301, 1308, 1309, 1310, 1305, ++ 1312, 1311, 1302, 1311, 1304, 1314, 1307, 1310, 1314, 1315, ++ 1316, 1317, 1318, 1319, 1320, 1316, 1325, 1318, 1312, 1320, ++ 1321, 1319, 1322, 1321, 1315, 1317, 1324, 1322, 1323, 1323, ++ 1326, 1324, 1327, 1328, 1325, 1330, 1326, 1331, 1334, 1327, ++ 1332, 1330, 1333, 1331, 1334, 1332, 1328, 1333, 1335, 1336, ++ 1337, 1338, 1338, 1339, 1341, 1343, 1342, 1335, 1345, 1341, ++ 1344, 1337, 1346, 1347, 1348, 1343, 1349, 1352, 1336, 1347, ++ 1348, 1351, 1349, 1339, 1342, 1344, 1353, 1351, 1345, 1354, ++ 1355, 1352, 1357, 1356, 1359, 1346, 1360, 1352, 1358, 1358, ++ ++ 1361, 1364, 1355, 1362, 1363, 1363, 1353, 1356, 1362, 1354, ++ 1357, 1365, 1367, 1372, 1359, 1369, 1365, 1368, 1361, 1370, ++ 1373, 1360, 1368, 1368, 1364, 1374, 1371, 1372, 1370, 1376, ++ 1377, 1367, 1377, 1369, 1371, 1373, 1375, 1378, 1376, 1380, ++ 1374, 1375, 1381, 1374, 1375, 1380, 1381, 1382, 1383, 1384, ++ 1387, 1378, 1386, 1383, 1383, 1387, 1388, 1389, 1382, 1390, ++ 1391, 1388, 1392, 1394, 1400, 1391, 1395, 1396, 1384, 1398, ++ 1386, 1397, 1397, 1398, 1399, 1389, 1402, 1394, 1403, 1390, ++ 1401, 1404, 1392, 1400, 1395, 1396, 1401, 1405, 1402, 1406, ++ 1407, 1408, 1399, 1409, 1403, 1410, 1412, 1413, 1409, 1418, ++ ++ 1404, 1405, 1410, 1411, 1406, 1407, 1414, 1416, 1411, 68, ++ 1408, 1415, 1415, 1422, 1412, 1414, 1417, 1420, 1413, 1418, ++ 1419, 1419, 1416, 1420, 1421, 1417, 1426, 1422, 1423, 1423, ++ 1421, 1424, 1424, 1425, 1427, 1428, 1438, 1429, 1430, 1425, ++ 1428, 1431, 1426, 1429, 1430, 1432, 1432, 1431, 1433, 1433, ++ 1435, 1435, 1436, 1437, 1438, 1427, 1436, 1439, 1440, 1441, ++ 1442, 1444, 1437, 1443, 1443, 1445, 1446, 1442, 1447, 1439, ++ 1448, 1446, 1440, 1445, 1441, 1451, 1452, 1452, 1449, 1453, ++ 1450, 1444, 1447, 1449, 1449, 1450, 1450, 1454, 1455, 1448, ++ 1457, 1456, 1458, 1459, 1460, 1451, 1456, 1455, 1453, 1461, ++ ++ 1460, 1462, 1463, 1465, 1461, 1468, 1454, 1464, 1466, 1457, ++ 1467, 1459, 1458, 1464, 1466, 1469, 1467, 1470, 1471, 1472, ++ 1474, 1462, 1465, 1477, 1468, 1473, 1477, 1475, 1463, 1476, ++ 1476, 1478, 1479, 1480, 1469, 1483, 1470, 1471, 1472, 1473, ++ 1483, 1474, 1475, 1481, 1481, 1480, 1482, 1482, 1484, 1485, ++ 1478, 1479, 1484, 1487, 1486, 1488, 1492, 1488, 1490, 1491, ++ 1493, 1488, 1485, 1486, 1491, 1494, 1487, 1495, 1495, 1498, ++ 1496, 1492, 1497, 1499, 1488, 1496, 1490, 1500, 1497, 1501, ++ 1493, 1494, 1500, 1501, 1498, 1502, 1499, 1503, 1504, 1502, ++ 1505, 1506, 1507, 1508, 1508, 1510, 1512, 1513, 1507, 1505, ++ ++ 1514, 1514, 1513, 1515, 1516, 1520, 1504, 1503, 1520, 1515, ++ 1522, 1506, 1523, 1510, 1518, 1518, 1524, 1512, 1521, 1521, ++ 1526, 1527, 1529, 1526, 1516, 1528, 1522, 1530, 1523, 1531, ++ 1531, 1529, 1524, 1532, 1533, 1534, 1535, 1536, 1537, 1537, ++ 1538, 1535, 1527, 1539, 1540, 1528, 1541, 1530, 1532, 1538, ++ 1542, 1536, 1543, 1543, 1534, 1533, 1545, 1546, 1544, 1540, ++ 1547, 1539, 1546, 1548, 1548, 1549, 1550, 1551, 1551, 1549, ++ 1542, 1541, 1544, 1552, 1545, 1547, 1554, 1553, 1555, 1556, ++ 1557, 1561, 1555, 1559, 1559, 1557, 1550, 1554, 1560, 1563, ++ 1564, 1560, 1562, 1565, 1561, 1552, 1553, 1562, 1556, 1566, ++ ++ 1567, 1568, 1569, 1569, 1570, 1563, 1574, 1565, 1564, 1570, ++ 1571, 1572, 1573, 1573, 1567, 1574, 1575, 1576, 1566, 1566, ++ 1577, 1575, 1577, 1578, 1580, 1583, 1568, 1579, 1578, 1581, ++ 1571, 1572, 1585, 1579, 1589, 1581, 1586, 1576, 1588, 1583, ++ 1584, 1584, 1586, 1588, 1580, 1590, 1590, 1591, 1591, 1592, ++ 1593, 1585, 1594, 1595, 1596, 1596, 1595, 1597, 1589, 1598, ++ 1599, 1607, 1603, 1592, 1601, 1603, 1600, 1594, 1593, 1600, ++ 1601, 1598, 1600, 1602, 1605, 1597, 1608, 1606, 1602, 1608, ++ 1599, 1603, 1606, 1605, 1600, 1610, 1607, 1609, 1609, 1611, ++ 1615, 1610, 1612, 1613, 1613, 1611, 1615, 1612, 1614, 1614, ++ ++ 1616, 1617, 1618, 1619, 1620, 1616, 1621, 1622, 1627, 1621, ++ 1623, 1624, 1632, 1622, 1617, 1626, 1623, 1624, 1625, 1631, ++ 1618, 1626, 1619, 1625, 1620, 1628, 1629, 1629, 1630, 1633, ++ 1628, 1627, 1632, 1630, 1634, 1635, 1636, 1631, 1637, 1638, ++ 1639, 1640, 1641, 1642, 1641, 1640, 1643, 1645, 1633, 1635, ++ 1636, 1646, 1637, 1643, 1634, 1647, 1649, 1638, 1648, 1645, ++ 1651, 1650, 1642, 1646, 1648, 1639, 1653, 1652, 1647, 1655, ++ 1655, 1656, 1658, 1657, 1659, 1659, 1649, 1650, 1657, 1660, ++ 1651, 1652, 1661, 1662, 1658, 1663, 1664, 1653, 63, 1665, ++ 1666, 1656, 1668, 1667, 1660, 1664, 1661, 1666, 1670, 1672, ++ ++ 1674, 1674, 1667, 1663, 1665, 1667, 1673, 1662, 1668, 1673, ++ 1675, 1675, 1677, 1670, 1676, 1680, 1678, 1681, 1670, 1678, ++ 1679, 1679, 1682, 1685, 1672, 1686, 1676, 1682, 1680, 1683, ++ 1677, 1687, 1683, 1684, 1688, 1689, 1681, 1690, 1684, 1691, ++ 1687, 1686, 1685, 1693, 1689, 1691, 1690, 1689, 1692, 1692, ++ 1693, 1694, 1695, 1688, 1696, 1697, 1699, 1698, 1700, 1704, ++ 1705, 1699, 1699, 1700, 1701, 1695, 1706, 1706, 1708, 1697, ++ 1707, 1694, 1696, 1698, 1709, 1713, 1701, 1708, 1705, 1709, ++ 1710, 1710, 1711, 1712, 1704, 1714, 1707, 1715, 1712, 1718, ++ 1720, 1711, 1716, 1713, 1711, 1710, 1719, 1716, 1716, 1721, ++ ++ 1723, 1722, 1731, 1718, 1721, 1715, 1714, 1722, 1724, 1724, ++ 1725, 1719, 1720, 1727, 1726, 1728, 1725, 1729, 1723, 1726, ++ 1732, 1728, 1731, 1729, 1733, 1734, 1735, 1727, 1738, 1735, ++ 1733, 1736, 1740, 1741, 1732, 1735, 1738, 1736, 1734, 1742, ++ 1743, 1744, 1746, 1748, 1745, 1747, 1744, 1749, 1743, 1750, ++ 58, 1740, 1741, 1745, 1747, 1746, 1748, 1756, 1742, 1751, ++ 1751, 1749, 1752, 1750, 1753, 1754, 1755, 1755, 1752, 1757, ++ 1753, 1758, 1759, 1759, 1761, 1760, 1762, 1756, 1754, 1763, ++ 1761, 1751, 1764, 1766, 1766, 1767, 1769, 1757, 1760, 1768, ++ 1758, 1769, 1770, 1768, 1771, 1763, 1772, 1773, 1762, 1771, ++ ++ 1764, 1772, 1774, 1776, 1777, 1767, 1773, 1778, 1779, 1780, ++ 1778, 1782, 1770, 1777, 1776, 1781, 1781, 1783, 1784, 1786, ++ 1779, 1785, 1785, 1788, 1780, 1774, 1789, 1787, 1791, 1783, ++ 1782, 1792, 1794, 1786, 1787, 1788, 1793, 1784, 1789, 1795, ++ 1796, 1843, 1793, 1802, 1794, 1843, 1796, 1791, 1797, 1797, ++ 1798, 1792, 1802, 1798, 1799, 1799, 1801, 1795, 1803, 1804, ++ 1804, 1801, 1805, 1806, 1803, 1806, 1807, 1808, 1809, 1807, ++ 1810, 1811, 1812, 1813, 1805, 1814, 1817, 1812, 1813, 1815, ++ 1816, 1817, 1819, 1818, 1814, 1822, 57, 1808, 1810, 1811, ++ 1809, 1815, 1818, 1821, 1820, 1816, 1823, 1823, 1821, 1820, ++ ++ 1822, 1824, 1819, 1825, 1827, 1818, 1820, 1824, 1828, 1829, ++ 1830, 1831, 1832, 1831, 1833, 1833, 1834, 1834, 1835, 1835, ++ 1836, 1837, 1837, 1827, 1825, 1829, 1832, 1828, 1832, 1839, ++ 1830, 1838, 1838, 1840, 1841, 1842, 1842, 1844, 1845, 1847, ++ 1836, 1845, 1848, 1844, 1850, 1847, 1849, 1851, 1852, 1850, ++ 1839, 1852, 1849, 1854, 1840, 1841, 1853, 1853, 1855, 1857, ++ 1848, 1856, 1856, 1855, 1858, 1859, 1860, 1861, 1861, 1866, ++ 1859, 1860, 1851, 1854, 1857, 1862, 1863, 1864, 1865, 1867, ++ 1862, 1869, 1863, 1872, 52, 1858, 1868, 1866, 1871, 1864, ++ 1864, 1864, 1868, 1871, 1871, 1873, 1864, 1872, 1865, 1867, ++ ++ 1874, 1869, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1882, ++ 1873, 1877, 1881, 1881, 1875, 1878, 1883, 1883, 1884, 1876, ++ 1885, 1886, 1886, 1887, 1887, 1888, 1892, 1879, 1893, 1880, ++ 1891, 1891, 1895, 1896, 1897, 1882, 1898, 1893, 1884, 1900, ++ 1897, 1895, 1885, 1899, 1899, 1888, 1901, 1903, 1902, 1904, ++ 1906, 1892, 1898, 1907, 1896, 1902, 1903, 1905, 1905, 1909, ++ 1900, 1901, 1910, 1912, 1911, 1909, 1913, 1910, 1914, 1907, ++ 1911, 1917, 1918, 1913, 1914, 1904, 1906, 1915, 1918, 1915, ++ 1919, 1919, 1920, 1912, 1921, 1922, 1924, 1920, 1923, 1925, ++ 1917, 1926, 1925, 1921, 1927, 1928, 1928, 1929, 1924, 1931, ++ ++ 1930, 1932, 1935, 1929, 1933, 1922, 1930, 1923, 1933, 1926, ++ 1936, 1939, 1937, 1938, 1938, 1942, 1932, 1937, 1940, 1931, ++ 1927, 1943, 1935, 1945, 1933, 1943, 1944, 1944, 1946, 1945, ++ 1939, 1951, 1936, 1940, 1942, 1947, 1947, 1946, 1948, 1949, ++ 1950, 1950, 1948, 1952, 1953, 1955, 1954, 1956, 1957, 1960, ++ 1949, 1954, 1951, 1958, 1959, 1949, 1961, 1952, 1962, 1958, ++ 1969, 1961, 1965, 1953, 1960, 1955, 1965, 1956, 1957, 1963, ++ 1963, 1962, 1959, 1964, 1964, 1967, 1968, 1970, 1970, 1974, ++ 1969, 1972, 1972, 1973, 1967, 1974, 1977, 1968, 1973, 1973, ++ 1976, 1979, 1968, 1978, 1980, 1982, 1976, 1983, 1978, 1984, ++ ++ 1980, 1983, 1986, 1979, 1985, 1985, 1988, 1982, 1987, 1989, ++ 1991, 1984, 1977, 1992, 1987, 1989, 1990, 1990, 1993, 1994, ++ 1996, 1997, 2030, 1993, 2004, 1998, 2030, 1986, 1988, 1991, ++ 1998, 1994, 1996, 1992, 2000, 2001, 2001, 2000, 2002, 2002, ++ 1997, 2003, 2003, 2005, 2004, 2006, 2009, 2007, 2008, 2005, ++ 2014, 2006, 2007, 2011, 2008, 2009, 2013, 2017, 2011, 2013, ++ 2015, 2015, 2014, 2018, 2021, 2019, 2020, 2020, 2026, 2017, ++ 2019, 2022, 2023, 2021, 2027, 2018, 2022, 2023, 2024, 2025, ++ 2025, 2024, 2028, 2027, 2029, 2031, 2032, 2033, 2026, 2034, ++ 2031, 2035, 2032, 2036, 2038, 2038, 2039, 2041, 2034, 2040, ++ ++ 2028, 2042, 2042, 2029, 2043, 2033, 2038, 2036, 2040, 2035, ++ 2044, 2045, 2047, 2043, 2039, 2046, 2057, 2041, 2050, 2050, ++ 2046, 2052, 2044, 2053, 2052, 2047, 2054, 2055, 2059, 2060, ++ 2058, 2057, 2045, 2063, 2059, 2061, 2061, 2065, 2062, 2053, ++ 2062, 2070, 2054, 2055, 2058, 2065, 2060, 2064, 2064, 2067, ++ 2067, 2063, 2068, 2068, 2071, 2072, 2073, 2075, 2074, 2078, ++ 2071, 2072, 2076, 2079, 2070, 2074, 2077, 2077, 2078, 2080, ++ 2073, 2081, 2082, 2083, 2084, 2085, 2088, 2090, 2089, 2075, ++ 2086, 2080, 2076, 2081, 2079, 2083, 2086, 2082, 2092, 2090, ++ 2085, 2091, 2091, 2093, 2094, 2096, 2088, 2094, 2095, 2086, ++ ++ 2084, 2089, 2098, 2095, 2100, 2102, 2092, 2098, 2099, 2101, ++ 2099, 2104, 2102, 2093, 2101, 2096, 2106, 2107, 2108, 2109, ++ 2104, 2109, 2100, 2110, 2114, 2111, 2107, 2113, 2116, 2113, ++ 2108, 2111, 2115, 2115, 2106, 2117, 2119, 2118, 2114, 2118, ++ 2117, 2119, 2110, 2120, 2121, 2122, 2123, 2124, 2120, 2127, ++ 2125, 2126, 2128, 2124, 2116, 2125, 2131, 2128, 2128, 2129, ++ 2132, 2127, 2121, 2122, 2126, 2135, 2123, 2129, 2133, 2133, ++ 2134, 2134, 2136, 2137, 2132, 2131, 2138, 2140, 2141, 2137, ++ 2135, 2138, 2139, 47, 2139, 2143, 2141, 2142, 2142, 2144, ++ 2144, 2146, 2136, 2148, 2141, 2140, 2147, 2143, 2145, 2145, ++ ++ 2146, 2147, 2151, 2150, 2151, 2152, 2154, 2155, 2153, 2156, ++ 2158, 2148, 2150, 2153, 2153, 2150, 2155, 2162, 2154, 2159, ++ 2160, 2156, 2158, 2163, 2159, 2160, 2152, 2164, 2165, 2165, ++ 2162, 2166, 2167, 2168, 2170, 2173, 2164, 2169, 2171, 2172, ++ 2173, 2177, 2178, 2163, 2175, 2176, 18, 2178, 2186, 2166, ++ 2167, 2168, 2171, 2169, 2172, 2179, 2175, 2176, 2180, 2170, ++ 2179, 2177, 2183, 2185, 2187, 2188, 2189, 2180, 2183, 2185, ++ 2194, 2186, 2202, 2190, 2191, 2191, 2192, 2193, 2193, 2187, ++ 2195, 2183, 2190, 2188, 2197, 2192, 2196, 2198, 2194, 2197, ++ 2196, 2189, 2200, 2206, 2202, 2201, 2206, 2203, 2204, 2195, ++ ++ 2198, 2201, 2203, 2203, 2204, 2207, 2205, 2208, 2211, 2211, ++ 2213, 2200, 2205, 2207, 2212, 2212, 2214, 2214, 2216, 2213, ++ 2215, 2215, 2218, 2217, 2220, 2220, 2219, 2208, 2218, 2212, ++ 2216, 2219, 2221, 2221, 2222, 2226, 2223, 2228, 2230, 2222, ++ 2212, 2217, 2223, 2225, 2227, 2231, 2232, 2225, 2227, 2233, ++ 2231, 2234, 2235, 2237, 2238, 2226, 2234, 2228, 2236, 2238, ++ 2239, 2240, 2240, 2230, 2233, 2242, 2244, 2241, 2245, 2232, ++ 2235, 2241, 2243, 2237, 2236, 2246, 2247, 2243, 2248, 2250, ++ 2242, 2249, 2239, 2248, 2251, 2251, 2245, 2246, 2253, 2254, ++ 2255, 2256, 2244, 2257, 2249, 2247, 2253, 2250, 2258, 2259, ++ ++ 2260, 2261, 2262, 2268, 2265, 2263, 2269, 2267, 2254, 2255, ++ 2256, 2263, 2269, 2261, 2271, 17, 2257, 2268, 2259, 2265, ++ 2267, 2260, 2258, 2262, 2270, 2273, 2270, 2272, 2272, 2274, ++ 2273, 2275, 2274, 2276, 2271, 2277, 2278, 2278, 2279, 2279, ++ 2280, 2282, 2280, 2285, 2275, 2281, 2281, 2276, 2277, 2283, ++ 2284, 2284, 2285, 2286, 2286, 2285, 2282, 2287, 2287, 2288, ++ 2290, 2291, 2283, 2292, 2288, 2290, 2293, 2294, 2294, 2295, ++ 2295, 2296, 2297, 2297, 2298, 2299, 2299, 2301, 2293, 2300, ++ 2305, 2291, 2301, 2292, 2302, 2302, 2303, 2303, 2304, 2305, ++ 2296, 2306, 2298, 2307, 2300, 2308, 2310, 2311, 2311, 2312, ++ ++ 0, 2310, 2304, 2313, 2313, 2314, 2315, 2307, 2306, 2316, ++ 2317, 2315, 2320, 2317, 2308, 2316, 2318, 2318, 2312, 2319, ++ 2319, 2321, 2322, 2314, 2322, 2324, 2325, 2326, 2326, 2328, ++ 2329, 2320, 2318, 2330, 2331, 2333, 2321, 2335, 2331, 2334, ++ 2324, 2332, 2332, 2336, 2334, 2325, 2338, 2338, 2330, 2328, ++ 2339, 2341, 2335, 2329, 2333, 2340, 2342, 2343, 2336, 2344, ++ 2345, 2345, 2340, 2346, 2347, 2341, 2347, 2350, 2348, 2351, ++ 2339, 2348, 2346, 2350, 2342, 2343, 2354, 2352, 2353, 2355, ++ 2358, 2351, 2352, 2353, 2356, 2344, 2348, 2363, 2348, 2357, ++ 2360, 2361, 2355, 2362, 2357, 2360, 2361, 2364, 2362, 2366, ++ ++ 2367, 2354, 2363, 2364, 2365, 2356, 2358, 2368, 2371, 2369, ++ 2365, 2370, 2372, 2368, 2369, 2367, 2370, 2374, 2373, 2375, ++ 2366, 2373, 2376, 2377, 2378, 2372, 2374, 2383, 2375, 2379, ++ 2380, 2376, 2377, 2371, 2385, 2379, 2380, 2381, 2378, 2386, ++ 2388, 2381, 2387, 2387, 2389, 2389, 2388, 2383, 2386, 2390, ++ 2391, 2391, 2392, 2389, 2385, 2393, 2395, 2392, 2390, 2398, ++ 2396, 2397, 2397, 2402, 2399, 2403, 2401, 2406, 2408, 2404, ++ 2406, 2409, 2395, 2399, 2398, 2393, 2396, 2393, 2401, 2402, ++ 2403, 2404, 2407, 2409, 2410, 2410, 2420, 2407, 2408, 2411, ++ 2411, 2413, 2413, 2414, 2415, 2416, 2414, 2417, 2418, 2415, ++ ++ 2420, 2416, 2422, 2417, 2419, 2419, 2423, 2418, 2421, 2421, ++ 2424, 2425, 2425, 2426, 2422, 2431, 2427, 2428, 2431, 2426, ++ 2423, 2430, 2428, 2432, 2432, 2430, 2433, 2434, 2435, 2424, ++ 2427, 2433, 2436, 2439, 2437, 2442, 2434, 2435, 2437, 2438, ++ 2438, 2443, 2441, 2444, 2445, 2446, 2439, 2441, 2447, 2446, ++ 2453, 2448, 2436, 2449, 2450, 2442, 2448, 2452, 2445, 2449, ++ 2450, 2443, 2454, 2444, 2451, 2451, 2455, 2456, 2447, 2453, ++ 2459, 2455, 2457, 2457, 2460, 2452, 2463, 2466, 2461, 2462, ++ 2468, 2454, 2459, 2461, 2463, 2462, 2466, 2464, 2456, 2464, ++ 2460, 2469, 2469, 2470, 2468, 2471, 2470, 2472, 2472, 2475, ++ ++ 2476, 2477, 2479, 2475, 2478, 2478, 2476, 2482, 2482, 2484, ++ 2486, 2479, 2487, 2477, 2490, 2491, 2492, 2493, 2494, 2490, ++ 2500, 2471, 2493, 2494, 2486, 2495, 2495, 2484, 2487, 2497, ++ 2497, 2502, 2499, 2501, 2501, 2503, 2506, 2492, 2499, 2504, ++ 2500, 2491, 2507, 2512, 2504, 2507, 2508, 2502, 2509, 2510, ++ 2510, 2514, 2512, 2513, 2519, 2506, 2515, 2503, 2508, 2513, ++ 2509, 2517, 2517, 2518, 2520, 2524, 2518, 2522, 2522, 2514, ++ 2524, 2515, 2525, 2519, 2523, 2523, 2526, 2528, 2527, 2528, ++ 2529, 2530, 2520, 2527, 2531, 2526, 2532, 2533, 2534, 0, ++ 2525, 2532, 2535, 2541, 2529, 2530, 2531, 2535, 2536, 2536, ++ ++ 2537, 2537, 2538, 2538, 2539, 2539, 2540, 2533, 2534, 2542, ++ 2546, 2541, 2543, 2543, 2542, 2544, 2544, 2547, 2540, 2545, ++ 2545, 2548, 2546, 2549, 2550, 2551, 2552, 2552, 2553, 2554, ++ 2554, 2555, 2555, 2548, 2560, 2556, 2557, 2547, 2559, 2561, ++ 2562, 2551, 2558, 2549, 2561, 2550, 2556, 2553, 2557, 2558, ++ 2559, 2563, 2564, 2564, 2560, 2565, 2566, 2566, 2567, 2568, ++ 2562, 2569, 2570, 2571, 2565, 2572, 2573, 2576, 2573, 2574, ++ 2577, 2563, 2575, 2575, 2569, 2578, 2576, 2571, 2580, 2568, ++ 2581, 2574, 2582, 2584, 2567, 2577, 2570, 2572, 2583, 2585, ++ 2578, 2583, 0, 2586, 2585, 2594, 2580, 2584, 2586, 2587, ++ ++ 2587, 2595, 2581, 2588, 2588, 2582, 2589, 2589, 2591, 2591, ++ 2593, 2593, 2595, 2594, 2596, 2597, 2599, 2600, 2601, 2602, ++ 2603, 2604, 2605, 2606, 2605, 2613, 2607, 2608, 2612, 2603, ++ 2597, 2609, 2609, 2596, 0, 2600, 2599, 2611, 2611, 2602, ++ 2601, 2604, 2612, 2606, 2607, 2608, 2614, 2613, 2615, 2615, ++ 2617, 2618, 2618, 2619, 2620, 2614, 2621, 2622, 2623, 2617, ++ 2624, 2625, 2628, 2627, 2622, 2626, 2629, 2629, 2631, 2628, ++ 0, 2619, 2620, 2623, 2621, 2630, 2630, 2632, 2624, 2625, ++ 2633, 2626, 2627, 2635, 2635, 2637, 2633, 2638, 2631, 2636, ++ 2636, 2637, 2639, 2640, 2641, 2632, 2642, 2643, 2644, 2645, ++ ++ 2646, 2642, 2646, 2651, 2645, 2638, 2656, 2639, 2641, 2647, ++ 2647, 2648, 2640, 2648, 2649, 2649, 2653, 2643, 2644, 2654, ++ 2655, 2659, 2651, 2657, 2658, 2653, 2656, 2660, 2657, 2658, ++ 2663, 2664, 2655, 2665, 2666, 2666, 2665, 2667, 2654, 2668, ++ 2670, 2659, 2669, 2669, 2671, 2674, 2660, 2676, 2676, 2664, ++ 2663, 2670, 2667, 2677, 2672, 2679, 2680, 2668, 2672, 2671, ++ 2674, 2675, 2681, 2682, 2682, 2675, 2677, 2684, 2685, 2686, ++ 2679, 2687, 2687, 2686, 2688, 2691, 2680, 2685, 2690, 2684, ++ 2689, 2689, 2681, 2690, 2691, 2692, 2693, 2694, 2695, 2695, ++ 2700, 2700, 2701, 2688, 2702, 2702, 2703, 2704, 2693, 2705, ++ ++ 2710, 2692, 2706, 2711, 2707, 2750, 2708, 2694, 2750, 2703, ++ 2704, 2706, 2705, 2707, 2701, 2708, 2709, 2709, 2711, 2716, ++ 2710, 2713, 2713, 2717, 2716, 2718, 2719, 2720, 2717, 2721, ++ 2723, 2719, 2722, 2733, 2725, 2720, 2729, 2727, 2723, 2718, ++ 2728, 2722, 2727, 2730, 2730, 2728, 2731, 2731, 2721, 2725, ++ 2732, 2729, 2733, 2734, 2734, 2732, 2735, 2736, 2737, 2738, ++ 2739, 0, 2736, 2735, 2740, 2742, 2739, 2741, 2741, 2740, ++ 2743, 2744, 2744, 2745, 2745, 2743, 2737, 2738, 2748, 2751, ++ 2742, 2749, 2749, 2752, 2751, 2751, 2754, 2753, 2752, 2755, ++ 2756, 2748, 2753, 2757, 2756, 2755, 2758, 2759, 2757, 2760, ++ ++ 2754, 2761, 2762, 2763, 2765, 2758, 2764, 2760, 2762, 2763, ++ 2767, 2764, 2759, 2768, 2771, 2776, 2765, 2767, 2768, 2773, ++ 2769, 2777, 2761, 2769, 2773, 2774, 2771, 2775, 2778, 2779, ++ 2774, 2781, 2775, 2776, 2777, 2780, 2780, 2778, 2779, 2782, ++ 2781, 2785, 2786, 2787, 2782, 2790, 2791, 2794, 2786, 2787, ++ 2792, 2793, 2793, 2795, 2794, 2797, 2796, 2798, 2798, 2785, ++ 2799, 2801, 2803, 2804, 2790, 2796, 2791, 2804, 2806, 2792, ++ 2797, 2807, 2795, 2805, 2805, 2808, 2801, 2807, 2809, 2799, ++ 2810, 2808, 2803, 2811, 2811, 2813, 2810, 2812, 2816, 2814, ++ 2817, 2822, 2819, 2806, 2814, 2812, 2809, 2816, 2819, 2820, ++ ++ 2821, 2823, 2820, 2817, 2821, 2822, 2825, 2825, 2826, 2836, ++ 2813, 2827, 2827, 2828, 2828, 2831, 2823, 2830, 2830, 2831, ++ 2832, 2834, 2834, 2837, 2838, 2832, 2826, 2839, 2837, 2836, ++ 2840, 2842, 2839, 2839, 2843, 2843, 2838, 2845, 2845, 2846, ++ 2846, 2849, 2840, 2847, 2847, 2848, 2850, 2853, 2848, 2852, ++ 2852, 2842, 2855, 2859, 2849, 2856, 2856, 2857, 2857, 2850, ++ 2858, 2858, 2860, 2860, 2861, 2853, 2862, 2863, 2859, 2864, ++ 2865, 2865, 2855, 2869, 2866, 2864, 2873, 2861, 2866, 2869, ++ 2870, 2863, 2872, 2874, 2862, 2870, 2875, 2872, 2872, 2876, ++ 2877, 2878, 2888, 2879, 2942, 2876, 2877, 2879, 2942, 2873, ++ ++ 2880, 2880, 2883, 2874, 2885, 2886, 2875, 2883, 2886, 2891, ++ 2889, 2893, 2885, 2889, 2890, 2890, 2878, 2888, 2892, 2894, ++ 2895, 2896, 2896, 2892, 2897, 2898, 2891, 2891, 2898, 2893, ++ 2899, 2900, 2901, 2904, 2895, 2911, 2898, 2902, 2897, 2894, ++ 2901, 2903, 2902, 2902, 2899, 2913, 2903, 2903, 2905, 2905, ++ 2900, 2911, 2904, 2906, 2906, 2907, 2907, 2908, 2908, 2909, ++ 2909, 2910, 2910, 2912, 2914, 2913, 2915, 2916, 2912, 2917, ++ 2918, 2920, 2916, 2919, 2921, 2918, 2923, 2923, 2924, 2924, ++ 2915, 2925, 2919, 2926, 2925, 2928, 2928, 2939, 2917, 2929, ++ 2914, 2920, 2930, 2930, 2921, 2931, 2929, 2933, 2933, 2934, ++ ++ 2931, 2926, 2935, 2936, 2937, 2939, 2940, 2940, 2934, 2941, ++ 2941, 2935, 2936, 2937, 2943, 2944, 2945, 2946, 2948, 2947, ++ 2949, 2959, 2950, 2943, 2947, 2947, 2950, 2945, 2954, 2949, ++ 2958, 2948, 2946, 2954, 2944, 2955, 2955, 2957, 2957, 2960, ++ 2962, 2962, 2963, 2964, 2958, 2968, 2959, 2969, 2972, 2970, ++ 2973, 2963, 2969, 2975, 2977, 2964, 2973, 2960, 2970, 2979, ++ 2982, 2980, 2981, 2981, 2979, 2975, 2980, 2984, 2972, 2982, ++ 2968, 2985, 2984, 2986, 2992, 2977, 2987, 2987, 2989, 2989, ++ 2987, 2990, 2990, 2992, 2985, 2991, 2991, 2986, 2993, 2995, ++ 2994, 2997, 3001, 2998, 2995, 2999, 3003, 2997, 2998, 3002, ++ ++ 2999, 3000, 3000, 3005, 3007, 3008, 3008, 3004, 2993, 2994, ++ 3001, 3002, 3004, 3006, 3010, 3011, 3014, 3003, 3010, 3006, ++ 3011, 3005, 3012, 3013, 3013, 3015, 3016, 3012, 3018, 3007, ++ 3020, 3020, 3022, 3023, 3024, 3014, 3028, 3027, 3025, 3030, ++ 3015, 3016, 3025, 3026, 3030, 3022, 3023, 3024, 3018, 3029, ++ 3031, 3033, 3026, 3027, 3034, 3028, 3035, 3029, 3032, 3032, ++ 3033, 3036, 3036, 3043, 3037, 3040, 3040, 3041, 3041, 3047, ++ 3031, 3048, 3034, 3045, 3045, 3049, 3050, 3054, 3054, 3055, ++ 3049, 3051, 3035, 3037, 3043, 3047, 3051, 3048, 3056, 3057, ++ 3058, 3059, 3050, 3061, 3061, 3057, 3063, 3056, 3062, 3055, ++ ++ 3064, 3064, 3067, 3068, 3071, 3074, 3069, 3072, 3072, 3068, ++ 3059, 3069, 3062, 3058, 3075, 3063, 3073, 3073, 3076, 3076, ++ 3074, 3077, 3067, 3079, 3078, 3080, 3071, 3081, 3082, 3083, ++ 3085, 3080, 3077, 3078, 3075, 3084, 3084, 3093, 3076, 3086, ++ 3082, 3087, 3086, 3079, 3087, 3085, 3081, 3088, 3088, 3083, ++ 3092, 3098, 3094, 3095, 3095, 3097, 3096, 3093, 3094, 3096, ++ 3100, 3097, 3092, 3101, 3101, 3100, 3102, 3103, 3104, 3098, ++ 3105, 3102, 3106, 3106, 3104, 3109, 3110, 3108, 3111, 3112, ++ 3112, 3113, 3114, 3115, 3117, 3117, 3103, 3105, 3105, 3108, ++ 0, 3111, 3115, 3109, 3118, 3118, 3119, 3119, 3114, 3120, ++ ++ 3113, 3110, 3121, 3122, 3120, 3123, 3123, 3127, 3122, 3124, ++ 3124, 3125, 3125, 3126, 3126, 3128, 3121, 3129, 3135, 3130, ++ 3127, 3132, 3132, 3129, 3130, 3137, 3138, 3139, 3140, 3141, ++ 3141, 3143, 3143, 3144, 3145, 3146, 3147, 3135, 3149, 3149, ++ 3153, 3128, 3148, 3150, 3150, 3154, 3139, 3137, 3138, 3146, ++ 3140, 3148, 3152, 3145, 3158, 3164, 3147, 3155, 3152, 3144, ++ 3153, 3164, 3155, 3163, 3154, 3159, 3159, 3161, 3161, 3162, ++ 3165, 3166, 3167, 3167, 3162, 3158, 3168, 3163, 3171, 3166, ++ 3170, 3168, 3165, 3171, 3170, 3172, 3173, 3174, 3175, 3176, ++ 3178, 3179, 3174, 3180, 3181, 3176, 3184, 3183, 3178, 3185, ++ ++ 3175, 3186, 3187, 3189, 3190, 3172, 3173, 3187, 3189, 3194, ++ 3179, 0, 3184, 3180, 3181, 3183, 3185, 3185, 3192, 3191, ++ 3196, 3208, 3186, 3192, 3190, 3191, 3208, 3195, 3209, 3194, ++ 3195, 3200, 3200, 3196, 3201, 3201, 3202, 3207, 3207, 0, ++ 3202, 3210, 3210, 3212, 3212, 3213, 3213, 3209, 3213, 3214, ++ 3214, 3220, 3214, 3215, 3215, 3216, 3216, 3217, 3216, 3219, ++ 3220, 3217, 3221, 3221, 3219, 3222, 3223, 3226, 3227, 3228, ++ 3229, 3229, 3230, 3233, 3228, 3234, 3236, 3235, 3237, 3239, ++ 3223, 3235, 3234, 3222, 3240, 3236, 3242, 3226, 3227, 3240, ++ 3241, 3241, 3230, 3237, 3246, 3242, 3251, 3239, 3233, 3243, ++ ++ 3243, 3244, 3244, 3245, 3245, 3247, 3248, 3249, 3250, 3246, ++ 3247, 3252, 3249, 3249, 3250, 3248, 3253, 3254, 3248, 3255, ++ 3256, 3251, 3254, 3258, 3255, 3259, 3252, 3257, 3257, 3258, ++ 3262, 3259, 3260, 3260, 3261, 3261, 3263, 3253, 0, 3256, ++ 3269, 3263, 3266, 3266, 3281, 3262, 3268, 3268, 0, 3269, ++ 3272, 3272, 3273, 3273, 3274, 3274, 3275, 3275, 3277, 3277, ++ 3278, 3278, 3279, 3279, 3280, 3280, 3283, 3284, 3284, 3285, ++ 3281, 3286, 3287, 3289, 3289, 3283, 3290, 3293, 3285, 3291, ++ 3291, 3292, 3294, 3286, 3295, 3295, 3296, 3296, 3298, 3302, ++ 3293, 3304, 3287, 3306, 3294, 3290, 3292, 3299, 3299, 3303, ++ ++ 3305, 3305, 3303, 3298, 3309, 3308, 3310, 3302, 3308, 3311, ++ 3309, 3306, 3312, 3314, 3311, 3313, 3316, 3304, 3317, 3320, ++ 3310, 3321, 3316, 3320, 3324, 3333, 3336, 3317, 3342, 3314, ++ 3333, 3312, 3334, 3313, 3345, 3334, 3321, 3337, 3337, 3336, ++ 3338, 3338, 3340, 3340, 3343, 3344, 3347, 3349, 3350, 3344, ++ 3324, 3342, 3351, 3343, 3345, 3355, 3352, 3351, 3352, 3350, ++ 3347, 3353, 3354, 3354, 3356, 3358, 3357, 3359, 3355, 3361, ++ 3349, 3360, 3363, 3362, 3364, 3365, 3353, 3363, 3361, 3367, ++ 3365, 3358, 3372, 3356, 3357, 3362, 3360, 3366, 3366, 3368, ++ 3373, 3375, 3359, 3380, 3368, 3364, 3372, 3374, 3374, 3367, ++ ++ 3375, 3376, 3376, 3377, 3377, 3378, 3378, 3379, 3379, 3381, ++ 3373, 3382, 3380, 3383, 3382, 3384, 3385, 3386, 3383, 3387, ++ 3384, 3388, 3389, 3390, 3392, 3387, 3391, 3391, 3390, 3381, ++ 3393, 3393, 3386, 3396, 3389, 3388, 3395, 3395, 3397, 3398, ++ 3398, 3385, 3402, 3400, 3392, 3405, 3405, 3407, 3396, 3406, ++ 3406, 3408, 3411, 3409, 3412, 3407, 3410, 3397, 3400, 3409, ++ 3402, 3413, 3410, 3414, 3415, 3415, 3411, 3412, 3414, 3420, ++ 3408, 3417, 3417, 3421, 3423, 3424, 3426, 3427, 3428, 3424, ++ 3413, 3429, 3427, 3431, 3432, 3430, 3433, 3437, 3423, 3432, ++ 3420, 3433, 3438, 3421, 3429, 3439, 3426, 3428, 3430, 3434, ++ ++ 3434, 3441, 3431, 3440, 3440, 3442, 3441, 3437, 3443, 3443, ++ 3438, 3442, 3444, 3445, 3439, 3446, 3447, 3444, 3445, 3448, ++ 3446, 3450, 3450, 3451, 3455, 3448, 3452, 3452, 3451, 3454, ++ 3456, 3457, 3458, 3454, 3459, 3447, 3460, 3456, 3468, 3461, ++ 3459, 3463, 3463, 3455, 3465, 3465, 3469, 3466, 3467, 3470, ++ 3457, 3458, 3461, 3467, 3473, 3460, 3466, 3468, 3472, 3466, ++ 3471, 3471, 3470, 3472, 3475, 3469, 3477, 3473, 3476, 3476, ++ 3478, 3478, 3479, 3479, 3480, 3481, 3482, 3483, 3483, 3480, ++ 0, 3484, 3481, 3486, 3486, 3477, 3484, 3485, 3489, 3485, ++ 3475, 3487, 3488, 3491, 3494, 3482, 3490, 3498, 3487, 3488, ++ ++ 3496, 3490, 3493, 3493, 3497, 3496, 3499, 3489, 3503, 3497, ++ 3500, 3500, 3491, 3494, 3502, 3502, 3498, 3504, 3505, 3505, ++ 3506, 3506, 3507, 3509, 3509, 3499, 3511, 3503, 3517, 3507, ++ 3510, 3510, 3513, 3511, 3516, 3518, 3504, 3513, 0, 3516, ++ 3519, 3519, 3520, 3520, 0, 0, 0, 3517, 0, 0, ++ 0, 0, 0, 0, 3518, 3524, 3524, 3524, 3524, 3524, ++ 3524, 3524, 3525, 3525, 3525, 3525, 3525, 3525, 3525, 3526, ++ 3526, 3526, 3526, 3526, 3526, 3526, 3527, 3527, 3527, 3527, ++ 3527, 3527, 3527, 3528, 3528, 3528, 3528, 3528, 3528, 3528, ++ 3529, 3529, 3529, 3529, 3529, 3529, 3529, 3530, 3530, 3530, ++ ++ 3530, 3530, 3530, 3530, 3532, 3532, 0, 3532, 3532, 3532, ++ 3532, 3533, 3533, 0, 0, 0, 3533, 3533, 3534, 3534, ++ 0, 0, 3534, 0, 3534, 3535, 0, 0, 0, 0, ++ 0, 3535, 3536, 3536, 0, 0, 0, 3536, 3536, 3537, ++ 0, 0, 0, 0, 0, 3537, 3538, 3538, 0, 3538, ++ 3538, 3538, 3538, 3539, 0, 0, 0, 0, 0, 3539, ++ 3540, 3540, 0, 0, 0, 3540, 3540, 3541, 3541, 0, ++ 3541, 3541, 3541, 3541, 3523, 3523, 3523, 3523, 3523, 3523, ++ 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, ++ 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, ++ ++ 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, ++ 3523, 3523, 3523, 3523, 3523 } ; static yy_state_type yy_last_accepting_state; @@@ -3302,18 -2849,18 +3316,18 @@@ static void config_end_include(void } #endif - #line 3303 "" -#line 2851 "" ++#line 3317 "" #define YY_NO_INPUT 1 -#line 185 "./util/configlexer.lex" +#line 191 "./util/configlexer.lex" #ifndef YY_NO_UNPUT #define YY_NO_UNPUT 1 #endif #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif - #line 3312 "" -#line 2860 "" ++#line 3326 "" - #line 3314 "" -#line 2862 "" ++#line 3328 "" #define INITIAL 0 #define quotedstring 1 @@@ -3535,9 -3080,9 +3549,9 @@@ YY_DEC } { -#line 205 "./util/configlexer.lex" +#line 211 "./util/configlexer.lex" - #line 3538 "" -#line 3084 "" ++#line 3552 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@@ -3570,13 -3115,13 +3584,13 @@@ yy_match while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 3508 ) - if ( yy_current_state >= 2921 ) ++ if ( yy_current_state >= 3524 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 6844 ); - while ( yy_base[yy_current_state] != 5700 ); ++ while ( yy_base[yy_current_state] != 6875 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@@ -4957,323 -4285,268 +4971,328 @@@ YY_RULE_SETU { YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK -case 227: +case 270: YY_RULE_SETUP -#line 442 "./util/configlexer.lex" +#line 493 "./util/configlexer.lex" { YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK -case 228: +case 271: YY_RULE_SETUP -#line 443 "./util/configlexer.lex" +#line 494 "./util/configlexer.lex" { YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK -case 229: +case 272: YY_RULE_SETUP -#line 444 "./util/configlexer.lex" +#line 495 "./util/configlexer.lex" { YDVAR(1, VAR_RATELIMIT) } YY_BREAK -case 230: +case 273: YY_RULE_SETUP -#line 445 "./util/configlexer.lex" +#line 496 "./util/configlexer.lex" { YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK -case 231: +case 274: YY_RULE_SETUP -#line 446 "./util/configlexer.lex" +#line 497 "./util/configlexer.lex" { YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK -case 232: +case 275: YY_RULE_SETUP -#line 447 "./util/configlexer.lex" +#line 498 "./util/configlexer.lex" { YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK -case 233: +case 276: YY_RULE_SETUP -#line 448 "./util/configlexer.lex" +#line 499 "./util/configlexer.lex" { YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK -case 234: +case 277: YY_RULE_SETUP -#line 449 "./util/configlexer.lex" +#line 500 "./util/configlexer.lex" { YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK -case 235: +case 278: YY_RULE_SETUP -#line 450 "./util/configlexer.lex" +#line 501 "./util/configlexer.lex" { YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK -case 236: +case 279: YY_RULE_SETUP -#line 451 "./util/configlexer.lex" +#line 502 "./util/configlexer.lex" { YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK -case 237: +case 280: YY_RULE_SETUP -#line 452 "./util/configlexer.lex" +#line 503 "./util/configlexer.lex" { YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK -case 238: +case 281: YY_RULE_SETUP -#line 453 "./util/configlexer.lex" +#line 504 "./util/configlexer.lex" - { YDVAR(1, VAR_LOW_RTT) } + { YDVAR(1, VAR_OUTBOUND_MSG_RETRY) } YY_BREAK -case 239: +case 282: YY_RULE_SETUP -#line 454 "./util/configlexer.lex" +#line 505 "./util/configlexer.lex" - { YDVAR(1, VAR_FAST_SERVER_NUM) } + { YDVAR(1, VAR_LOW_RTT) } YY_BREAK -case 240: +case 283: YY_RULE_SETUP -#line 455 "./util/configlexer.lex" +#line 506 "./util/configlexer.lex" - { YDVAR(1, VAR_FAST_SERVER_PERMIL) } + { YDVAR(1, VAR_FAST_SERVER_NUM) } YY_BREAK -case 241: +case 284: YY_RULE_SETUP -#line 456 "./util/configlexer.lex" +#line 507 "./util/configlexer.lex" { YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK -case 242: +case 285: YY_RULE_SETUP -#line 457 "./util/configlexer.lex" +#line 508 "./util/configlexer.lex" { YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK -case 243: +case 286: YY_RULE_SETUP -#line 458 "./util/configlexer.lex" +#line 509 "./util/configlexer.lex" - { YDVAR(2, VAR_RESPONSE_IP_TAG) } + { YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK -case 244: +case 287: YY_RULE_SETUP -#line 459 "./util/configlexer.lex" +#line 510 "./util/configlexer.lex" - { YDVAR(2, VAR_RESPONSE_IP) } + { YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK -case 245: +case 288: YY_RULE_SETUP -#line 460 "./util/configlexer.lex" +#line 511 "./util/configlexer.lex" - { YDVAR(2, VAR_RESPONSE_IP_DATA) } + { YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK -case 246: +case 289: YY_RULE_SETUP -#line 461 "./util/configlexer.lex" +#line 512 "./util/configlexer.lex" - { YDVAR(0, VAR_DNSCRYPT) } + { YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK -case 247: +case 290: YY_RULE_SETUP -#line 462 "./util/configlexer.lex" +#line 513 "./util/configlexer.lex" - { YDVAR(1, VAR_DNSCRYPT_ENABLE) } + { YDVAR(0, VAR_DNSCRYPT) } YY_BREAK -case 248: +case 291: YY_RULE_SETUP -#line 463 "./util/configlexer.lex" +#line 514 "./util/configlexer.lex" - { YDVAR(1, VAR_DNSCRYPT_PORT) } + { YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK -case 249: +case 292: YY_RULE_SETUP -#line 464 "./util/configlexer.lex" +#line 515 "./util/configlexer.lex" - { YDVAR(1, VAR_DNSCRYPT_PROVIDER) } + { YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK -case 250: +case 293: YY_RULE_SETUP -#line 465 "./util/configlexer.lex" +#line 516 "./util/configlexer.lex" - { YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } + { YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK -case 251: +case 294: YY_RULE_SETUP -#line 466 "./util/configlexer.lex" +#line 517 "./util/configlexer.lex" - { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } + { YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK -case 252: +case 295: YY_RULE_SETUP -#line 467 "./util/configlexer.lex" +#line 518 "./util/configlexer.lex" - { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } + { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK -case 253: +case 296: YY_RULE_SETUP -#line 468 "./util/configlexer.lex" +#line 519 "./util/configlexer.lex" - { - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } + { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK -case 254: +case 297: YY_RULE_SETUP - #line 521 "./util/configlexer.lex" -#line 469 "./util/configlexer.lex" ++#line 520 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK -case 255: +case 298: YY_RULE_SETUP - #line 523 "./util/configlexer.lex" - { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } -#line 471 "./util/configlexer.lex" ++#line 522 "./util/configlexer.lex" + { + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK -case 256: +case 299: YY_RULE_SETUP -#line 473 "./util/configlexer.lex" +#line 524 "./util/configlexer.lex" - { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } + { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK -case 257: +case 300: YY_RULE_SETUP -#line 474 "./util/configlexer.lex" +#line 525 "./util/configlexer.lex" - { YDVAR(1, VAR_PAD_RESPONSES) } + { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK -case 258: +case 301: YY_RULE_SETUP -#line 475 "./util/configlexer.lex" +#line 526 "./util/configlexer.lex" - { YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } ++{ YDVAR(1, VAR_PAD_RESPONSES) } + YY_BREAK +case 302: +YY_RULE_SETUP +#line 527 "./util/configlexer.lex" - { YDVAR(1, VAR_PAD_QUERIES) } ++{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } + YY_BREAK +case 303: +YY_RULE_SETUP +#line 528 "./util/configlexer.lex" - { YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } ++{ YDVAR(1, VAR_PAD_QUERIES) } + YY_BREAK +case 304: +YY_RULE_SETUP +#line 529 "./util/configlexer.lex" - { YDVAR(1, VAR_IPSECMOD_ENABLED) } ++{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } + YY_BREAK +case 305: +YY_RULE_SETUP +#line 530 "./util/configlexer.lex" - { YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } + { YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK -case 259: +case 306: YY_RULE_SETUP -#line 476 "./util/configlexer.lex" +#line 531 "./util/configlexer.lex" - { YDVAR(1, VAR_IPSECMOD_HOOK) } + { YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK -case 260: +case 307: YY_RULE_SETUP -#line 477 "./util/configlexer.lex" +#line 532 "./util/configlexer.lex" - { YDVAR(1, VAR_IPSECMOD_MAX_TTL) } + { YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK -case 261: +case 308: YY_RULE_SETUP -#line 478 "./util/configlexer.lex" +#line 533 "./util/configlexer.lex" - { YDVAR(1, VAR_IPSECMOD_WHITELIST) } + { YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK -case 262: +case 309: YY_RULE_SETUP -#line 479 "./util/configlexer.lex" +#line 534 "./util/configlexer.lex" { YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK -case 263: +case 310: YY_RULE_SETUP -#line 480 "./util/configlexer.lex" +#line 535 "./util/configlexer.lex" - { YDVAR(1, VAR_IPSECMOD_STRICT) } ++{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } + YY_BREAK +case 311: +YY_RULE_SETUP +#line 536 "./util/configlexer.lex" - { YDVAR(0, VAR_CACHEDB) } + { YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK -case 264: +case 312: YY_RULE_SETUP -#line 481 "./util/configlexer.lex" +#line 537 "./util/configlexer.lex" - { YDVAR(1, VAR_CACHEDB_BACKEND) } + { YDVAR(0, VAR_CACHEDB) } YY_BREAK -case 265: +case 313: YY_RULE_SETUP -#line 482 "./util/configlexer.lex" +#line 538 "./util/configlexer.lex" - { YDVAR(1, VAR_CACHEDB_SECRETSEED) } + { YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK -case 266: +case 314: YY_RULE_SETUP -#line 483 "./util/configlexer.lex" +#line 539 "./util/configlexer.lex" - { YDVAR(1, VAR_CACHEDB_REDISHOST) } + { YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK -case 267: +case 315: YY_RULE_SETUP -#line 484 "./util/configlexer.lex" +#line 540 "./util/configlexer.lex" - { YDVAR(1, VAR_CACHEDB_REDISPORT) } + { YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK -case 268: +case 316: YY_RULE_SETUP -#line 485 "./util/configlexer.lex" +#line 541 "./util/configlexer.lex" - { YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } + { YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK -case 269: +case 317: YY_RULE_SETUP -#line 486 "./util/configlexer.lex" +#line 542 "./util/configlexer.lex" - { YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } + { YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK -case 270: +case 318: YY_RULE_SETUP -#line 487 "./util/configlexer.lex" +#line 543 "./util/configlexer.lex" - { YDVAR(0, VAR_IPSET) } ++{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } + YY_BREAK +case 319: +YY_RULE_SETUP +#line 544 "./util/configlexer.lex" - { YDVAR(1, VAR_IPSET_NAME_V4) } ++{ YDVAR(0, VAR_IPSET) } + YY_BREAK +case 320: +YY_RULE_SETUP +#line 545 "./util/configlexer.lex" - { YDVAR(1, VAR_IPSET_NAME_V6) } ++{ YDVAR(1, VAR_IPSET_NAME_V4) } + YY_BREAK +case 321: +YY_RULE_SETUP +#line 546 "./util/configlexer.lex" - { YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } ++{ YDVAR(1, VAR_IPSET_NAME_V6) } + YY_BREAK +case 322: +YY_RULE_SETUP +#line 547 "./util/configlexer.lex" - { YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } + { YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } YY_BREAK -case 271: +case 323: YY_RULE_SETUP -#line 488 "./util/configlexer.lex" +#line 548 "./util/configlexer.lex" - { YDVAR(2, VAR_EDNS_CLIENT_STRING) } + { YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } YY_BREAK -case 272: -/* rule 272 can match eol */ +case 324: YY_RULE_SETUP -#line 489 "./util/configlexer.lex" +#line 549 "./util/configlexer.lex" - { YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } ++{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } + YY_BREAK +case 325: +YY_RULE_SETUP +#line 550 "./util/configlexer.lex" - { YDVAR(1, VAR_NSID ) } ++{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } + YY_BREAK +case 326: - /* rule 326 can match eol */ +YY_RULE_SETUP +#line 551 "./util/configlexer.lex" ++{ YDVAR(1, VAR_NSID ) } ++ YY_BREAK ++case 327: ++/* rule 327 can match eol */ ++YY_RULE_SETUP ++#line 552 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ - case 327: -case 273: ++case 328: YY_RULE_SETUP - #line 554 "./util/configlexer.lex" -#line 492 "./util/configlexer.lex" ++#line 555 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): - #line 555 "./util/configlexer.lex" -#line 493 "./util/configlexer.lex" ++#line 556 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK - case 328: -case 274: ++case 329: YY_RULE_SETUP - #line 560 "./util/configlexer.lex" -#line 498 "./util/configlexer.lex" ++#line 561 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK - case 329: - /* rule 329 can match eol */ -case 275: -/* rule 275 can match eol */ ++case 330: ++/* rule 330 can match eol */ YY_RULE_SETUP - #line 561 "./util/configlexer.lex" -#line 499 "./util/configlexer.lex" ++#line 562 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK - case 330: -case 276: ++case 331: YY_RULE_SETUP - #line 563 "./util/configlexer.lex" -#line 501 "./util/configlexer.lex" ++#line 564 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@@ -5286,34 -4559,34 +5305,34 @@@ } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ - case 331: -case 277: ++case 332: YY_RULE_SETUP - #line 575 "./util/configlexer.lex" -#line 513 "./util/configlexer.lex" ++#line 576 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): - #line 576 "./util/configlexer.lex" -#line 514 "./util/configlexer.lex" ++#line 577 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK - case 332: -case 278: ++case 333: YY_RULE_SETUP - #line 581 "./util/configlexer.lex" -#line 519 "./util/configlexer.lex" ++#line 582 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK - case 333: - /* rule 333 can match eol */ -case 279: -/* rule 279 can match eol */ ++case 334: ++/* rule 334 can match eol */ YY_RULE_SETUP - #line 582 "./util/configlexer.lex" -#line 520 "./util/configlexer.lex" ++#line 583 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK - case 334: -case 280: ++case 335: YY_RULE_SETUP - #line 584 "./util/configlexer.lex" -#line 522 "./util/configlexer.lex" ++#line 585 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@@ -5326,66 -4599,66 +5345,66 @@@ } YY_BREAK /* include: directive */ - case 335: -case 281: ++case 336: YY_RULE_SETUP - #line 596 "./util/configlexer.lex" -#line 534 "./util/configlexer.lex" ++#line 597 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): - #line 598 "./util/configlexer.lex" -#line 536 "./util/configlexer.lex" ++#line 599 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK - case 336: - YY_RULE_SETUP - #line 602 "./util/configlexer.lex" - { LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK -case 282: +case 337: - /* rule 337 can match eol */ YY_RULE_SETUP -#line 540 "./util/configlexer.lex" +#line 603 "./util/configlexer.lex" - { LEXOUT(("NL\n")); cfg_parser->line++;} + { LEXOUT(("ISP ")); /* ignore */ } YY_BREAK -case 283: -/* rule 283 can match eol */ +case 338: ++/* rule 338 can match eol */ YY_RULE_SETUP -#line 541 "./util/configlexer.lex" +#line 604 "./util/configlexer.lex" - { LEXOUT(("IQS ")); BEGIN(include_quoted); } + { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK -case 284: +case 339: YY_RULE_SETUP -#line 542 "./util/configlexer.lex" +#line 605 "./util/configlexer.lex" + { LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK -case 285: ++case 340: + YY_RULE_SETUP -#line 543 "./util/configlexer.lex" ++#line 606 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); - config_start_include_glob(yytext); + config_start_include_glob(yytext, 0); BEGIN(inc_prev); } YY_BREAK case YY_STATE_EOF(include_quoted): - #line 610 "./util/configlexer.lex" -#line 548 "./util/configlexer.lex" ++#line 611 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK - case 340: -case 286: ++case 341: YY_RULE_SETUP - #line 614 "./util/configlexer.lex" -#line 552 "./util/configlexer.lex" ++#line 615 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK - case 341: - /* rule 341 can match eol */ -case 287: -/* rule 287 can match eol */ ++case 342: ++/* rule 342 can match eol */ YY_RULE_SETUP - #line 615 "./util/configlexer.lex" -#line 553 "./util/configlexer.lex" ++#line 616 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK - case 342: -case 288: ++case 343: YY_RULE_SETUP - #line 617 "./util/configlexer.lex" -#line 555 "./util/configlexer.lex" ++#line 618 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@@ -5395,7 -4668,7 +5414,7 @@@ YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): - #line 623 "./util/configlexer.lex" -#line 561 "./util/configlexer.lex" ++#line 624 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@@ -5409,106 -4680,33 +5428,106 @@@ } } YY_BREAK -case 289: +/* include-toplevel: directive */ - case 343: ++case 344: +YY_RULE_SETUP - #line 637 "./util/configlexer.lex" ++#line 638 "./util/configlexer.lex" +{ + LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); +} + YY_BREAK +case YY_STATE_EOF(include_toplevel): - #line 640 "./util/configlexer.lex" ++#line 641 "./util/configlexer.lex" +{ + yyerror("EOF inside include_toplevel directive"); + BEGIN(inc_prev); +} + YY_BREAK - case 344: - YY_RULE_SETUP - #line 644 "./util/configlexer.lex" - { LEXOUT(("ITSP ")); /* ignore */ } - YY_BREAK +case 345: - /* rule 345 can match eol */ YY_RULE_SETUP -#line 572 "./util/configlexer.lex" +#line 645 "./util/configlexer.lex" - { LEXOUT(("NL\n")); cfg_parser->line++; } ++{ LEXOUT(("ITSP ")); /* ignore */ } + YY_BREAK +case 346: ++/* rule 346 can match eol */ +YY_RULE_SETUP +#line 646 "./util/configlexer.lex" - { LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } ++{ LEXOUT(("NL\n")); cfg_parser->line++; } + YY_BREAK +case 347: +YY_RULE_SETUP +#line 647 "./util/configlexer.lex" ++{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } ++ YY_BREAK ++case 348: ++YY_RULE_SETUP ++#line 648 "./util/configlexer.lex" +{ + LEXOUT(("ITunquotedstr(%s) ", yytext)); + config_start_include_glob(yytext, 1); + BEGIN(inc_prev); + return (VAR_FORCE_TOPLEVEL); +} + YY_BREAK +case YY_STATE_EOF(include_toplevel_quoted): - #line 653 "./util/configlexer.lex" ++#line 654 "./util/configlexer.lex" +{ + yyerror("EOF inside quoted string"); + BEGIN(inc_prev); +} + YY_BREAK - case 348: ++case 349: +YY_RULE_SETUP - #line 657 "./util/configlexer.lex" ++#line 658 "./util/configlexer.lex" +{ LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } + YY_BREAK - case 349: - /* rule 349 can match eol */ ++case 350: ++/* rule 350 can match eol */ +YY_RULE_SETUP - #line 658 "./util/configlexer.lex" ++#line 659 "./util/configlexer.lex" +{ + yyerror("newline before \" in include name"); + cfg_parser->line++; BEGIN(inc_prev); +} + YY_BREAK - case 350: ++case 351: +YY_RULE_SETUP - #line 662 "./util/configlexer.lex" ++#line 663 "./util/configlexer.lex" +{ + LEXOUT(("ITQE ")); + yytext[yyleng - 1] = '\0'; + config_start_include_glob(yytext, 1); + BEGIN(inc_prev); + return (VAR_FORCE_TOPLEVEL); +} + YY_BREAK - case 351: ++case 352: +YY_RULE_SETUP - #line 670 "./util/configlexer.lex" ++#line 671 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK - case 352: -case 290: ++case 353: YY_RULE_SETUP - #line 674 "./util/configlexer.lex" -#line 576 "./util/configlexer.lex" ++#line 675 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK - case 353: -case 291: ++case 354: YY_RULE_SETUP - #line 678 "./util/configlexer.lex" -#line 580 "./util/configlexer.lex" ++#line 679 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK - case 354: -case 292: ++case 355: YY_RULE_SETUP - #line 682 "./util/configlexer.lex" -#line 584 "./util/configlexer.lex" ++#line 683 "./util/configlexer.lex" ECHO; YY_BREAK - #line 5509 "" -#line 4708 "" ++#line 5528 "" case YY_END_OF_BUFFER: { @@@ -5803,7 -5001,7 +5822,7 @@@ static int yy_get_next_buffer (void while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 3508 ) - if ( yy_current_state >= 2921 ) ++ if ( yy_current_state >= 3524 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@@ -5831,11 -5029,11 +5850,11 @@@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 3508 ) - if ( yy_current_state >= 2921 ) ++ if ( yy_current_state >= 3524 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 3507); - yy_is_jam = (yy_current_state == 2920); ++ yy_is_jam = (yy_current_state == 3523); return yy_is_jam ? 0 : yy_current_state; } @@@ -6474,6 -5672,6 +6493,6 @@@ void yyfree (void * ptr #define YYTABLES_NAME "yytables" - #line 682 "./util/configlexer.lex" -#line 584 "./util/configlexer.lex" ++#line 683 "./util/configlexer.lex" diff --cc util/configparser.c index 317bc2ad5,9b50af3f1..f4613971b --- a/util/configparser.c +++ b/util/configparser.c @@@ -136,334 -126,274 +136,335 @@@ extern int yydebug # define YYTOKENTYPE enum yytokentype { - SPACE = 258, - LETTER = 259, - NEWLINE = 260, - COMMENT = 261, - COLON = 262, - ANY = 263, - ZONESTR = 264, - STRING_ARG = 265, - VAR_SERVER = 266, - VAR_VERBOSITY = 267, - VAR_NUM_THREADS = 268, - VAR_PORT = 269, - VAR_OUTGOING_RANGE = 270, - VAR_INTERFACE = 271, - VAR_DO_IP4 = 272, - VAR_DO_IP6 = 273, - VAR_PREFER_IP6 = 274, - VAR_DO_UDP = 275, - VAR_DO_TCP = 276, - VAR_TCP_MSS = 277, - VAR_OUTGOING_TCP_MSS = 278, - VAR_TCP_IDLE_TIMEOUT = 279, - VAR_EDNS_TCP_KEEPALIVE = 280, - VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 281, - VAR_CHROOT = 282, - VAR_USERNAME = 283, - VAR_DIRECTORY = 284, - VAR_LOGFILE = 285, - VAR_PIDFILE = 286, - VAR_MSG_CACHE_SIZE = 287, - VAR_MSG_CACHE_SLABS = 288, - VAR_NUM_QUERIES_PER_THREAD = 289, - VAR_RRSET_CACHE_SIZE = 290, - VAR_RRSET_CACHE_SLABS = 291, - VAR_OUTGOING_NUM_TCP = 292, - VAR_INFRA_HOST_TTL = 293, - VAR_INFRA_LAME_TTL = 294, - VAR_INFRA_CACHE_SLABS = 295, - VAR_INFRA_CACHE_NUMHOSTS = 296, - VAR_INFRA_CACHE_LAME_SIZE = 297, - VAR_NAME = 298, - VAR_STUB_ZONE = 299, - VAR_STUB_HOST = 300, - VAR_STUB_ADDR = 301, - VAR_TARGET_FETCH_POLICY = 302, - VAR_HARDEN_SHORT_BUFSIZE = 303, - VAR_HARDEN_LARGE_QUERIES = 304, - VAR_FORWARD_ZONE = 305, - VAR_FORWARD_HOST = 306, - VAR_FORWARD_ADDR = 307, - VAR_DO_NOT_QUERY_ADDRESS = 308, - VAR_HIDE_IDENTITY = 309, - VAR_HIDE_VERSION = 310, - VAR_IDENTITY = 311, - VAR_VERSION = 312, - VAR_HARDEN_GLUE = 313, - VAR_MODULE_CONF = 314, - VAR_TRUST_ANCHOR_FILE = 315, - VAR_TRUST_ANCHOR = 316, - VAR_VAL_OVERRIDE_DATE = 317, - VAR_BOGUS_TTL = 318, - VAR_VAL_CLEAN_ADDITIONAL = 319, - VAR_VAL_PERMISSIVE_MODE = 320, - VAR_INCOMING_NUM_TCP = 321, - VAR_MSG_BUFFER_SIZE = 322, - VAR_KEY_CACHE_SIZE = 323, - VAR_KEY_CACHE_SLABS = 324, - VAR_TRUSTED_KEYS_FILE = 325, - VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 326, - VAR_USE_SYSLOG = 327, - VAR_OUTGOING_INTERFACE = 328, - VAR_ROOT_HINTS = 329, - VAR_DO_NOT_QUERY_LOCALHOST = 330, - VAR_CACHE_MAX_TTL = 331, - VAR_HARDEN_DNSSEC_STRIPPED = 332, - VAR_ACCESS_CONTROL = 333, - VAR_LOCAL_ZONE = 334, - VAR_LOCAL_DATA = 335, - VAR_INTERFACE_AUTOMATIC = 336, - VAR_STATISTICS_INTERVAL = 337, - VAR_DO_DAEMONIZE = 338, - VAR_USE_CAPS_FOR_ID = 339, - VAR_STATISTICS_CUMULATIVE = 340, - VAR_OUTGOING_PORT_PERMIT = 341, - VAR_OUTGOING_PORT_AVOID = 342, - VAR_DLV_ANCHOR_FILE = 343, - VAR_DLV_ANCHOR = 344, - VAR_NEG_CACHE_SIZE = 345, - VAR_HARDEN_REFERRAL_PATH = 346, - VAR_PRIVATE_ADDRESS = 347, - VAR_PRIVATE_DOMAIN = 348, - VAR_REMOTE_CONTROL = 349, - VAR_CONTROL_ENABLE = 350, - VAR_CONTROL_INTERFACE = 351, - VAR_CONTROL_PORT = 352, - VAR_SERVER_KEY_FILE = 353, - VAR_SERVER_CERT_FILE = 354, - VAR_CONTROL_KEY_FILE = 355, - VAR_CONTROL_CERT_FILE = 356, - VAR_CONTROL_USE_CERT = 357, - VAR_EXTENDED_STATISTICS = 358, - VAR_LOCAL_DATA_PTR = 359, - VAR_JOSTLE_TIMEOUT = 360, - VAR_STUB_PRIME = 361, - VAR_UNWANTED_REPLY_THRESHOLD = 362, - VAR_LOG_TIME_ASCII = 363, - VAR_DOMAIN_INSECURE = 364, - VAR_PYTHON = 365, - VAR_PYTHON_SCRIPT = 366, - VAR_VAL_SIG_SKEW_MIN = 367, - VAR_VAL_SIG_SKEW_MAX = 368, - VAR_CACHE_MIN_TTL = 369, - VAR_VAL_LOG_LEVEL = 370, - VAR_AUTO_TRUST_ANCHOR_FILE = 371, - VAR_KEEP_MISSING = 372, - VAR_ADD_HOLDDOWN = 373, - VAR_DEL_HOLDDOWN = 374, - VAR_SO_RCVBUF = 375, - VAR_EDNS_BUFFER_SIZE = 376, - VAR_PREFETCH = 377, - VAR_PREFETCH_KEY = 378, - VAR_SO_SNDBUF = 379, - VAR_SO_REUSEPORT = 380, - VAR_HARDEN_BELOW_NXDOMAIN = 381, - VAR_IGNORE_CD_FLAG = 382, - VAR_LOG_QUERIES = 383, - VAR_LOG_REPLIES = 384, - VAR_LOG_LOCAL_ACTIONS = 385, - VAR_TCP_UPSTREAM = 386, - VAR_SSL_UPSTREAM = 387, - VAR_SSL_SERVICE_KEY = 388, - VAR_SSL_SERVICE_PEM = 389, - VAR_SSL_PORT = 390, - VAR_FORWARD_FIRST = 391, - VAR_STUB_SSL_UPSTREAM = 392, - VAR_FORWARD_SSL_UPSTREAM = 393, - VAR_TLS_CERT_BUNDLE = 394, - VAR_STUB_FIRST = 395, - VAR_MINIMAL_RESPONSES = 396, - VAR_RRSET_ROUNDROBIN = 397, - VAR_MAX_UDP_SIZE = 398, - VAR_DELAY_CLOSE = 399, - VAR_UNBLOCK_LAN_ZONES = 400, - VAR_INSECURE_LAN_ZONES = 401, - VAR_INFRA_CACHE_MIN_RTT = 402, - VAR_DNS64_PREFIX = 403, - VAR_DNS64_SYNTHALL = 404, - VAR_DNS64_IGNORE_AAAA = 405, - VAR_DNSTAP = 406, - VAR_DNSTAP_ENABLE = 407, - VAR_DNSTAP_SOCKET_PATH = 408, - VAR_DNSTAP_SEND_IDENTITY = 409, - VAR_DNSTAP_SEND_VERSION = 410, - VAR_DNSTAP_IDENTITY = 411, - VAR_DNSTAP_VERSION = 412, - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 413, - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 414, - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 415, - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 416, - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 417, - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 418, - VAR_RESPONSE_IP_TAG = 419, - VAR_RESPONSE_IP = 420, - VAR_RESPONSE_IP_DATA = 421, - VAR_HARDEN_ALGO_DOWNGRADE = 422, - VAR_IP_TRANSPARENT = 423, - VAR_DISABLE_DNSSEC_LAME_CHECK = 424, - VAR_IP_RATELIMIT = 425, - VAR_IP_RATELIMIT_SLABS = 426, - VAR_IP_RATELIMIT_SIZE = 427, - VAR_RATELIMIT = 428, - VAR_RATELIMIT_SLABS = 429, - VAR_RATELIMIT_SIZE = 430, - VAR_OUTBOUND_MSG_RETRY = 431, - VAR_RATELIMIT_FOR_DOMAIN = 432, - VAR_RATELIMIT_BELOW_DOMAIN = 433, - VAR_IP_RATELIMIT_FACTOR = 434, - VAR_RATELIMIT_FACTOR = 435, - VAR_SEND_CLIENT_SUBNET = 436, - VAR_CLIENT_SUBNET_ZONE = 437, - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 438, - VAR_CLIENT_SUBNET_OPCODE = 439, - VAR_MAX_CLIENT_SUBNET_IPV4 = 440, - VAR_MAX_CLIENT_SUBNET_IPV6 = 441, - VAR_MIN_CLIENT_SUBNET_IPV4 = 442, - VAR_MIN_CLIENT_SUBNET_IPV6 = 443, - VAR_MAX_ECS_TREE_SIZE_IPV4 = 444, - VAR_MAX_ECS_TREE_SIZE_IPV6 = 445, - VAR_CAPS_WHITELIST = 446, - VAR_CACHE_MAX_NEGATIVE_TTL = 447, - VAR_PERMIT_SMALL_HOLDDOWN = 448, - VAR_QNAME_MINIMISATION = 449, - VAR_QNAME_MINIMISATION_STRICT = 450, - VAR_IP_FREEBIND = 451, - VAR_DEFINE_TAG = 452, - VAR_LOCAL_ZONE_TAG = 453, - VAR_ACCESS_CONTROL_TAG = 454, - VAR_LOCAL_ZONE_OVERRIDE = 455, - VAR_ACCESS_CONTROL_TAG_ACTION = 456, - VAR_ACCESS_CONTROL_TAG_DATA = 457, - VAR_VIEW = 458, - VAR_ACCESS_CONTROL_VIEW = 459, - VAR_VIEW_FIRST = 460, - VAR_SERVE_EXPIRED = 461, - VAR_SERVE_EXPIRED_TTL = 462, - VAR_SERVE_EXPIRED_TTL_RESET = 463, - VAR_FAKE_DSA = 464, - VAR_FAKE_SHA1 = 465, - VAR_LOG_IDENTITY = 466, - VAR_HIDE_TRUSTANCHOR = 467, - VAR_TRUST_ANCHOR_SIGNALING = 468, - VAR_AGGRESSIVE_NSEC = 469, - VAR_USE_SYSTEMD = 470, - VAR_SHM_ENABLE = 471, - VAR_SHM_KEY = 472, - VAR_ROOT_KEY_SENTINEL = 473, - VAR_DNSCRYPT = 474, - VAR_DNSCRYPT_ENABLE = 475, - VAR_DNSCRYPT_PORT = 476, - VAR_DNSCRYPT_PROVIDER = 477, - VAR_DNSCRYPT_SECRET_KEY = 478, - VAR_DNSCRYPT_PROVIDER_CERT = 479, - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 480, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 481, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 482, - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 483, - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 484, - VAR_IPSECMOD_ENABLED = 485, - VAR_IPSECMOD_HOOK = 486, - VAR_IPSECMOD_IGNORE_BOGUS = 487, - VAR_IPSECMOD_MAX_TTL = 488, - VAR_IPSECMOD_WHITELIST = 489, - VAR_IPSECMOD_STRICT = 490, - VAR_CACHEDB = 491, - VAR_CACHEDB_BACKEND = 492, - VAR_CACHEDB_SECRETSEED = 493, - VAR_CACHEDB_REDISHOST = 494, - VAR_CACHEDB_REDISPORT = 495, - VAR_CACHEDB_REDISTIMEOUT = 496, - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 497, - VAR_FOR_UPSTREAM = 498, - VAR_AUTH_ZONE = 499, - VAR_ZONEFILE = 500, - VAR_MASTER = 501, - VAR_URL = 502, - VAR_FOR_DOWNSTREAM = 503, - VAR_FALLBACK_ENABLED = 504, - VAR_TLS_ADDITIONAL_PORT = 505, - VAR_LOW_RTT = 506, - VAR_LOW_RTT_PERMIL = 507, - VAR_FAST_SERVER_PERMIL = 508, - VAR_FAST_SERVER_NUM = 509, - VAR_ALLOW_NOTIFY = 510, - VAR_TLS_WIN_CERT = 511, - VAR_TCP_CONNECTION_LIMIT = 512, - VAR_FORWARD_NO_CACHE = 513, - VAR_STUB_NO_CACHE = 514, - VAR_LOG_SERVFAIL = 515, - VAR_DENY_ANY = 516, - VAR_UNKNOWN_SERVER_TIME_LIMIT = 517, - VAR_LOG_TAG_QUERYREPLY = 518, - VAR_STREAM_WAIT_SIZE = 519, - VAR_TLS_CIPHERS = 520, - VAR_TLS_CIPHERSUITES = 521, - VAR_TLS_SESSION_TICKET_KEYS = 522 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + SPACE = 258, /* SPACE */ + LETTER = 259, /* LETTER */ + NEWLINE = 260, /* NEWLINE */ + COMMENT = 261, /* COMMENT */ + COLON = 262, /* COLON */ + ANY = 263, /* ANY */ + ZONESTR = 264, /* ZONESTR */ + STRING_ARG = 265, /* STRING_ARG */ + VAR_FORCE_TOPLEVEL = 266, /* VAR_FORCE_TOPLEVEL */ + VAR_SERVER = 267, /* VAR_SERVER */ + VAR_VERBOSITY = 268, /* VAR_VERBOSITY */ + VAR_NUM_THREADS = 269, /* VAR_NUM_THREADS */ + VAR_PORT = 270, /* VAR_PORT */ + VAR_OUTGOING_RANGE = 271, /* VAR_OUTGOING_RANGE */ + VAR_INTERFACE = 272, /* VAR_INTERFACE */ + VAR_PREFER_IP4 = 273, /* VAR_PREFER_IP4 */ + VAR_DO_IP4 = 274, /* VAR_DO_IP4 */ + VAR_DO_IP6 = 275, /* VAR_DO_IP6 */ + VAR_PREFER_IP6 = 276, /* VAR_PREFER_IP6 */ + VAR_DO_UDP = 277, /* VAR_DO_UDP */ + VAR_DO_TCP = 278, /* VAR_DO_TCP */ + VAR_TCP_MSS = 279, /* VAR_TCP_MSS */ + VAR_OUTGOING_TCP_MSS = 280, /* VAR_OUTGOING_TCP_MSS */ + VAR_TCP_IDLE_TIMEOUT = 281, /* VAR_TCP_IDLE_TIMEOUT */ + VAR_EDNS_TCP_KEEPALIVE = 282, /* VAR_EDNS_TCP_KEEPALIVE */ + VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ + VAR_CHROOT = 284, /* VAR_CHROOT */ + VAR_USERNAME = 285, /* VAR_USERNAME */ + VAR_DIRECTORY = 286, /* VAR_DIRECTORY */ + VAR_LOGFILE = 287, /* VAR_LOGFILE */ + VAR_PIDFILE = 288, /* VAR_PIDFILE */ + VAR_MSG_CACHE_SIZE = 289, /* VAR_MSG_CACHE_SIZE */ + VAR_MSG_CACHE_SLABS = 290, /* VAR_MSG_CACHE_SLABS */ + VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD */ + VAR_RRSET_CACHE_SIZE = 292, /* VAR_RRSET_CACHE_SIZE */ + VAR_RRSET_CACHE_SLABS = 293, /* VAR_RRSET_CACHE_SLABS */ + VAR_OUTGOING_NUM_TCP = 294, /* VAR_OUTGOING_NUM_TCP */ + VAR_INFRA_HOST_TTL = 295, /* VAR_INFRA_HOST_TTL */ + VAR_INFRA_LAME_TTL = 296, /* VAR_INFRA_LAME_TTL */ + VAR_INFRA_CACHE_SLABS = 297, /* VAR_INFRA_CACHE_SLABS */ + VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS */ + VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE */ + VAR_NAME = 300, /* VAR_NAME */ + VAR_STUB_ZONE = 301, /* VAR_STUB_ZONE */ + VAR_STUB_HOST = 302, /* VAR_STUB_HOST */ + VAR_STUB_ADDR = 303, /* VAR_STUB_ADDR */ + VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY */ + VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE */ + VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES */ + VAR_FORWARD_ZONE = 307, /* VAR_FORWARD_ZONE */ + VAR_FORWARD_HOST = 308, /* VAR_FORWARD_HOST */ + VAR_FORWARD_ADDR = 309, /* VAR_FORWARD_ADDR */ + VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS */ + VAR_HIDE_IDENTITY = 311, /* VAR_HIDE_IDENTITY */ + VAR_HIDE_VERSION = 312, /* VAR_HIDE_VERSION */ + VAR_IDENTITY = 313, /* VAR_IDENTITY */ + VAR_VERSION = 314, /* VAR_VERSION */ + VAR_HARDEN_GLUE = 315, /* VAR_HARDEN_GLUE */ + VAR_MODULE_CONF = 316, /* VAR_MODULE_CONF */ + VAR_TRUST_ANCHOR_FILE = 317, /* VAR_TRUST_ANCHOR_FILE */ + VAR_TRUST_ANCHOR = 318, /* VAR_TRUST_ANCHOR */ + VAR_VAL_OVERRIDE_DATE = 319, /* VAR_VAL_OVERRIDE_DATE */ + VAR_BOGUS_TTL = 320, /* VAR_BOGUS_TTL */ + VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL */ + VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE */ + VAR_INCOMING_NUM_TCP = 323, /* VAR_INCOMING_NUM_TCP */ + VAR_MSG_BUFFER_SIZE = 324, /* VAR_MSG_BUFFER_SIZE */ + VAR_KEY_CACHE_SIZE = 325, /* VAR_KEY_CACHE_SIZE */ + VAR_KEY_CACHE_SLABS = 326, /* VAR_KEY_CACHE_SLABS */ + VAR_TRUSTED_KEYS_FILE = 327, /* VAR_TRUSTED_KEYS_FILE */ + VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ + VAR_USE_SYSLOG = 329, /* VAR_USE_SYSLOG */ + VAR_OUTGOING_INTERFACE = 330, /* VAR_OUTGOING_INTERFACE */ + VAR_ROOT_HINTS = 331, /* VAR_ROOT_HINTS */ + VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST */ + VAR_CACHE_MAX_TTL = 333, /* VAR_CACHE_MAX_TTL */ + VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED */ + VAR_ACCESS_CONTROL = 335, /* VAR_ACCESS_CONTROL */ + VAR_LOCAL_ZONE = 336, /* VAR_LOCAL_ZONE */ + VAR_LOCAL_DATA = 337, /* VAR_LOCAL_DATA */ + VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC */ + VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL */ + VAR_DO_DAEMONIZE = 340, /* VAR_DO_DAEMONIZE */ + VAR_USE_CAPS_FOR_ID = 341, /* VAR_USE_CAPS_FOR_ID */ + VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE */ + VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT */ + VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID */ + VAR_DLV_ANCHOR_FILE = 345, /* VAR_DLV_ANCHOR_FILE */ + VAR_DLV_ANCHOR = 346, /* VAR_DLV_ANCHOR */ + VAR_NEG_CACHE_SIZE = 347, /* VAR_NEG_CACHE_SIZE */ + VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH */ + VAR_PRIVATE_ADDRESS = 349, /* VAR_PRIVATE_ADDRESS */ + VAR_PRIVATE_DOMAIN = 350, /* VAR_PRIVATE_DOMAIN */ + VAR_REMOTE_CONTROL = 351, /* VAR_REMOTE_CONTROL */ + VAR_CONTROL_ENABLE = 352, /* VAR_CONTROL_ENABLE */ + VAR_CONTROL_INTERFACE = 353, /* VAR_CONTROL_INTERFACE */ + VAR_CONTROL_PORT = 354, /* VAR_CONTROL_PORT */ + VAR_SERVER_KEY_FILE = 355, /* VAR_SERVER_KEY_FILE */ + VAR_SERVER_CERT_FILE = 356, /* VAR_SERVER_CERT_FILE */ + VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */ + VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */ + VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */ + VAR_TCP_REUSE_TIMEOUT = 360, /* VAR_TCP_REUSE_TIMEOUT */ + VAR_MAX_REUSE_TCP_QUERIES = 361, /* VAR_MAX_REUSE_TCP_QUERIES */ + VAR_EXTENDED_STATISTICS = 362, /* VAR_EXTENDED_STATISTICS */ + VAR_LOCAL_DATA_PTR = 363, /* VAR_LOCAL_DATA_PTR */ + VAR_JOSTLE_TIMEOUT = 364, /* VAR_JOSTLE_TIMEOUT */ + VAR_STUB_PRIME = 365, /* VAR_STUB_PRIME */ + VAR_UNWANTED_REPLY_THRESHOLD = 366, /* VAR_UNWANTED_REPLY_THRESHOLD */ + VAR_LOG_TIME_ASCII = 367, /* VAR_LOG_TIME_ASCII */ + VAR_DOMAIN_INSECURE = 368, /* VAR_DOMAIN_INSECURE */ + VAR_PYTHON = 369, /* VAR_PYTHON */ + VAR_PYTHON_SCRIPT = 370, /* VAR_PYTHON_SCRIPT */ + VAR_VAL_SIG_SKEW_MIN = 371, /* VAR_VAL_SIG_SKEW_MIN */ + VAR_VAL_SIG_SKEW_MAX = 372, /* VAR_VAL_SIG_SKEW_MAX */ + VAR_VAL_MAX_RESTART = 373, /* VAR_VAL_MAX_RESTART */ + VAR_CACHE_MIN_TTL = 374, /* VAR_CACHE_MIN_TTL */ + VAR_VAL_LOG_LEVEL = 375, /* VAR_VAL_LOG_LEVEL */ + VAR_AUTO_TRUST_ANCHOR_FILE = 376, /* VAR_AUTO_TRUST_ANCHOR_FILE */ + VAR_KEEP_MISSING = 377, /* VAR_KEEP_MISSING */ + VAR_ADD_HOLDDOWN = 378, /* VAR_ADD_HOLDDOWN */ + VAR_DEL_HOLDDOWN = 379, /* VAR_DEL_HOLDDOWN */ + VAR_SO_RCVBUF = 380, /* VAR_SO_RCVBUF */ + VAR_EDNS_BUFFER_SIZE = 381, /* VAR_EDNS_BUFFER_SIZE */ + VAR_PREFETCH = 382, /* VAR_PREFETCH */ + VAR_PREFETCH_KEY = 383, /* VAR_PREFETCH_KEY */ + VAR_SO_SNDBUF = 384, /* VAR_SO_SNDBUF */ + VAR_SO_REUSEPORT = 385, /* VAR_SO_REUSEPORT */ + VAR_HARDEN_BELOW_NXDOMAIN = 386, /* VAR_HARDEN_BELOW_NXDOMAIN */ + VAR_IGNORE_CD_FLAG = 387, /* VAR_IGNORE_CD_FLAG */ + VAR_LOG_QUERIES = 388, /* VAR_LOG_QUERIES */ + VAR_LOG_REPLIES = 389, /* VAR_LOG_REPLIES */ + VAR_LOG_LOCAL_ACTIONS = 390, /* VAR_LOG_LOCAL_ACTIONS */ + VAR_TCP_UPSTREAM = 391, /* VAR_TCP_UPSTREAM */ + VAR_SSL_UPSTREAM = 392, /* VAR_SSL_UPSTREAM */ + VAR_TCP_AUTH_QUERY_TIMEOUT = 393, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ + VAR_SSL_SERVICE_KEY = 394, /* VAR_SSL_SERVICE_KEY */ + VAR_SSL_SERVICE_PEM = 395, /* VAR_SSL_SERVICE_PEM */ + VAR_SSL_PORT = 396, /* VAR_SSL_PORT */ + VAR_FORWARD_FIRST = 397, /* VAR_FORWARD_FIRST */ + VAR_STUB_SSL_UPSTREAM = 398, /* VAR_STUB_SSL_UPSTREAM */ + VAR_FORWARD_SSL_UPSTREAM = 399, /* VAR_FORWARD_SSL_UPSTREAM */ + VAR_TLS_CERT_BUNDLE = 400, /* VAR_TLS_CERT_BUNDLE */ + VAR_STUB_TCP_UPSTREAM = 401, /* VAR_STUB_TCP_UPSTREAM */ + VAR_FORWARD_TCP_UPSTREAM = 402, /* VAR_FORWARD_TCP_UPSTREAM */ + VAR_HTTPS_PORT = 403, /* VAR_HTTPS_PORT */ + VAR_HTTP_ENDPOINT = 404, /* VAR_HTTP_ENDPOINT */ + VAR_HTTP_MAX_STREAMS = 405, /* VAR_HTTP_MAX_STREAMS */ + VAR_HTTP_QUERY_BUFFER_SIZE = 406, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + VAR_HTTP_RESPONSE_BUFFER_SIZE = 407, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + VAR_HTTP_NODELAY = 408, /* VAR_HTTP_NODELAY */ + VAR_HTTP_NOTLS_DOWNSTREAM = 409, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + VAR_STUB_FIRST = 410, /* VAR_STUB_FIRST */ + VAR_MINIMAL_RESPONSES = 411, /* VAR_MINIMAL_RESPONSES */ + VAR_RRSET_ROUNDROBIN = 412, /* VAR_RRSET_ROUNDROBIN */ + VAR_MAX_UDP_SIZE = 413, /* VAR_MAX_UDP_SIZE */ + VAR_DELAY_CLOSE = 414, /* VAR_DELAY_CLOSE */ + VAR_UDP_CONNECT = 415, /* VAR_UDP_CONNECT */ + VAR_UNBLOCK_LAN_ZONES = 416, /* VAR_UNBLOCK_LAN_ZONES */ + VAR_INSECURE_LAN_ZONES = 417, /* VAR_INSECURE_LAN_ZONES */ + VAR_INFRA_CACHE_MIN_RTT = 418, /* VAR_INFRA_CACHE_MIN_RTT */ + VAR_INFRA_KEEP_PROBING = 419, /* VAR_INFRA_KEEP_PROBING */ + VAR_DNS64_PREFIX = 420, /* VAR_DNS64_PREFIX */ + VAR_DNS64_SYNTHALL = 421, /* VAR_DNS64_SYNTHALL */ + VAR_DNS64_IGNORE_AAAA = 422, /* VAR_DNS64_IGNORE_AAAA */ + VAR_DNSTAP = 423, /* VAR_DNSTAP */ + VAR_DNSTAP_ENABLE = 424, /* VAR_DNSTAP_ENABLE */ + VAR_DNSTAP_SOCKET_PATH = 425, /* VAR_DNSTAP_SOCKET_PATH */ + VAR_DNSTAP_IP = 426, /* VAR_DNSTAP_IP */ + VAR_DNSTAP_TLS = 427, /* VAR_DNSTAP_TLS */ + VAR_DNSTAP_TLS_SERVER_NAME = 428, /* VAR_DNSTAP_TLS_SERVER_NAME */ + VAR_DNSTAP_TLS_CERT_BUNDLE = 429, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 430, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 431, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + VAR_DNSTAP_SEND_IDENTITY = 432, /* VAR_DNSTAP_SEND_IDENTITY */ + VAR_DNSTAP_SEND_VERSION = 433, /* VAR_DNSTAP_SEND_VERSION */ + VAR_DNSTAP_BIDIRECTIONAL = 434, /* VAR_DNSTAP_BIDIRECTIONAL */ + VAR_DNSTAP_IDENTITY = 435, /* VAR_DNSTAP_IDENTITY */ + VAR_DNSTAP_VERSION = 436, /* VAR_DNSTAP_VERSION */ + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 437, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 438, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 439, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 440, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 441, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 442, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + VAR_RESPONSE_IP_TAG = 443, /* VAR_RESPONSE_IP_TAG */ + VAR_RESPONSE_IP = 444, /* VAR_RESPONSE_IP */ + VAR_RESPONSE_IP_DATA = 445, /* VAR_RESPONSE_IP_DATA */ + VAR_HARDEN_ALGO_DOWNGRADE = 446, /* VAR_HARDEN_ALGO_DOWNGRADE */ + VAR_IP_TRANSPARENT = 447, /* VAR_IP_TRANSPARENT */ + VAR_IP_DSCP = 448, /* VAR_IP_DSCP */ + VAR_DISABLE_DNSSEC_LAME_CHECK = 449, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + VAR_IP_RATELIMIT = 450, /* VAR_IP_RATELIMIT */ + VAR_IP_RATELIMIT_SLABS = 451, /* VAR_IP_RATELIMIT_SLABS */ + VAR_IP_RATELIMIT_SIZE = 452, /* VAR_IP_RATELIMIT_SIZE */ + VAR_RATELIMIT = 453, /* VAR_RATELIMIT */ + VAR_RATELIMIT_SLABS = 454, /* VAR_RATELIMIT_SLABS */ + VAR_RATELIMIT_SIZE = 455, /* VAR_RATELIMIT_SIZE */ - VAR_RATELIMIT_FOR_DOMAIN = 456, /* VAR_RATELIMIT_FOR_DOMAIN */ - VAR_RATELIMIT_BELOW_DOMAIN = 457, /* VAR_RATELIMIT_BELOW_DOMAIN */ - VAR_IP_RATELIMIT_FACTOR = 458, /* VAR_IP_RATELIMIT_FACTOR */ - VAR_RATELIMIT_FACTOR = 459, /* VAR_RATELIMIT_FACTOR */ - VAR_SEND_CLIENT_SUBNET = 460, /* VAR_SEND_CLIENT_SUBNET */ - VAR_CLIENT_SUBNET_ZONE = 461, /* VAR_CLIENT_SUBNET_ZONE */ - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 462, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - VAR_CLIENT_SUBNET_OPCODE = 463, /* VAR_CLIENT_SUBNET_OPCODE */ - VAR_MAX_CLIENT_SUBNET_IPV4 = 464, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - VAR_MAX_CLIENT_SUBNET_IPV6 = 465, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - VAR_MIN_CLIENT_SUBNET_IPV4 = 466, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - VAR_MIN_CLIENT_SUBNET_IPV6 = 467, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - VAR_MAX_ECS_TREE_SIZE_IPV4 = 468, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - VAR_MAX_ECS_TREE_SIZE_IPV6 = 469, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - VAR_CAPS_WHITELIST = 470, /* VAR_CAPS_WHITELIST */ - VAR_CACHE_MAX_NEGATIVE_TTL = 471, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - VAR_PERMIT_SMALL_HOLDDOWN = 472, /* VAR_PERMIT_SMALL_HOLDDOWN */ - VAR_QNAME_MINIMISATION = 473, /* VAR_QNAME_MINIMISATION */ - VAR_QNAME_MINIMISATION_STRICT = 474, /* VAR_QNAME_MINIMISATION_STRICT */ - VAR_IP_FREEBIND = 475, /* VAR_IP_FREEBIND */ - VAR_DEFINE_TAG = 476, /* VAR_DEFINE_TAG */ - VAR_LOCAL_ZONE_TAG = 477, /* VAR_LOCAL_ZONE_TAG */ - VAR_ACCESS_CONTROL_TAG = 478, /* VAR_ACCESS_CONTROL_TAG */ - VAR_LOCAL_ZONE_OVERRIDE = 479, /* VAR_LOCAL_ZONE_OVERRIDE */ - VAR_ACCESS_CONTROL_TAG_ACTION = 480, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - VAR_ACCESS_CONTROL_TAG_DATA = 481, /* VAR_ACCESS_CONTROL_TAG_DATA */ - VAR_VIEW = 482, /* VAR_VIEW */ - VAR_ACCESS_CONTROL_VIEW = 483, /* VAR_ACCESS_CONTROL_VIEW */ - VAR_VIEW_FIRST = 484, /* VAR_VIEW_FIRST */ - VAR_SERVE_EXPIRED = 485, /* VAR_SERVE_EXPIRED */ - VAR_SERVE_EXPIRED_TTL = 486, /* VAR_SERVE_EXPIRED_TTL */ - VAR_SERVE_EXPIRED_TTL_RESET = 487, /* VAR_SERVE_EXPIRED_TTL_RESET */ - VAR_SERVE_EXPIRED_REPLY_TTL = 488, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 489, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - VAR_SERVE_ORIGINAL_TTL = 490, /* VAR_SERVE_ORIGINAL_TTL */ - VAR_FAKE_DSA = 491, /* VAR_FAKE_DSA */ - VAR_FAKE_SHA1 = 492, /* VAR_FAKE_SHA1 */ - VAR_LOG_IDENTITY = 493, /* VAR_LOG_IDENTITY */ - VAR_HIDE_TRUSTANCHOR = 494, /* VAR_HIDE_TRUSTANCHOR */ - VAR_HIDE_HTTP_USER_AGENT = 495, /* VAR_HIDE_HTTP_USER_AGENT */ - VAR_HTTP_USER_AGENT = 496, /* VAR_HTTP_USER_AGENT */ - VAR_TRUST_ANCHOR_SIGNALING = 497, /* VAR_TRUST_ANCHOR_SIGNALING */ - VAR_AGGRESSIVE_NSEC = 498, /* VAR_AGGRESSIVE_NSEC */ - VAR_USE_SYSTEMD = 499, /* VAR_USE_SYSTEMD */ - VAR_SHM_ENABLE = 500, /* VAR_SHM_ENABLE */ - VAR_SHM_KEY = 501, /* VAR_SHM_KEY */ - VAR_ROOT_KEY_SENTINEL = 502, /* VAR_ROOT_KEY_SENTINEL */ - VAR_DNSCRYPT = 503, /* VAR_DNSCRYPT */ - VAR_DNSCRYPT_ENABLE = 504, /* VAR_DNSCRYPT_ENABLE */ - VAR_DNSCRYPT_PORT = 505, /* VAR_DNSCRYPT_PORT */ - VAR_DNSCRYPT_PROVIDER = 506, /* VAR_DNSCRYPT_PROVIDER */ - VAR_DNSCRYPT_SECRET_KEY = 507, /* VAR_DNSCRYPT_SECRET_KEY */ - VAR_DNSCRYPT_PROVIDER_CERT = 508, /* VAR_DNSCRYPT_PROVIDER_CERT */ - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 509, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 510, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 511, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 512, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 513, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - VAR_PAD_RESPONSES = 514, /* VAR_PAD_RESPONSES */ - VAR_PAD_RESPONSES_BLOCK_SIZE = 515, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - VAR_PAD_QUERIES = 516, /* VAR_PAD_QUERIES */ - VAR_PAD_QUERIES_BLOCK_SIZE = 517, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - VAR_IPSECMOD_ENABLED = 518, /* VAR_IPSECMOD_ENABLED */ - VAR_IPSECMOD_HOOK = 519, /* VAR_IPSECMOD_HOOK */ - VAR_IPSECMOD_IGNORE_BOGUS = 520, /* VAR_IPSECMOD_IGNORE_BOGUS */ - VAR_IPSECMOD_MAX_TTL = 521, /* VAR_IPSECMOD_MAX_TTL */ - VAR_IPSECMOD_WHITELIST = 522, /* VAR_IPSECMOD_WHITELIST */ - VAR_IPSECMOD_STRICT = 523, /* VAR_IPSECMOD_STRICT */ - VAR_CACHEDB = 524, /* VAR_CACHEDB */ - VAR_CACHEDB_BACKEND = 525, /* VAR_CACHEDB_BACKEND */ - VAR_CACHEDB_SECRETSEED = 526, /* VAR_CACHEDB_SECRETSEED */ - VAR_CACHEDB_REDISHOST = 527, /* VAR_CACHEDB_REDISHOST */ - VAR_CACHEDB_REDISPORT = 528, /* VAR_CACHEDB_REDISPORT */ - VAR_CACHEDB_REDISTIMEOUT = 529, /* VAR_CACHEDB_REDISTIMEOUT */ - VAR_CACHEDB_REDISEXPIRERECORDS = 530, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 531, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - VAR_FOR_UPSTREAM = 532, /* VAR_FOR_UPSTREAM */ - VAR_AUTH_ZONE = 533, /* VAR_AUTH_ZONE */ - VAR_ZONEFILE = 534, /* VAR_ZONEFILE */ - VAR_MASTER = 535, /* VAR_MASTER */ - VAR_URL = 536, /* VAR_URL */ - VAR_FOR_DOWNSTREAM = 537, /* VAR_FOR_DOWNSTREAM */ - VAR_FALLBACK_ENABLED = 538, /* VAR_FALLBACK_ENABLED */ - VAR_TLS_ADDITIONAL_PORT = 539, /* VAR_TLS_ADDITIONAL_PORT */ - VAR_LOW_RTT = 540, /* VAR_LOW_RTT */ - VAR_LOW_RTT_PERMIL = 541, /* VAR_LOW_RTT_PERMIL */ - VAR_FAST_SERVER_PERMIL = 542, /* VAR_FAST_SERVER_PERMIL */ - VAR_FAST_SERVER_NUM = 543, /* VAR_FAST_SERVER_NUM */ - VAR_ALLOW_NOTIFY = 544, /* VAR_ALLOW_NOTIFY */ - VAR_TLS_WIN_CERT = 545, /* VAR_TLS_WIN_CERT */ - VAR_TCP_CONNECTION_LIMIT = 546, /* VAR_TCP_CONNECTION_LIMIT */ - VAR_FORWARD_NO_CACHE = 547, /* VAR_FORWARD_NO_CACHE */ - VAR_STUB_NO_CACHE = 548, /* VAR_STUB_NO_CACHE */ - VAR_LOG_SERVFAIL = 549, /* VAR_LOG_SERVFAIL */ - VAR_DENY_ANY = 550, /* VAR_DENY_ANY */ - VAR_UNKNOWN_SERVER_TIME_LIMIT = 551, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - VAR_LOG_TAG_QUERYREPLY = 552, /* VAR_LOG_TAG_QUERYREPLY */ - VAR_STREAM_WAIT_SIZE = 553, /* VAR_STREAM_WAIT_SIZE */ - VAR_TLS_CIPHERS = 554, /* VAR_TLS_CIPHERS */ - VAR_TLS_CIPHERSUITES = 555, /* VAR_TLS_CIPHERSUITES */ - VAR_TLS_USE_SNI = 556, /* VAR_TLS_USE_SNI */ - VAR_IPSET = 557, /* VAR_IPSET */ - VAR_IPSET_NAME_V4 = 558, /* VAR_IPSET_NAME_V4 */ - VAR_IPSET_NAME_V6 = 559, /* VAR_IPSET_NAME_V6 */ - VAR_TLS_SESSION_TICKET_KEYS = 560, /* VAR_TLS_SESSION_TICKET_KEYS */ - VAR_RPZ = 561, /* VAR_RPZ */ - VAR_TAGS = 562, /* VAR_TAGS */ - VAR_RPZ_ACTION_OVERRIDE = 563, /* VAR_RPZ_ACTION_OVERRIDE */ - VAR_RPZ_CNAME_OVERRIDE = 564, /* VAR_RPZ_CNAME_OVERRIDE */ - VAR_RPZ_LOG = 565, /* VAR_RPZ_LOG */ - VAR_RPZ_LOG_NAME = 566, /* VAR_RPZ_LOG_NAME */ - VAR_DYNLIB = 567, /* VAR_DYNLIB */ - VAR_DYNLIB_FILE = 568, /* VAR_DYNLIB_FILE */ - VAR_EDNS_CLIENT_STRING = 569, /* VAR_EDNS_CLIENT_STRING */ - VAR_EDNS_CLIENT_STRING_OPCODE = 570, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - VAR_NSID = 571, /* VAR_NSID */ - VAR_ZONEMD_PERMISSIVE_MODE = 572, /* VAR_ZONEMD_PERMISSIVE_MODE */ - VAR_ZONEMD_CHECK = 573, /* VAR_ZONEMD_CHECK */ - VAR_ZONEMD_REJECT_ABSENCE = 574 /* VAR_ZONEMD_REJECT_ABSENCE */ ++ VAR_OUTBOUND_MSG_RETRY = 456, /* VAR_OUTBOUND_MSG_RETRY */ ++ VAR_RATELIMIT_FOR_DOMAIN = 457, /* VAR_RATELIMIT_FOR_DOMAIN */ ++ VAR_RATELIMIT_BELOW_DOMAIN = 458, /* VAR_RATELIMIT_BELOW_DOMAIN */ ++ VAR_IP_RATELIMIT_FACTOR = 459, /* VAR_IP_RATELIMIT_FACTOR */ ++ VAR_RATELIMIT_FACTOR = 460, /* VAR_RATELIMIT_FACTOR */ ++ VAR_SEND_CLIENT_SUBNET = 461, /* VAR_SEND_CLIENT_SUBNET */ ++ VAR_CLIENT_SUBNET_ZONE = 462, /* VAR_CLIENT_SUBNET_ZONE */ ++ VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 463, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ ++ VAR_CLIENT_SUBNET_OPCODE = 464, /* VAR_CLIENT_SUBNET_OPCODE */ ++ VAR_MAX_CLIENT_SUBNET_IPV4 = 465, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ ++ VAR_MAX_CLIENT_SUBNET_IPV6 = 466, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ ++ VAR_MIN_CLIENT_SUBNET_IPV4 = 467, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ ++ VAR_MIN_CLIENT_SUBNET_IPV6 = 468, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ ++ VAR_MAX_ECS_TREE_SIZE_IPV4 = 469, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ ++ VAR_MAX_ECS_TREE_SIZE_IPV6 = 470, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ ++ VAR_CAPS_WHITELIST = 471, /* VAR_CAPS_WHITELIST */ ++ VAR_CACHE_MAX_NEGATIVE_TTL = 472, /* VAR_CACHE_MAX_NEGATIVE_TTL */ ++ VAR_PERMIT_SMALL_HOLDDOWN = 473, /* VAR_PERMIT_SMALL_HOLDDOWN */ ++ VAR_QNAME_MINIMISATION = 474, /* VAR_QNAME_MINIMISATION */ ++ VAR_QNAME_MINIMISATION_STRICT = 475, /* VAR_QNAME_MINIMISATION_STRICT */ ++ VAR_IP_FREEBIND = 476, /* VAR_IP_FREEBIND */ ++ VAR_DEFINE_TAG = 477, /* VAR_DEFINE_TAG */ ++ VAR_LOCAL_ZONE_TAG = 478, /* VAR_LOCAL_ZONE_TAG */ ++ VAR_ACCESS_CONTROL_TAG = 479, /* VAR_ACCESS_CONTROL_TAG */ ++ VAR_LOCAL_ZONE_OVERRIDE = 480, /* VAR_LOCAL_ZONE_OVERRIDE */ ++ VAR_ACCESS_CONTROL_TAG_ACTION = 481, /* VAR_ACCESS_CONTROL_TAG_ACTION */ ++ VAR_ACCESS_CONTROL_TAG_DATA = 482, /* VAR_ACCESS_CONTROL_TAG_DATA */ ++ VAR_VIEW = 483, /* VAR_VIEW */ ++ VAR_ACCESS_CONTROL_VIEW = 484, /* VAR_ACCESS_CONTROL_VIEW */ ++ VAR_VIEW_FIRST = 485, /* VAR_VIEW_FIRST */ ++ VAR_SERVE_EXPIRED = 486, /* VAR_SERVE_EXPIRED */ ++ VAR_SERVE_EXPIRED_TTL = 487, /* VAR_SERVE_EXPIRED_TTL */ ++ VAR_SERVE_EXPIRED_TTL_RESET = 488, /* VAR_SERVE_EXPIRED_TTL_RESET */ ++ VAR_SERVE_EXPIRED_REPLY_TTL = 489, /* VAR_SERVE_EXPIRED_REPLY_TTL */ ++ VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 490, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ ++ VAR_SERVE_ORIGINAL_TTL = 491, /* VAR_SERVE_ORIGINAL_TTL */ ++ VAR_FAKE_DSA = 492, /* VAR_FAKE_DSA */ ++ VAR_FAKE_SHA1 = 493, /* VAR_FAKE_SHA1 */ ++ VAR_LOG_IDENTITY = 494, /* VAR_LOG_IDENTITY */ ++ VAR_HIDE_TRUSTANCHOR = 495, /* VAR_HIDE_TRUSTANCHOR */ ++ VAR_HIDE_HTTP_USER_AGENT = 496, /* VAR_HIDE_HTTP_USER_AGENT */ ++ VAR_HTTP_USER_AGENT = 497, /* VAR_HTTP_USER_AGENT */ ++ VAR_TRUST_ANCHOR_SIGNALING = 498, /* VAR_TRUST_ANCHOR_SIGNALING */ ++ VAR_AGGRESSIVE_NSEC = 499, /* VAR_AGGRESSIVE_NSEC */ ++ VAR_USE_SYSTEMD = 500, /* VAR_USE_SYSTEMD */ ++ VAR_SHM_ENABLE = 501, /* VAR_SHM_ENABLE */ ++ VAR_SHM_KEY = 502, /* VAR_SHM_KEY */ ++ VAR_ROOT_KEY_SENTINEL = 503, /* VAR_ROOT_KEY_SENTINEL */ ++ VAR_DNSCRYPT = 504, /* VAR_DNSCRYPT */ ++ VAR_DNSCRYPT_ENABLE = 505, /* VAR_DNSCRYPT_ENABLE */ ++ VAR_DNSCRYPT_PORT = 506, /* VAR_DNSCRYPT_PORT */ ++ VAR_DNSCRYPT_PROVIDER = 507, /* VAR_DNSCRYPT_PROVIDER */ ++ VAR_DNSCRYPT_SECRET_KEY = 508, /* VAR_DNSCRYPT_SECRET_KEY */ ++ VAR_DNSCRYPT_PROVIDER_CERT = 509, /* VAR_DNSCRYPT_PROVIDER_CERT */ ++ VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 510, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ ++ VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 511, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ ++ VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 512, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ ++ VAR_DNSCRYPT_NONCE_CACHE_SIZE = 513, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ ++ VAR_DNSCRYPT_NONCE_CACHE_SLABS = 514, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ ++ VAR_PAD_RESPONSES = 515, /* VAR_PAD_RESPONSES */ ++ VAR_PAD_RESPONSES_BLOCK_SIZE = 516, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ ++ VAR_PAD_QUERIES = 517, /* VAR_PAD_QUERIES */ ++ VAR_PAD_QUERIES_BLOCK_SIZE = 518, /* VAR_PAD_QUERIES_BLOCK_SIZE */ ++ VAR_IPSECMOD_ENABLED = 519, /* VAR_IPSECMOD_ENABLED */ ++ VAR_IPSECMOD_HOOK = 520, /* VAR_IPSECMOD_HOOK */ ++ VAR_IPSECMOD_IGNORE_BOGUS = 521, /* VAR_IPSECMOD_IGNORE_BOGUS */ ++ VAR_IPSECMOD_MAX_TTL = 522, /* VAR_IPSECMOD_MAX_TTL */ ++ VAR_IPSECMOD_WHITELIST = 523, /* VAR_IPSECMOD_WHITELIST */ ++ VAR_IPSECMOD_STRICT = 524, /* VAR_IPSECMOD_STRICT */ ++ VAR_CACHEDB = 525, /* VAR_CACHEDB */ ++ VAR_CACHEDB_BACKEND = 526, /* VAR_CACHEDB_BACKEND */ ++ VAR_CACHEDB_SECRETSEED = 527, /* VAR_CACHEDB_SECRETSEED */ ++ VAR_CACHEDB_REDISHOST = 528, /* VAR_CACHEDB_REDISHOST */ ++ VAR_CACHEDB_REDISPORT = 529, /* VAR_CACHEDB_REDISPORT */ ++ VAR_CACHEDB_REDISTIMEOUT = 530, /* VAR_CACHEDB_REDISTIMEOUT */ ++ VAR_CACHEDB_REDISEXPIRERECORDS = 531, /* VAR_CACHEDB_REDISEXPIRERECORDS */ ++ VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 532, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ ++ VAR_FOR_UPSTREAM = 533, /* VAR_FOR_UPSTREAM */ ++ VAR_AUTH_ZONE = 534, /* VAR_AUTH_ZONE */ ++ VAR_ZONEFILE = 535, /* VAR_ZONEFILE */ ++ VAR_MASTER = 536, /* VAR_MASTER */ ++ VAR_URL = 537, /* VAR_URL */ ++ VAR_FOR_DOWNSTREAM = 538, /* VAR_FOR_DOWNSTREAM */ ++ VAR_FALLBACK_ENABLED = 539, /* VAR_FALLBACK_ENABLED */ ++ VAR_TLS_ADDITIONAL_PORT = 540, /* VAR_TLS_ADDITIONAL_PORT */ ++ VAR_LOW_RTT = 541, /* VAR_LOW_RTT */ ++ VAR_LOW_RTT_PERMIL = 542, /* VAR_LOW_RTT_PERMIL */ ++ VAR_FAST_SERVER_PERMIL = 543, /* VAR_FAST_SERVER_PERMIL */ ++ VAR_FAST_SERVER_NUM = 544, /* VAR_FAST_SERVER_NUM */ ++ VAR_ALLOW_NOTIFY = 545, /* VAR_ALLOW_NOTIFY */ ++ VAR_TLS_WIN_CERT = 546, /* VAR_TLS_WIN_CERT */ ++ VAR_TCP_CONNECTION_LIMIT = 547, /* VAR_TCP_CONNECTION_LIMIT */ ++ VAR_FORWARD_NO_CACHE = 548, /* VAR_FORWARD_NO_CACHE */ ++ VAR_STUB_NO_CACHE = 549, /* VAR_STUB_NO_CACHE */ ++ VAR_LOG_SERVFAIL = 550, /* VAR_LOG_SERVFAIL */ ++ VAR_DENY_ANY = 551, /* VAR_DENY_ANY */ ++ VAR_UNKNOWN_SERVER_TIME_LIMIT = 552, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ ++ VAR_LOG_TAG_QUERYREPLY = 553, /* VAR_LOG_TAG_QUERYREPLY */ ++ VAR_STREAM_WAIT_SIZE = 554, /* VAR_STREAM_WAIT_SIZE */ ++ VAR_TLS_CIPHERS = 555, /* VAR_TLS_CIPHERS */ ++ VAR_TLS_CIPHERSUITES = 556, /* VAR_TLS_CIPHERSUITES */ ++ VAR_TLS_USE_SNI = 557, /* VAR_TLS_USE_SNI */ ++ VAR_IPSET = 558, /* VAR_IPSET */ ++ VAR_IPSET_NAME_V4 = 559, /* VAR_IPSET_NAME_V4 */ ++ VAR_IPSET_NAME_V6 = 560, /* VAR_IPSET_NAME_V6 */ ++ VAR_TLS_SESSION_TICKET_KEYS = 561, /* VAR_TLS_SESSION_TICKET_KEYS */ ++ VAR_RPZ = 562, /* VAR_RPZ */ ++ VAR_TAGS = 563, /* VAR_TAGS */ ++ VAR_RPZ_ACTION_OVERRIDE = 564, /* VAR_RPZ_ACTION_OVERRIDE */ ++ VAR_RPZ_CNAME_OVERRIDE = 565, /* VAR_RPZ_CNAME_OVERRIDE */ ++ VAR_RPZ_LOG = 566, /* VAR_RPZ_LOG */ ++ VAR_RPZ_LOG_NAME = 567, /* VAR_RPZ_LOG_NAME */ ++ VAR_DYNLIB = 568, /* VAR_DYNLIB */ ++ VAR_DYNLIB_FILE = 569, /* VAR_DYNLIB_FILE */ ++ VAR_EDNS_CLIENT_STRING = 570, /* VAR_EDNS_CLIENT_STRING */ ++ VAR_EDNS_CLIENT_STRING_OPCODE = 571, /* VAR_EDNS_CLIENT_STRING_OPCODE */ ++ VAR_NSID = 572, /* VAR_NSID */ ++ VAR_ZONEMD_PERMISSIVE_MODE = 573, /* VAR_ZONEMD_PERMISSIVE_MODE */ ++ VAR_ZONEMD_CHECK = 574, /* VAR_ZONEMD_CHECK */ ++ VAR_ZONEMD_REJECT_ABSENCE = 575 /* VAR_ZONEMD_REJECT_ABSENCE */ }; + typedef enum yytokentype yytoken_kind_t; #endif -/* Tokens. */ +/* Token kinds. */ +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 #define SPACE 258 #define LETTER 259 #define NEWLINE 260 @@@ -472,315 -402,263 +473,316 @@@ #define ANY 263 #define ZONESTR 264 #define STRING_ARG 265 -#define VAR_SERVER 266 -#define VAR_VERBOSITY 267 -#define VAR_NUM_THREADS 268 -#define VAR_PORT 269 -#define VAR_OUTGOING_RANGE 270 -#define VAR_INTERFACE 271 -#define VAR_DO_IP4 272 -#define VAR_DO_IP6 273 -#define VAR_PREFER_IP6 274 -#define VAR_DO_UDP 275 -#define VAR_DO_TCP 276 -#define VAR_TCP_MSS 277 -#define VAR_OUTGOING_TCP_MSS 278 -#define VAR_TCP_IDLE_TIMEOUT 279 -#define VAR_EDNS_TCP_KEEPALIVE 280 -#define VAR_EDNS_TCP_KEEPALIVE_TIMEOUT 281 -#define VAR_CHROOT 282 -#define VAR_USERNAME 283 -#define VAR_DIRECTORY 284 -#define VAR_LOGFILE 285 -#define VAR_PIDFILE 286 -#define VAR_MSG_CACHE_SIZE 287 -#define VAR_MSG_CACHE_SLABS 288 -#define VAR_NUM_QUERIES_PER_THREAD 289 -#define VAR_RRSET_CACHE_SIZE 290 -#define VAR_RRSET_CACHE_SLABS 291 -#define VAR_OUTGOING_NUM_TCP 292 -#define VAR_INFRA_HOST_TTL 293 -#define VAR_INFRA_LAME_TTL 294 -#define VAR_INFRA_CACHE_SLABS 295 -#define VAR_INFRA_CACHE_NUMHOSTS 296 -#define VAR_INFRA_CACHE_LAME_SIZE 297 -#define VAR_NAME 298 -#define VAR_STUB_ZONE 299 -#define VAR_STUB_HOST 300 -#define VAR_STUB_ADDR 301 -#define VAR_TARGET_FETCH_POLICY 302 -#define VAR_HARDEN_SHORT_BUFSIZE 303 -#define VAR_HARDEN_LARGE_QUERIES 304 -#define VAR_FORWARD_ZONE 305 -#define VAR_FORWARD_HOST 306 -#define VAR_FORWARD_ADDR 307 -#define VAR_DO_NOT_QUERY_ADDRESS 308 -#define VAR_HIDE_IDENTITY 309 -#define VAR_HIDE_VERSION 310 -#define VAR_IDENTITY 311 -#define VAR_VERSION 312 -#define VAR_HARDEN_GLUE 313 -#define VAR_MODULE_CONF 314 -#define VAR_TRUST_ANCHOR_FILE 315 -#define VAR_TRUST_ANCHOR 316 -#define VAR_VAL_OVERRIDE_DATE 317 -#define VAR_BOGUS_TTL 318 -#define VAR_VAL_CLEAN_ADDITIONAL 319 -#define VAR_VAL_PERMISSIVE_MODE 320 -#define VAR_INCOMING_NUM_TCP 321 -#define VAR_MSG_BUFFER_SIZE 322 -#define VAR_KEY_CACHE_SIZE 323 -#define VAR_KEY_CACHE_SLABS 324 -#define VAR_TRUSTED_KEYS_FILE 325 -#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 326 -#define VAR_USE_SYSLOG 327 -#define VAR_OUTGOING_INTERFACE 328 -#define VAR_ROOT_HINTS 329 -#define VAR_DO_NOT_QUERY_LOCALHOST 330 -#define VAR_CACHE_MAX_TTL 331 -#define VAR_HARDEN_DNSSEC_STRIPPED 332 -#define VAR_ACCESS_CONTROL 333 -#define VAR_LOCAL_ZONE 334 -#define VAR_LOCAL_DATA 335 -#define VAR_INTERFACE_AUTOMATIC 336 -#define VAR_STATISTICS_INTERVAL 337 -#define VAR_DO_DAEMONIZE 338 -#define VAR_USE_CAPS_FOR_ID 339 -#define VAR_STATISTICS_CUMULATIVE 340 -#define VAR_OUTGOING_PORT_PERMIT 341 -#define VAR_OUTGOING_PORT_AVOID 342 -#define VAR_DLV_ANCHOR_FILE 343 -#define VAR_DLV_ANCHOR 344 -#define VAR_NEG_CACHE_SIZE 345 -#define VAR_HARDEN_REFERRAL_PATH 346 -#define VAR_PRIVATE_ADDRESS 347 -#define VAR_PRIVATE_DOMAIN 348 -#define VAR_REMOTE_CONTROL 349 -#define VAR_CONTROL_ENABLE 350 -#define VAR_CONTROL_INTERFACE 351 -#define VAR_CONTROL_PORT 352 -#define VAR_SERVER_KEY_FILE 353 -#define VAR_SERVER_CERT_FILE 354 -#define VAR_CONTROL_KEY_FILE 355 -#define VAR_CONTROL_CERT_FILE 356 -#define VAR_CONTROL_USE_CERT 357 -#define VAR_EXTENDED_STATISTICS 358 -#define VAR_LOCAL_DATA_PTR 359 -#define VAR_JOSTLE_TIMEOUT 360 -#define VAR_STUB_PRIME 361 -#define VAR_UNWANTED_REPLY_THRESHOLD 362 -#define VAR_LOG_TIME_ASCII 363 -#define VAR_DOMAIN_INSECURE 364 -#define VAR_PYTHON 365 -#define VAR_PYTHON_SCRIPT 366 -#define VAR_VAL_SIG_SKEW_MIN 367 -#define VAR_VAL_SIG_SKEW_MAX 368 -#define VAR_CACHE_MIN_TTL 369 -#define VAR_VAL_LOG_LEVEL 370 -#define VAR_AUTO_TRUST_ANCHOR_FILE 371 -#define VAR_KEEP_MISSING 372 -#define VAR_ADD_HOLDDOWN 373 -#define VAR_DEL_HOLDDOWN 374 -#define VAR_SO_RCVBUF 375 -#define VAR_EDNS_BUFFER_SIZE 376 -#define VAR_PREFETCH 377 -#define VAR_PREFETCH_KEY 378 -#define VAR_SO_SNDBUF 379 -#define VAR_SO_REUSEPORT 380 -#define VAR_HARDEN_BELOW_NXDOMAIN 381 -#define VAR_IGNORE_CD_FLAG 382 -#define VAR_LOG_QUERIES 383 -#define VAR_LOG_REPLIES 384 -#define VAR_LOG_LOCAL_ACTIONS 385 -#define VAR_TCP_UPSTREAM 386 -#define VAR_SSL_UPSTREAM 387 -#define VAR_SSL_SERVICE_KEY 388 -#define VAR_SSL_SERVICE_PEM 389 -#define VAR_SSL_PORT 390 -#define VAR_FORWARD_FIRST 391 -#define VAR_STUB_SSL_UPSTREAM 392 -#define VAR_FORWARD_SSL_UPSTREAM 393 -#define VAR_TLS_CERT_BUNDLE 394 -#define VAR_STUB_FIRST 395 -#define VAR_MINIMAL_RESPONSES 396 -#define VAR_RRSET_ROUNDROBIN 397 -#define VAR_MAX_UDP_SIZE 398 -#define VAR_DELAY_CLOSE 399 -#define VAR_UNBLOCK_LAN_ZONES 400 -#define VAR_INSECURE_LAN_ZONES 401 -#define VAR_INFRA_CACHE_MIN_RTT 402 -#define VAR_DNS64_PREFIX 403 -#define VAR_DNS64_SYNTHALL 404 -#define VAR_DNS64_IGNORE_AAAA 405 -#define VAR_DNSTAP 406 -#define VAR_DNSTAP_ENABLE 407 -#define VAR_DNSTAP_SOCKET_PATH 408 -#define VAR_DNSTAP_SEND_IDENTITY 409 -#define VAR_DNSTAP_SEND_VERSION 410 -#define VAR_DNSTAP_IDENTITY 411 -#define VAR_DNSTAP_VERSION 412 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 413 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 414 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 415 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 416 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 417 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 418 -#define VAR_RESPONSE_IP_TAG 419 -#define VAR_RESPONSE_IP 420 -#define VAR_RESPONSE_IP_DATA 421 -#define VAR_HARDEN_ALGO_DOWNGRADE 422 -#define VAR_IP_TRANSPARENT 423 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 424 -#define VAR_IP_RATELIMIT 425 -#define VAR_IP_RATELIMIT_SLABS 426 -#define VAR_IP_RATELIMIT_SIZE 427 -#define VAR_RATELIMIT 428 -#define VAR_RATELIMIT_SLABS 429 -#define VAR_RATELIMIT_SIZE 430 -#define VAR_OUTBOUND_MSG_RETRY 431 -#define VAR_RATELIMIT_FOR_DOMAIN 432 -#define VAR_RATELIMIT_BELOW_DOMAIN 433 -#define VAR_IP_RATELIMIT_FACTOR 434 -#define VAR_RATELIMIT_FACTOR 435 -#define VAR_SEND_CLIENT_SUBNET 436 -#define VAR_CLIENT_SUBNET_ZONE 437 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 438 -#define VAR_CLIENT_SUBNET_OPCODE 439 -#define VAR_MAX_CLIENT_SUBNET_IPV4 440 -#define VAR_MAX_CLIENT_SUBNET_IPV6 441 -#define VAR_MIN_CLIENT_SUBNET_IPV4 442 -#define VAR_MIN_CLIENT_SUBNET_IPV6 443 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 444 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 445 -#define VAR_CAPS_WHITELIST 446 -#define VAR_CACHE_MAX_NEGATIVE_TTL 447 -#define VAR_PERMIT_SMALL_HOLDDOWN 448 -#define VAR_QNAME_MINIMISATION 449 -#define VAR_QNAME_MINIMISATION_STRICT 450 -#define VAR_IP_FREEBIND 451 -#define VAR_DEFINE_TAG 452 -#define VAR_LOCAL_ZONE_TAG 453 -#define VAR_ACCESS_CONTROL_TAG 454 -#define VAR_LOCAL_ZONE_OVERRIDE 455 -#define VAR_ACCESS_CONTROL_TAG_ACTION 456 -#define VAR_ACCESS_CONTROL_TAG_DATA 457 -#define VAR_VIEW 458 -#define VAR_ACCESS_CONTROL_VIEW 459 -#define VAR_VIEW_FIRST 460 -#define VAR_SERVE_EXPIRED 461 -#define VAR_SERVE_EXPIRED_TTL 462 -#define VAR_SERVE_EXPIRED_TTL_RESET 463 -#define VAR_FAKE_DSA 464 -#define VAR_FAKE_SHA1 465 -#define VAR_LOG_IDENTITY 466 -#define VAR_HIDE_TRUSTANCHOR 467 -#define VAR_TRUST_ANCHOR_SIGNALING 468 -#define VAR_AGGRESSIVE_NSEC 469 -#define VAR_USE_SYSTEMD 470 -#define VAR_SHM_ENABLE 471 -#define VAR_SHM_KEY 472 -#define VAR_ROOT_KEY_SENTINEL 473 -#define VAR_DNSCRYPT 474 -#define VAR_DNSCRYPT_ENABLE 475 -#define VAR_DNSCRYPT_PORT 476 -#define VAR_DNSCRYPT_PROVIDER 477 -#define VAR_DNSCRYPT_SECRET_KEY 478 -#define VAR_DNSCRYPT_PROVIDER_CERT 479 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 480 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 481 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 482 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 483 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 484 -#define VAR_IPSECMOD_ENABLED 485 -#define VAR_IPSECMOD_HOOK 486 -#define VAR_IPSECMOD_IGNORE_BOGUS 487 -#define VAR_IPSECMOD_MAX_TTL 488 -#define VAR_IPSECMOD_WHITELIST 489 -#define VAR_IPSECMOD_STRICT 490 -#define VAR_CACHEDB 491 -#define VAR_CACHEDB_BACKEND 492 -#define VAR_CACHEDB_SECRETSEED 493 -#define VAR_CACHEDB_REDISHOST 494 -#define VAR_CACHEDB_REDISPORT 495 -#define VAR_CACHEDB_REDISTIMEOUT 496 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 497 -#define VAR_FOR_UPSTREAM 498 -#define VAR_AUTH_ZONE 499 -#define VAR_ZONEFILE 500 -#define VAR_MASTER 501 -#define VAR_URL 502 -#define VAR_FOR_DOWNSTREAM 503 -#define VAR_FALLBACK_ENABLED 504 -#define VAR_TLS_ADDITIONAL_PORT 505 -#define VAR_LOW_RTT 506 -#define VAR_LOW_RTT_PERMIL 507 -#define VAR_FAST_SERVER_PERMIL 508 -#define VAR_FAST_SERVER_NUM 509 -#define VAR_ALLOW_NOTIFY 510 -#define VAR_TLS_WIN_CERT 511 -#define VAR_TCP_CONNECTION_LIMIT 512 -#define VAR_FORWARD_NO_CACHE 513 -#define VAR_STUB_NO_CACHE 514 -#define VAR_LOG_SERVFAIL 515 -#define VAR_DENY_ANY 516 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 517 -#define VAR_LOG_TAG_QUERYREPLY 518 -#define VAR_STREAM_WAIT_SIZE 519 -#define VAR_TLS_CIPHERS 520 -#define VAR_TLS_CIPHERSUITES 521 -#define VAR_TLS_SESSION_TICKET_KEYS 522 +#define VAR_FORCE_TOPLEVEL 266 +#define VAR_SERVER 267 +#define VAR_VERBOSITY 268 +#define VAR_NUM_THREADS 269 +#define VAR_PORT 270 +#define VAR_OUTGOING_RANGE 271 +#define VAR_INTERFACE 272 +#define VAR_PREFER_IP4 273 +#define VAR_DO_IP4 274 +#define VAR_DO_IP6 275 +#define VAR_PREFER_IP6 276 +#define VAR_DO_UDP 277 +#define VAR_DO_TCP 278 +#define VAR_TCP_MSS 279 +#define VAR_OUTGOING_TCP_MSS 280 +#define VAR_TCP_IDLE_TIMEOUT 281 +#define VAR_EDNS_TCP_KEEPALIVE 282 +#define VAR_EDNS_TCP_KEEPALIVE_TIMEOUT 283 +#define VAR_CHROOT 284 +#define VAR_USERNAME 285 +#define VAR_DIRECTORY 286 +#define VAR_LOGFILE 287 +#define VAR_PIDFILE 288 +#define VAR_MSG_CACHE_SIZE 289 +#define VAR_MSG_CACHE_SLABS 290 +#define VAR_NUM_QUERIES_PER_THREAD 291 +#define VAR_RRSET_CACHE_SIZE 292 +#define VAR_RRSET_CACHE_SLABS 293 +#define VAR_OUTGOING_NUM_TCP 294 +#define VAR_INFRA_HOST_TTL 295 +#define VAR_INFRA_LAME_TTL 296 +#define VAR_INFRA_CACHE_SLABS 297 +#define VAR_INFRA_CACHE_NUMHOSTS 298 +#define VAR_INFRA_CACHE_LAME_SIZE 299 +#define VAR_NAME 300 +#define VAR_STUB_ZONE 301 +#define VAR_STUB_HOST 302 +#define VAR_STUB_ADDR 303 +#define VAR_TARGET_FETCH_POLICY 304 +#define VAR_HARDEN_SHORT_BUFSIZE 305 +#define VAR_HARDEN_LARGE_QUERIES 306 +#define VAR_FORWARD_ZONE 307 +#define VAR_FORWARD_HOST 308 +#define VAR_FORWARD_ADDR 309 +#define VAR_DO_NOT_QUERY_ADDRESS 310 +#define VAR_HIDE_IDENTITY 311 +#define VAR_HIDE_VERSION 312 +#define VAR_IDENTITY 313 +#define VAR_VERSION 314 +#define VAR_HARDEN_GLUE 315 +#define VAR_MODULE_CONF 316 +#define VAR_TRUST_ANCHOR_FILE 317 +#define VAR_TRUST_ANCHOR 318 +#define VAR_VAL_OVERRIDE_DATE 319 +#define VAR_BOGUS_TTL 320 +#define VAR_VAL_CLEAN_ADDITIONAL 321 +#define VAR_VAL_PERMISSIVE_MODE 322 +#define VAR_INCOMING_NUM_TCP 323 +#define VAR_MSG_BUFFER_SIZE 324 +#define VAR_KEY_CACHE_SIZE 325 +#define VAR_KEY_CACHE_SLABS 326 +#define VAR_TRUSTED_KEYS_FILE 327 +#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 328 +#define VAR_USE_SYSLOG 329 +#define VAR_OUTGOING_INTERFACE 330 +#define VAR_ROOT_HINTS 331 +#define VAR_DO_NOT_QUERY_LOCALHOST 332 +#define VAR_CACHE_MAX_TTL 333 +#define VAR_HARDEN_DNSSEC_STRIPPED 334 +#define VAR_ACCESS_CONTROL 335 +#define VAR_LOCAL_ZONE 336 +#define VAR_LOCAL_DATA 337 +#define VAR_INTERFACE_AUTOMATIC 338 +#define VAR_STATISTICS_INTERVAL 339 +#define VAR_DO_DAEMONIZE 340 +#define VAR_USE_CAPS_FOR_ID 341 +#define VAR_STATISTICS_CUMULATIVE 342 +#define VAR_OUTGOING_PORT_PERMIT 343 +#define VAR_OUTGOING_PORT_AVOID 344 +#define VAR_DLV_ANCHOR_FILE 345 +#define VAR_DLV_ANCHOR 346 +#define VAR_NEG_CACHE_SIZE 347 +#define VAR_HARDEN_REFERRAL_PATH 348 +#define VAR_PRIVATE_ADDRESS 349 +#define VAR_PRIVATE_DOMAIN 350 +#define VAR_REMOTE_CONTROL 351 +#define VAR_CONTROL_ENABLE 352 +#define VAR_CONTROL_INTERFACE 353 +#define VAR_CONTROL_PORT 354 +#define VAR_SERVER_KEY_FILE 355 +#define VAR_SERVER_CERT_FILE 356 +#define VAR_CONTROL_KEY_FILE 357 +#define VAR_CONTROL_CERT_FILE 358 +#define VAR_CONTROL_USE_CERT 359 +#define VAR_TCP_REUSE_TIMEOUT 360 +#define VAR_MAX_REUSE_TCP_QUERIES 361 +#define VAR_EXTENDED_STATISTICS 362 +#define VAR_LOCAL_DATA_PTR 363 +#define VAR_JOSTLE_TIMEOUT 364 +#define VAR_STUB_PRIME 365 +#define VAR_UNWANTED_REPLY_THRESHOLD 366 +#define VAR_LOG_TIME_ASCII 367 +#define VAR_DOMAIN_INSECURE 368 +#define VAR_PYTHON 369 +#define VAR_PYTHON_SCRIPT 370 +#define VAR_VAL_SIG_SKEW_MIN 371 +#define VAR_VAL_SIG_SKEW_MAX 372 +#define VAR_VAL_MAX_RESTART 373 +#define VAR_CACHE_MIN_TTL 374 +#define VAR_VAL_LOG_LEVEL 375 +#define VAR_AUTO_TRUST_ANCHOR_FILE 376 +#define VAR_KEEP_MISSING 377 +#define VAR_ADD_HOLDDOWN 378 +#define VAR_DEL_HOLDDOWN 379 +#define VAR_SO_RCVBUF 380 +#define VAR_EDNS_BUFFER_SIZE 381 +#define VAR_PREFETCH 382 +#define VAR_PREFETCH_KEY 383 +#define VAR_SO_SNDBUF 384 +#define VAR_SO_REUSEPORT 385 +#define VAR_HARDEN_BELOW_NXDOMAIN 386 +#define VAR_IGNORE_CD_FLAG 387 +#define VAR_LOG_QUERIES 388 +#define VAR_LOG_REPLIES 389 +#define VAR_LOG_LOCAL_ACTIONS 390 +#define VAR_TCP_UPSTREAM 391 +#define VAR_SSL_UPSTREAM 392 +#define VAR_TCP_AUTH_QUERY_TIMEOUT 393 +#define VAR_SSL_SERVICE_KEY 394 +#define VAR_SSL_SERVICE_PEM 395 +#define VAR_SSL_PORT 396 +#define VAR_FORWARD_FIRST 397 +#define VAR_STUB_SSL_UPSTREAM 398 +#define VAR_FORWARD_SSL_UPSTREAM 399 +#define VAR_TLS_CERT_BUNDLE 400 +#define VAR_STUB_TCP_UPSTREAM 401 +#define VAR_FORWARD_TCP_UPSTREAM 402 +#define VAR_HTTPS_PORT 403 +#define VAR_HTTP_ENDPOINT 404 +#define VAR_HTTP_MAX_STREAMS 405 +#define VAR_HTTP_QUERY_BUFFER_SIZE 406 +#define VAR_HTTP_RESPONSE_BUFFER_SIZE 407 +#define VAR_HTTP_NODELAY 408 +#define VAR_HTTP_NOTLS_DOWNSTREAM 409 +#define VAR_STUB_FIRST 410 +#define VAR_MINIMAL_RESPONSES 411 +#define VAR_RRSET_ROUNDROBIN 412 +#define VAR_MAX_UDP_SIZE 413 +#define VAR_DELAY_CLOSE 414 +#define VAR_UDP_CONNECT 415 +#define VAR_UNBLOCK_LAN_ZONES 416 +#define VAR_INSECURE_LAN_ZONES 417 +#define VAR_INFRA_CACHE_MIN_RTT 418 +#define VAR_INFRA_KEEP_PROBING 419 +#define VAR_DNS64_PREFIX 420 +#define VAR_DNS64_SYNTHALL 421 +#define VAR_DNS64_IGNORE_AAAA 422 +#define VAR_DNSTAP 423 +#define VAR_DNSTAP_ENABLE 424 +#define VAR_DNSTAP_SOCKET_PATH 425 +#define VAR_DNSTAP_IP 426 +#define VAR_DNSTAP_TLS 427 +#define VAR_DNSTAP_TLS_SERVER_NAME 428 +#define VAR_DNSTAP_TLS_CERT_BUNDLE 429 +#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 430 +#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 431 +#define VAR_DNSTAP_SEND_IDENTITY 432 +#define VAR_DNSTAP_SEND_VERSION 433 +#define VAR_DNSTAP_BIDIRECTIONAL 434 +#define VAR_DNSTAP_IDENTITY 435 +#define VAR_DNSTAP_VERSION 436 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 437 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 438 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 439 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 440 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 441 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 442 +#define VAR_RESPONSE_IP_TAG 443 +#define VAR_RESPONSE_IP 444 +#define VAR_RESPONSE_IP_DATA 445 +#define VAR_HARDEN_ALGO_DOWNGRADE 446 +#define VAR_IP_TRANSPARENT 447 +#define VAR_IP_DSCP 448 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 449 +#define VAR_IP_RATELIMIT 450 +#define VAR_IP_RATELIMIT_SLABS 451 +#define VAR_IP_RATELIMIT_SIZE 452 +#define VAR_RATELIMIT 453 +#define VAR_RATELIMIT_SLABS 454 +#define VAR_RATELIMIT_SIZE 455 - #define VAR_RATELIMIT_FOR_DOMAIN 456 - #define VAR_RATELIMIT_BELOW_DOMAIN 457 - #define VAR_IP_RATELIMIT_FACTOR 458 - #define VAR_RATELIMIT_FACTOR 459 - #define VAR_SEND_CLIENT_SUBNET 460 - #define VAR_CLIENT_SUBNET_ZONE 461 - #define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 462 - #define VAR_CLIENT_SUBNET_OPCODE 463 - #define VAR_MAX_CLIENT_SUBNET_IPV4 464 - #define VAR_MAX_CLIENT_SUBNET_IPV6 465 - #define VAR_MIN_CLIENT_SUBNET_IPV4 466 - #define VAR_MIN_CLIENT_SUBNET_IPV6 467 - #define VAR_MAX_ECS_TREE_SIZE_IPV4 468 - #define VAR_MAX_ECS_TREE_SIZE_IPV6 469 - #define VAR_CAPS_WHITELIST 470 - #define VAR_CACHE_MAX_NEGATIVE_TTL 471 - #define VAR_PERMIT_SMALL_HOLDDOWN 472 - #define VAR_QNAME_MINIMISATION 473 - #define VAR_QNAME_MINIMISATION_STRICT 474 - #define VAR_IP_FREEBIND 475 - #define VAR_DEFINE_TAG 476 - #define VAR_LOCAL_ZONE_TAG 477 - #define VAR_ACCESS_CONTROL_TAG 478 - #define VAR_LOCAL_ZONE_OVERRIDE 479 - #define VAR_ACCESS_CONTROL_TAG_ACTION 480 - #define VAR_ACCESS_CONTROL_TAG_DATA 481 - #define VAR_VIEW 482 - #define VAR_ACCESS_CONTROL_VIEW 483 - #define VAR_VIEW_FIRST 484 - #define VAR_SERVE_EXPIRED 485 - #define VAR_SERVE_EXPIRED_TTL 486 - #define VAR_SERVE_EXPIRED_TTL_RESET 487 - #define VAR_SERVE_EXPIRED_REPLY_TTL 488 - #define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 489 - #define VAR_SERVE_ORIGINAL_TTL 490 - #define VAR_FAKE_DSA 491 - #define VAR_FAKE_SHA1 492 - #define VAR_LOG_IDENTITY 493 - #define VAR_HIDE_TRUSTANCHOR 494 - #define VAR_HIDE_HTTP_USER_AGENT 495 - #define VAR_HTTP_USER_AGENT 496 - #define VAR_TRUST_ANCHOR_SIGNALING 497 - #define VAR_AGGRESSIVE_NSEC 498 - #define VAR_USE_SYSTEMD 499 - #define VAR_SHM_ENABLE 500 - #define VAR_SHM_KEY 501 - #define VAR_ROOT_KEY_SENTINEL 502 - #define VAR_DNSCRYPT 503 - #define VAR_DNSCRYPT_ENABLE 504 - #define VAR_DNSCRYPT_PORT 505 - #define VAR_DNSCRYPT_PROVIDER 506 - #define VAR_DNSCRYPT_SECRET_KEY 507 - #define VAR_DNSCRYPT_PROVIDER_CERT 508 - #define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 509 - #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 510 - #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 511 - #define VAR_DNSCRYPT_NONCE_CACHE_SIZE 512 - #define VAR_DNSCRYPT_NONCE_CACHE_SLABS 513 - #define VAR_PAD_RESPONSES 514 - #define VAR_PAD_RESPONSES_BLOCK_SIZE 515 - #define VAR_PAD_QUERIES 516 - #define VAR_PAD_QUERIES_BLOCK_SIZE 517 - #define VAR_IPSECMOD_ENABLED 518 - #define VAR_IPSECMOD_HOOK 519 - #define VAR_IPSECMOD_IGNORE_BOGUS 520 - #define VAR_IPSECMOD_MAX_TTL 521 - #define VAR_IPSECMOD_WHITELIST 522 - #define VAR_IPSECMOD_STRICT 523 - #define VAR_CACHEDB 524 - #define VAR_CACHEDB_BACKEND 525 - #define VAR_CACHEDB_SECRETSEED 526 - #define VAR_CACHEDB_REDISHOST 527 - #define VAR_CACHEDB_REDISPORT 528 - #define VAR_CACHEDB_REDISTIMEOUT 529 - #define VAR_CACHEDB_REDISEXPIRERECORDS 530 - #define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 531 - #define VAR_FOR_UPSTREAM 532 - #define VAR_AUTH_ZONE 533 - #define VAR_ZONEFILE 534 - #define VAR_MASTER 535 - #define VAR_URL 536 - #define VAR_FOR_DOWNSTREAM 537 - #define VAR_FALLBACK_ENABLED 538 - #define VAR_TLS_ADDITIONAL_PORT 539 - #define VAR_LOW_RTT 540 - #define VAR_LOW_RTT_PERMIL 541 - #define VAR_FAST_SERVER_PERMIL 542 - #define VAR_FAST_SERVER_NUM 543 - #define VAR_ALLOW_NOTIFY 544 - #define VAR_TLS_WIN_CERT 545 - #define VAR_TCP_CONNECTION_LIMIT 546 - #define VAR_FORWARD_NO_CACHE 547 - #define VAR_STUB_NO_CACHE 548 - #define VAR_LOG_SERVFAIL 549 - #define VAR_DENY_ANY 550 - #define VAR_UNKNOWN_SERVER_TIME_LIMIT 551 - #define VAR_LOG_TAG_QUERYREPLY 552 - #define VAR_STREAM_WAIT_SIZE 553 - #define VAR_TLS_CIPHERS 554 - #define VAR_TLS_CIPHERSUITES 555 - #define VAR_TLS_USE_SNI 556 - #define VAR_IPSET 557 - #define VAR_IPSET_NAME_V4 558 - #define VAR_IPSET_NAME_V6 559 - #define VAR_TLS_SESSION_TICKET_KEYS 560 - #define VAR_RPZ 561 - #define VAR_TAGS 562 - #define VAR_RPZ_ACTION_OVERRIDE 563 - #define VAR_RPZ_CNAME_OVERRIDE 564 - #define VAR_RPZ_LOG 565 - #define VAR_RPZ_LOG_NAME 566 - #define VAR_DYNLIB 567 - #define VAR_DYNLIB_FILE 568 - #define VAR_EDNS_CLIENT_STRING 569 - #define VAR_EDNS_CLIENT_STRING_OPCODE 570 - #define VAR_NSID 571 - #define VAR_ZONEMD_PERMISSIVE_MODE 572 - #define VAR_ZONEMD_CHECK 573 - #define VAR_ZONEMD_REJECT_ABSENCE 574 ++#define VAR_OUTBOUND_MSG_RETRY 456 ++#define VAR_RATELIMIT_FOR_DOMAIN 457 ++#define VAR_RATELIMIT_BELOW_DOMAIN 458 ++#define VAR_IP_RATELIMIT_FACTOR 459 ++#define VAR_RATELIMIT_FACTOR 460 ++#define VAR_SEND_CLIENT_SUBNET 461 ++#define VAR_CLIENT_SUBNET_ZONE 462 ++#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 463 ++#define VAR_CLIENT_SUBNET_OPCODE 464 ++#define VAR_MAX_CLIENT_SUBNET_IPV4 465 ++#define VAR_MAX_CLIENT_SUBNET_IPV6 466 ++#define VAR_MIN_CLIENT_SUBNET_IPV4 467 ++#define VAR_MIN_CLIENT_SUBNET_IPV6 468 ++#define VAR_MAX_ECS_TREE_SIZE_IPV4 469 ++#define VAR_MAX_ECS_TREE_SIZE_IPV6 470 ++#define VAR_CAPS_WHITELIST 471 ++#define VAR_CACHE_MAX_NEGATIVE_TTL 472 ++#define VAR_PERMIT_SMALL_HOLDDOWN 473 ++#define VAR_QNAME_MINIMISATION 474 ++#define VAR_QNAME_MINIMISATION_STRICT 475 ++#define VAR_IP_FREEBIND 476 ++#define VAR_DEFINE_TAG 477 ++#define VAR_LOCAL_ZONE_TAG 478 ++#define VAR_ACCESS_CONTROL_TAG 479 ++#define VAR_LOCAL_ZONE_OVERRIDE 480 ++#define VAR_ACCESS_CONTROL_TAG_ACTION 481 ++#define VAR_ACCESS_CONTROL_TAG_DATA 482 ++#define VAR_VIEW 483 ++#define VAR_ACCESS_CONTROL_VIEW 484 ++#define VAR_VIEW_FIRST 485 ++#define VAR_SERVE_EXPIRED 486 ++#define VAR_SERVE_EXPIRED_TTL 487 ++#define VAR_SERVE_EXPIRED_TTL_RESET 488 ++#define VAR_SERVE_EXPIRED_REPLY_TTL 489 ++#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 490 ++#define VAR_SERVE_ORIGINAL_TTL 491 ++#define VAR_FAKE_DSA 492 ++#define VAR_FAKE_SHA1 493 ++#define VAR_LOG_IDENTITY 494 ++#define VAR_HIDE_TRUSTANCHOR 495 ++#define VAR_HIDE_HTTP_USER_AGENT 496 ++#define VAR_HTTP_USER_AGENT 497 ++#define VAR_TRUST_ANCHOR_SIGNALING 498 ++#define VAR_AGGRESSIVE_NSEC 499 ++#define VAR_USE_SYSTEMD 500 ++#define VAR_SHM_ENABLE 501 ++#define VAR_SHM_KEY 502 ++#define VAR_ROOT_KEY_SENTINEL 503 ++#define VAR_DNSCRYPT 504 ++#define VAR_DNSCRYPT_ENABLE 505 ++#define VAR_DNSCRYPT_PORT 506 ++#define VAR_DNSCRYPT_PROVIDER 507 ++#define VAR_DNSCRYPT_SECRET_KEY 508 ++#define VAR_DNSCRYPT_PROVIDER_CERT 509 ++#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 510 ++#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 511 ++#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 512 ++#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 513 ++#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 514 ++#define VAR_PAD_RESPONSES 515 ++#define VAR_PAD_RESPONSES_BLOCK_SIZE 516 ++#define VAR_PAD_QUERIES 517 ++#define VAR_PAD_QUERIES_BLOCK_SIZE 518 ++#define VAR_IPSECMOD_ENABLED 519 ++#define VAR_IPSECMOD_HOOK 520 ++#define VAR_IPSECMOD_IGNORE_BOGUS 521 ++#define VAR_IPSECMOD_MAX_TTL 522 ++#define VAR_IPSECMOD_WHITELIST 523 ++#define VAR_IPSECMOD_STRICT 524 ++#define VAR_CACHEDB 525 ++#define VAR_CACHEDB_BACKEND 526 ++#define VAR_CACHEDB_SECRETSEED 527 ++#define VAR_CACHEDB_REDISHOST 528 ++#define VAR_CACHEDB_REDISPORT 529 ++#define VAR_CACHEDB_REDISTIMEOUT 530 ++#define VAR_CACHEDB_REDISEXPIRERECORDS 531 ++#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 532 ++#define VAR_FOR_UPSTREAM 533 ++#define VAR_AUTH_ZONE 534 ++#define VAR_ZONEFILE 535 ++#define VAR_MASTER 536 ++#define VAR_URL 537 ++#define VAR_FOR_DOWNSTREAM 538 ++#define VAR_FALLBACK_ENABLED 539 ++#define VAR_TLS_ADDITIONAL_PORT 540 ++#define VAR_LOW_RTT 541 ++#define VAR_LOW_RTT_PERMIL 542 ++#define VAR_FAST_SERVER_PERMIL 543 ++#define VAR_FAST_SERVER_NUM 544 ++#define VAR_ALLOW_NOTIFY 545 ++#define VAR_TLS_WIN_CERT 546 ++#define VAR_TCP_CONNECTION_LIMIT 547 ++#define VAR_FORWARD_NO_CACHE 548 ++#define VAR_STUB_NO_CACHE 549 ++#define VAR_LOG_SERVFAIL 550 ++#define VAR_DENY_ANY 551 ++#define VAR_UNKNOWN_SERVER_TIME_LIMIT 552 ++#define VAR_LOG_TAG_QUERYREPLY 553 ++#define VAR_STREAM_WAIT_SIZE 554 ++#define VAR_TLS_CIPHERS 555 ++#define VAR_TLS_CIPHERSUITES 556 ++#define VAR_TLS_USE_SNI 557 ++#define VAR_IPSET 558 ++#define VAR_IPSET_NAME_V4 559 ++#define VAR_IPSET_NAME_V6 560 ++#define VAR_TLS_SESSION_TICKET_KEYS 561 ++#define VAR_RPZ 562 ++#define VAR_TAGS 563 ++#define VAR_RPZ_ACTION_OVERRIDE 564 ++#define VAR_RPZ_CNAME_OVERRIDE 565 ++#define VAR_RPZ_LOG 566 ++#define VAR_RPZ_LOG_NAME 567 ++#define VAR_DYNLIB 568 ++#define VAR_DYNLIB_FILE 569 ++#define VAR_EDNS_CLIENT_STRING 570 ++#define VAR_EDNS_CLIENT_STRING_OPCODE 571 ++#define VAR_NSID 572 ++#define VAR_ZONEMD_PERMISSIVE_MODE 573 ++#define VAR_ZONEMD_CHECK 574 ++#define VAR_ZONEMD_REJECT_ABSENCE 575 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@@ -790,9 -669,9 +792,9 @@@ union YYSTYP char* str; - #line 794 "util/configparser.c" -#line 673 "util/configparser.c" /* yacc.c:355 */ -}; ++#line 796 "util/configparser.c" +}; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@@ -804,680 -683,10 +806,682 @@@ extern YYSTYPE yylval int yyparse (void); #endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_SPACE = 3, /* SPACE */ + YYSYMBOL_LETTER = 4, /* LETTER */ + YYSYMBOL_NEWLINE = 5, /* NEWLINE */ + YYSYMBOL_COMMENT = 6, /* COMMENT */ + YYSYMBOL_COLON = 7, /* COLON */ + YYSYMBOL_ANY = 8, /* ANY */ + YYSYMBOL_ZONESTR = 9, /* ZONESTR */ + YYSYMBOL_STRING_ARG = 10, /* STRING_ARG */ + YYSYMBOL_VAR_FORCE_TOPLEVEL = 11, /* VAR_FORCE_TOPLEVEL */ + YYSYMBOL_VAR_SERVER = 12, /* VAR_SERVER */ + YYSYMBOL_VAR_VERBOSITY = 13, /* VAR_VERBOSITY */ + YYSYMBOL_VAR_NUM_THREADS = 14, /* VAR_NUM_THREADS */ + YYSYMBOL_VAR_PORT = 15, /* VAR_PORT */ + YYSYMBOL_VAR_OUTGOING_RANGE = 16, /* VAR_OUTGOING_RANGE */ + YYSYMBOL_VAR_INTERFACE = 17, /* VAR_INTERFACE */ + YYSYMBOL_VAR_PREFER_IP4 = 18, /* VAR_PREFER_IP4 */ + YYSYMBOL_VAR_DO_IP4 = 19, /* VAR_DO_IP4 */ + YYSYMBOL_VAR_DO_IP6 = 20, /* VAR_DO_IP6 */ + YYSYMBOL_VAR_PREFER_IP6 = 21, /* VAR_PREFER_IP6 */ + YYSYMBOL_VAR_DO_UDP = 22, /* VAR_DO_UDP */ + YYSYMBOL_VAR_DO_TCP = 23, /* VAR_DO_TCP */ + YYSYMBOL_VAR_TCP_MSS = 24, /* VAR_TCP_MSS */ + YYSYMBOL_VAR_OUTGOING_TCP_MSS = 25, /* VAR_OUTGOING_TCP_MSS */ + YYSYMBOL_VAR_TCP_IDLE_TIMEOUT = 26, /* VAR_TCP_IDLE_TIMEOUT */ + YYSYMBOL_VAR_EDNS_TCP_KEEPALIVE = 27, /* VAR_EDNS_TCP_KEEPALIVE */ + YYSYMBOL_VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 28, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ + YYSYMBOL_VAR_CHROOT = 29, /* VAR_CHROOT */ + YYSYMBOL_VAR_USERNAME = 30, /* VAR_USERNAME */ + YYSYMBOL_VAR_DIRECTORY = 31, /* VAR_DIRECTORY */ + YYSYMBOL_VAR_LOGFILE = 32, /* VAR_LOGFILE */ + YYSYMBOL_VAR_PIDFILE = 33, /* VAR_PIDFILE */ + YYSYMBOL_VAR_MSG_CACHE_SIZE = 34, /* VAR_MSG_CACHE_SIZE */ + YYSYMBOL_VAR_MSG_CACHE_SLABS = 35, /* VAR_MSG_CACHE_SLABS */ + YYSYMBOL_VAR_NUM_QUERIES_PER_THREAD = 36, /* VAR_NUM_QUERIES_PER_THREAD */ + YYSYMBOL_VAR_RRSET_CACHE_SIZE = 37, /* VAR_RRSET_CACHE_SIZE */ + YYSYMBOL_VAR_RRSET_CACHE_SLABS = 38, /* VAR_RRSET_CACHE_SLABS */ + YYSYMBOL_VAR_OUTGOING_NUM_TCP = 39, /* VAR_OUTGOING_NUM_TCP */ + YYSYMBOL_VAR_INFRA_HOST_TTL = 40, /* VAR_INFRA_HOST_TTL */ + YYSYMBOL_VAR_INFRA_LAME_TTL = 41, /* VAR_INFRA_LAME_TTL */ + YYSYMBOL_VAR_INFRA_CACHE_SLABS = 42, /* VAR_INFRA_CACHE_SLABS */ + YYSYMBOL_VAR_INFRA_CACHE_NUMHOSTS = 43, /* VAR_INFRA_CACHE_NUMHOSTS */ + YYSYMBOL_VAR_INFRA_CACHE_LAME_SIZE = 44, /* VAR_INFRA_CACHE_LAME_SIZE */ + YYSYMBOL_VAR_NAME = 45, /* VAR_NAME */ + YYSYMBOL_VAR_STUB_ZONE = 46, /* VAR_STUB_ZONE */ + YYSYMBOL_VAR_STUB_HOST = 47, /* VAR_STUB_HOST */ + YYSYMBOL_VAR_STUB_ADDR = 48, /* VAR_STUB_ADDR */ + YYSYMBOL_VAR_TARGET_FETCH_POLICY = 49, /* VAR_TARGET_FETCH_POLICY */ + YYSYMBOL_VAR_HARDEN_SHORT_BUFSIZE = 50, /* VAR_HARDEN_SHORT_BUFSIZE */ + YYSYMBOL_VAR_HARDEN_LARGE_QUERIES = 51, /* VAR_HARDEN_LARGE_QUERIES */ + YYSYMBOL_VAR_FORWARD_ZONE = 52, /* VAR_FORWARD_ZONE */ + YYSYMBOL_VAR_FORWARD_HOST = 53, /* VAR_FORWARD_HOST */ + YYSYMBOL_VAR_FORWARD_ADDR = 54, /* VAR_FORWARD_ADDR */ + YYSYMBOL_VAR_DO_NOT_QUERY_ADDRESS = 55, /* VAR_DO_NOT_QUERY_ADDRESS */ + YYSYMBOL_VAR_HIDE_IDENTITY = 56, /* VAR_HIDE_IDENTITY */ + YYSYMBOL_VAR_HIDE_VERSION = 57, /* VAR_HIDE_VERSION */ + YYSYMBOL_VAR_IDENTITY = 58, /* VAR_IDENTITY */ + YYSYMBOL_VAR_VERSION = 59, /* VAR_VERSION */ + YYSYMBOL_VAR_HARDEN_GLUE = 60, /* VAR_HARDEN_GLUE */ + YYSYMBOL_VAR_MODULE_CONF = 61, /* VAR_MODULE_CONF */ + YYSYMBOL_VAR_TRUST_ANCHOR_FILE = 62, /* VAR_TRUST_ANCHOR_FILE */ + YYSYMBOL_VAR_TRUST_ANCHOR = 63, /* VAR_TRUST_ANCHOR */ + YYSYMBOL_VAR_VAL_OVERRIDE_DATE = 64, /* VAR_VAL_OVERRIDE_DATE */ + YYSYMBOL_VAR_BOGUS_TTL = 65, /* VAR_BOGUS_TTL */ + YYSYMBOL_VAR_VAL_CLEAN_ADDITIONAL = 66, /* VAR_VAL_CLEAN_ADDITIONAL */ + YYSYMBOL_VAR_VAL_PERMISSIVE_MODE = 67, /* VAR_VAL_PERMISSIVE_MODE */ + YYSYMBOL_VAR_INCOMING_NUM_TCP = 68, /* VAR_INCOMING_NUM_TCP */ + YYSYMBOL_VAR_MSG_BUFFER_SIZE = 69, /* VAR_MSG_BUFFER_SIZE */ + YYSYMBOL_VAR_KEY_CACHE_SIZE = 70, /* VAR_KEY_CACHE_SIZE */ + YYSYMBOL_VAR_KEY_CACHE_SLABS = 71, /* VAR_KEY_CACHE_SLABS */ + YYSYMBOL_VAR_TRUSTED_KEYS_FILE = 72, /* VAR_TRUSTED_KEYS_FILE */ + YYSYMBOL_VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 73, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ + YYSYMBOL_VAR_USE_SYSLOG = 74, /* VAR_USE_SYSLOG */ + YYSYMBOL_VAR_OUTGOING_INTERFACE = 75, /* VAR_OUTGOING_INTERFACE */ + YYSYMBOL_VAR_ROOT_HINTS = 76, /* VAR_ROOT_HINTS */ + YYSYMBOL_VAR_DO_NOT_QUERY_LOCALHOST = 77, /* VAR_DO_NOT_QUERY_LOCALHOST */ + YYSYMBOL_VAR_CACHE_MAX_TTL = 78, /* VAR_CACHE_MAX_TTL */ + YYSYMBOL_VAR_HARDEN_DNSSEC_STRIPPED = 79, /* VAR_HARDEN_DNSSEC_STRIPPED */ + YYSYMBOL_VAR_ACCESS_CONTROL = 80, /* VAR_ACCESS_CONTROL */ + YYSYMBOL_VAR_LOCAL_ZONE = 81, /* VAR_LOCAL_ZONE */ + YYSYMBOL_VAR_LOCAL_DATA = 82, /* VAR_LOCAL_DATA */ + YYSYMBOL_VAR_INTERFACE_AUTOMATIC = 83, /* VAR_INTERFACE_AUTOMATIC */ + YYSYMBOL_VAR_STATISTICS_INTERVAL = 84, /* VAR_STATISTICS_INTERVAL */ + YYSYMBOL_VAR_DO_DAEMONIZE = 85, /* VAR_DO_DAEMONIZE */ + YYSYMBOL_VAR_USE_CAPS_FOR_ID = 86, /* VAR_USE_CAPS_FOR_ID */ + YYSYMBOL_VAR_STATISTICS_CUMULATIVE = 87, /* VAR_STATISTICS_CUMULATIVE */ + YYSYMBOL_VAR_OUTGOING_PORT_PERMIT = 88, /* VAR_OUTGOING_PORT_PERMIT */ + YYSYMBOL_VAR_OUTGOING_PORT_AVOID = 89, /* VAR_OUTGOING_PORT_AVOID */ + YYSYMBOL_VAR_DLV_ANCHOR_FILE = 90, /* VAR_DLV_ANCHOR_FILE */ + YYSYMBOL_VAR_DLV_ANCHOR = 91, /* VAR_DLV_ANCHOR */ + YYSYMBOL_VAR_NEG_CACHE_SIZE = 92, /* VAR_NEG_CACHE_SIZE */ + YYSYMBOL_VAR_HARDEN_REFERRAL_PATH = 93, /* VAR_HARDEN_REFERRAL_PATH */ + YYSYMBOL_VAR_PRIVATE_ADDRESS = 94, /* VAR_PRIVATE_ADDRESS */ + YYSYMBOL_VAR_PRIVATE_DOMAIN = 95, /* VAR_PRIVATE_DOMAIN */ + YYSYMBOL_VAR_REMOTE_CONTROL = 96, /* VAR_REMOTE_CONTROL */ + YYSYMBOL_VAR_CONTROL_ENABLE = 97, /* VAR_CONTROL_ENABLE */ + YYSYMBOL_VAR_CONTROL_INTERFACE = 98, /* VAR_CONTROL_INTERFACE */ + YYSYMBOL_VAR_CONTROL_PORT = 99, /* VAR_CONTROL_PORT */ + YYSYMBOL_VAR_SERVER_KEY_FILE = 100, /* VAR_SERVER_KEY_FILE */ + YYSYMBOL_VAR_SERVER_CERT_FILE = 101, /* VAR_SERVER_CERT_FILE */ + YYSYMBOL_VAR_CONTROL_KEY_FILE = 102, /* VAR_CONTROL_KEY_FILE */ + YYSYMBOL_VAR_CONTROL_CERT_FILE = 103, /* VAR_CONTROL_CERT_FILE */ + YYSYMBOL_VAR_CONTROL_USE_CERT = 104, /* VAR_CONTROL_USE_CERT */ + YYSYMBOL_VAR_TCP_REUSE_TIMEOUT = 105, /* VAR_TCP_REUSE_TIMEOUT */ + YYSYMBOL_VAR_MAX_REUSE_TCP_QUERIES = 106, /* VAR_MAX_REUSE_TCP_QUERIES */ + YYSYMBOL_VAR_EXTENDED_STATISTICS = 107, /* VAR_EXTENDED_STATISTICS */ + YYSYMBOL_VAR_LOCAL_DATA_PTR = 108, /* VAR_LOCAL_DATA_PTR */ + YYSYMBOL_VAR_JOSTLE_TIMEOUT = 109, /* VAR_JOSTLE_TIMEOUT */ + YYSYMBOL_VAR_STUB_PRIME = 110, /* VAR_STUB_PRIME */ + YYSYMBOL_VAR_UNWANTED_REPLY_THRESHOLD = 111, /* VAR_UNWANTED_REPLY_THRESHOLD */ + YYSYMBOL_VAR_LOG_TIME_ASCII = 112, /* VAR_LOG_TIME_ASCII */ + YYSYMBOL_VAR_DOMAIN_INSECURE = 113, /* VAR_DOMAIN_INSECURE */ + YYSYMBOL_VAR_PYTHON = 114, /* VAR_PYTHON */ + YYSYMBOL_VAR_PYTHON_SCRIPT = 115, /* VAR_PYTHON_SCRIPT */ + YYSYMBOL_VAR_VAL_SIG_SKEW_MIN = 116, /* VAR_VAL_SIG_SKEW_MIN */ + YYSYMBOL_VAR_VAL_SIG_SKEW_MAX = 117, /* VAR_VAL_SIG_SKEW_MAX */ + YYSYMBOL_VAR_VAL_MAX_RESTART = 118, /* VAR_VAL_MAX_RESTART */ + YYSYMBOL_VAR_CACHE_MIN_TTL = 119, /* VAR_CACHE_MIN_TTL */ + YYSYMBOL_VAR_VAL_LOG_LEVEL = 120, /* VAR_VAL_LOG_LEVEL */ + YYSYMBOL_VAR_AUTO_TRUST_ANCHOR_FILE = 121, /* VAR_AUTO_TRUST_ANCHOR_FILE */ + YYSYMBOL_VAR_KEEP_MISSING = 122, /* VAR_KEEP_MISSING */ + YYSYMBOL_VAR_ADD_HOLDDOWN = 123, /* VAR_ADD_HOLDDOWN */ + YYSYMBOL_VAR_DEL_HOLDDOWN = 124, /* VAR_DEL_HOLDDOWN */ + YYSYMBOL_VAR_SO_RCVBUF = 125, /* VAR_SO_RCVBUF */ + YYSYMBOL_VAR_EDNS_BUFFER_SIZE = 126, /* VAR_EDNS_BUFFER_SIZE */ + YYSYMBOL_VAR_PREFETCH = 127, /* VAR_PREFETCH */ + YYSYMBOL_VAR_PREFETCH_KEY = 128, /* VAR_PREFETCH_KEY */ + YYSYMBOL_VAR_SO_SNDBUF = 129, /* VAR_SO_SNDBUF */ + YYSYMBOL_VAR_SO_REUSEPORT = 130, /* VAR_SO_REUSEPORT */ + YYSYMBOL_VAR_HARDEN_BELOW_NXDOMAIN = 131, /* VAR_HARDEN_BELOW_NXDOMAIN */ + YYSYMBOL_VAR_IGNORE_CD_FLAG = 132, /* VAR_IGNORE_CD_FLAG */ + YYSYMBOL_VAR_LOG_QUERIES = 133, /* VAR_LOG_QUERIES */ + YYSYMBOL_VAR_LOG_REPLIES = 134, /* VAR_LOG_REPLIES */ + YYSYMBOL_VAR_LOG_LOCAL_ACTIONS = 135, /* VAR_LOG_LOCAL_ACTIONS */ + YYSYMBOL_VAR_TCP_UPSTREAM = 136, /* VAR_TCP_UPSTREAM */ + YYSYMBOL_VAR_SSL_UPSTREAM = 137, /* VAR_SSL_UPSTREAM */ + YYSYMBOL_VAR_TCP_AUTH_QUERY_TIMEOUT = 138, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ + YYSYMBOL_VAR_SSL_SERVICE_KEY = 139, /* VAR_SSL_SERVICE_KEY */ + YYSYMBOL_VAR_SSL_SERVICE_PEM = 140, /* VAR_SSL_SERVICE_PEM */ + YYSYMBOL_VAR_SSL_PORT = 141, /* VAR_SSL_PORT */ + YYSYMBOL_VAR_FORWARD_FIRST = 142, /* VAR_FORWARD_FIRST */ + YYSYMBOL_VAR_STUB_SSL_UPSTREAM = 143, /* VAR_STUB_SSL_UPSTREAM */ + YYSYMBOL_VAR_FORWARD_SSL_UPSTREAM = 144, /* VAR_FORWARD_SSL_UPSTREAM */ + YYSYMBOL_VAR_TLS_CERT_BUNDLE = 145, /* VAR_TLS_CERT_BUNDLE */ + YYSYMBOL_VAR_STUB_TCP_UPSTREAM = 146, /* VAR_STUB_TCP_UPSTREAM */ + YYSYMBOL_VAR_FORWARD_TCP_UPSTREAM = 147, /* VAR_FORWARD_TCP_UPSTREAM */ + YYSYMBOL_VAR_HTTPS_PORT = 148, /* VAR_HTTPS_PORT */ + YYSYMBOL_VAR_HTTP_ENDPOINT = 149, /* VAR_HTTP_ENDPOINT */ + YYSYMBOL_VAR_HTTP_MAX_STREAMS = 150, /* VAR_HTTP_MAX_STREAMS */ + YYSYMBOL_VAR_HTTP_QUERY_BUFFER_SIZE = 151, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + YYSYMBOL_VAR_HTTP_RESPONSE_BUFFER_SIZE = 152, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + YYSYMBOL_VAR_HTTP_NODELAY = 153, /* VAR_HTTP_NODELAY */ + YYSYMBOL_VAR_HTTP_NOTLS_DOWNSTREAM = 154, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + YYSYMBOL_VAR_STUB_FIRST = 155, /* VAR_STUB_FIRST */ + YYSYMBOL_VAR_MINIMAL_RESPONSES = 156, /* VAR_MINIMAL_RESPONSES */ + YYSYMBOL_VAR_RRSET_ROUNDROBIN = 157, /* VAR_RRSET_ROUNDROBIN */ + YYSYMBOL_VAR_MAX_UDP_SIZE = 158, /* VAR_MAX_UDP_SIZE */ + YYSYMBOL_VAR_DELAY_CLOSE = 159, /* VAR_DELAY_CLOSE */ + YYSYMBOL_VAR_UDP_CONNECT = 160, /* VAR_UDP_CONNECT */ + YYSYMBOL_VAR_UNBLOCK_LAN_ZONES = 161, /* VAR_UNBLOCK_LAN_ZONES */ + YYSYMBOL_VAR_INSECURE_LAN_ZONES = 162, /* VAR_INSECURE_LAN_ZONES */ + YYSYMBOL_VAR_INFRA_CACHE_MIN_RTT = 163, /* VAR_INFRA_CACHE_MIN_RTT */ + YYSYMBOL_VAR_INFRA_KEEP_PROBING = 164, /* VAR_INFRA_KEEP_PROBING */ + YYSYMBOL_VAR_DNS64_PREFIX = 165, /* VAR_DNS64_PREFIX */ + YYSYMBOL_VAR_DNS64_SYNTHALL = 166, /* VAR_DNS64_SYNTHALL */ + YYSYMBOL_VAR_DNS64_IGNORE_AAAA = 167, /* VAR_DNS64_IGNORE_AAAA */ + YYSYMBOL_VAR_DNSTAP = 168, /* VAR_DNSTAP */ + YYSYMBOL_VAR_DNSTAP_ENABLE = 169, /* VAR_DNSTAP_ENABLE */ + YYSYMBOL_VAR_DNSTAP_SOCKET_PATH = 170, /* VAR_DNSTAP_SOCKET_PATH */ + YYSYMBOL_VAR_DNSTAP_IP = 171, /* VAR_DNSTAP_IP */ + YYSYMBOL_VAR_DNSTAP_TLS = 172, /* VAR_DNSTAP_TLS */ + YYSYMBOL_VAR_DNSTAP_TLS_SERVER_NAME = 173, /* VAR_DNSTAP_TLS_SERVER_NAME */ + YYSYMBOL_VAR_DNSTAP_TLS_CERT_BUNDLE = 174, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 175, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 176, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + YYSYMBOL_VAR_DNSTAP_SEND_IDENTITY = 177, /* VAR_DNSTAP_SEND_IDENTITY */ + YYSYMBOL_VAR_DNSTAP_SEND_VERSION = 178, /* VAR_DNSTAP_SEND_VERSION */ + YYSYMBOL_VAR_DNSTAP_BIDIRECTIONAL = 179, /* VAR_DNSTAP_BIDIRECTIONAL */ + YYSYMBOL_VAR_DNSTAP_IDENTITY = 180, /* VAR_DNSTAP_IDENTITY */ + YYSYMBOL_VAR_DNSTAP_VERSION = 181, /* VAR_DNSTAP_VERSION */ + YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 182, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 183, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 184, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 185, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 186, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 187, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_RESPONSE_IP_TAG = 188, /* VAR_RESPONSE_IP_TAG */ + YYSYMBOL_VAR_RESPONSE_IP = 189, /* VAR_RESPONSE_IP */ + YYSYMBOL_VAR_RESPONSE_IP_DATA = 190, /* VAR_RESPONSE_IP_DATA */ + YYSYMBOL_VAR_HARDEN_ALGO_DOWNGRADE = 191, /* VAR_HARDEN_ALGO_DOWNGRADE */ + YYSYMBOL_VAR_IP_TRANSPARENT = 192, /* VAR_IP_TRANSPARENT */ + YYSYMBOL_VAR_IP_DSCP = 193, /* VAR_IP_DSCP */ + YYSYMBOL_VAR_DISABLE_DNSSEC_LAME_CHECK = 194, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + YYSYMBOL_VAR_IP_RATELIMIT = 195, /* VAR_IP_RATELIMIT */ + YYSYMBOL_VAR_IP_RATELIMIT_SLABS = 196, /* VAR_IP_RATELIMIT_SLABS */ + YYSYMBOL_VAR_IP_RATELIMIT_SIZE = 197, /* VAR_IP_RATELIMIT_SIZE */ + YYSYMBOL_VAR_RATELIMIT = 198, /* VAR_RATELIMIT */ + YYSYMBOL_VAR_RATELIMIT_SLABS = 199, /* VAR_RATELIMIT_SLABS */ + YYSYMBOL_VAR_RATELIMIT_SIZE = 200, /* VAR_RATELIMIT_SIZE */ - YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 201, /* VAR_RATELIMIT_FOR_DOMAIN */ - YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 202, /* VAR_RATELIMIT_BELOW_DOMAIN */ - YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 203, /* VAR_IP_RATELIMIT_FACTOR */ - YYSYMBOL_VAR_RATELIMIT_FACTOR = 204, /* VAR_RATELIMIT_FACTOR */ - YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 205, /* VAR_SEND_CLIENT_SUBNET */ - YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 206, /* VAR_CLIENT_SUBNET_ZONE */ - YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 207, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 208, /* VAR_CLIENT_SUBNET_OPCODE */ - YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 209, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 210, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 211, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 212, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 213, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 214, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - YYSYMBOL_VAR_CAPS_WHITELIST = 215, /* VAR_CAPS_WHITELIST */ - YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 216, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 217, /* VAR_PERMIT_SMALL_HOLDDOWN */ - YYSYMBOL_VAR_QNAME_MINIMISATION = 218, /* VAR_QNAME_MINIMISATION */ - YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 219, /* VAR_QNAME_MINIMISATION_STRICT */ - YYSYMBOL_VAR_IP_FREEBIND = 220, /* VAR_IP_FREEBIND */ - YYSYMBOL_VAR_DEFINE_TAG = 221, /* VAR_DEFINE_TAG */ - YYSYMBOL_VAR_LOCAL_ZONE_TAG = 222, /* VAR_LOCAL_ZONE_TAG */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 223, /* VAR_ACCESS_CONTROL_TAG */ - YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 224, /* VAR_LOCAL_ZONE_OVERRIDE */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 225, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 226, /* VAR_ACCESS_CONTROL_TAG_DATA */ - YYSYMBOL_VAR_VIEW = 227, /* VAR_VIEW */ - YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 228, /* VAR_ACCESS_CONTROL_VIEW */ - YYSYMBOL_VAR_VIEW_FIRST = 229, /* VAR_VIEW_FIRST */ - YYSYMBOL_VAR_SERVE_EXPIRED = 230, /* VAR_SERVE_EXPIRED */ - YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 231, /* VAR_SERVE_EXPIRED_TTL */ - YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 232, /* VAR_SERVE_EXPIRED_TTL_RESET */ - YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 233, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 234, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 235, /* VAR_SERVE_ORIGINAL_TTL */ - YYSYMBOL_VAR_FAKE_DSA = 236, /* VAR_FAKE_DSA */ - YYSYMBOL_VAR_FAKE_SHA1 = 237, /* VAR_FAKE_SHA1 */ - YYSYMBOL_VAR_LOG_IDENTITY = 238, /* VAR_LOG_IDENTITY */ - YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 239, /* VAR_HIDE_TRUSTANCHOR */ - YYSYMBOL_VAR_HIDE_HTTP_USER_AGENT = 240, /* VAR_HIDE_HTTP_USER_AGENT */ - YYSYMBOL_VAR_HTTP_USER_AGENT = 241, /* VAR_HTTP_USER_AGENT */ - YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 242, /* VAR_TRUST_ANCHOR_SIGNALING */ - YYSYMBOL_VAR_AGGRESSIVE_NSEC = 243, /* VAR_AGGRESSIVE_NSEC */ - YYSYMBOL_VAR_USE_SYSTEMD = 244, /* VAR_USE_SYSTEMD */ - YYSYMBOL_VAR_SHM_ENABLE = 245, /* VAR_SHM_ENABLE */ - YYSYMBOL_VAR_SHM_KEY = 246, /* VAR_SHM_KEY */ - YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 247, /* VAR_ROOT_KEY_SENTINEL */ - YYSYMBOL_VAR_DNSCRYPT = 248, /* VAR_DNSCRYPT */ - YYSYMBOL_VAR_DNSCRYPT_ENABLE = 249, /* VAR_DNSCRYPT_ENABLE */ - YYSYMBOL_VAR_DNSCRYPT_PORT = 250, /* VAR_DNSCRYPT_PORT */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 251, /* VAR_DNSCRYPT_PROVIDER */ - YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 252, /* VAR_DNSCRYPT_SECRET_KEY */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 253, /* VAR_DNSCRYPT_PROVIDER_CERT */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 254, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 255, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 256, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 257, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 258, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - YYSYMBOL_VAR_PAD_RESPONSES = 259, /* VAR_PAD_RESPONSES */ - YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 260, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - YYSYMBOL_VAR_PAD_QUERIES = 261, /* VAR_PAD_QUERIES */ - YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 262, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - YYSYMBOL_VAR_IPSECMOD_ENABLED = 263, /* VAR_IPSECMOD_ENABLED */ - YYSYMBOL_VAR_IPSECMOD_HOOK = 264, /* VAR_IPSECMOD_HOOK */ - YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 265, /* VAR_IPSECMOD_IGNORE_BOGUS */ - YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 266, /* VAR_IPSECMOD_MAX_TTL */ - YYSYMBOL_VAR_IPSECMOD_WHITELIST = 267, /* VAR_IPSECMOD_WHITELIST */ - YYSYMBOL_VAR_IPSECMOD_STRICT = 268, /* VAR_IPSECMOD_STRICT */ - YYSYMBOL_VAR_CACHEDB = 269, /* VAR_CACHEDB */ - YYSYMBOL_VAR_CACHEDB_BACKEND = 270, /* VAR_CACHEDB_BACKEND */ - YYSYMBOL_VAR_CACHEDB_SECRETSEED = 271, /* VAR_CACHEDB_SECRETSEED */ - YYSYMBOL_VAR_CACHEDB_REDISHOST = 272, /* VAR_CACHEDB_REDISHOST */ - YYSYMBOL_VAR_CACHEDB_REDISPORT = 273, /* VAR_CACHEDB_REDISPORT */ - YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 274, /* VAR_CACHEDB_REDISTIMEOUT */ - YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 275, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 276, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - YYSYMBOL_VAR_FOR_UPSTREAM = 277, /* VAR_FOR_UPSTREAM */ - YYSYMBOL_VAR_AUTH_ZONE = 278, /* VAR_AUTH_ZONE */ - YYSYMBOL_VAR_ZONEFILE = 279, /* VAR_ZONEFILE */ - YYSYMBOL_VAR_MASTER = 280, /* VAR_MASTER */ - YYSYMBOL_VAR_URL = 281, /* VAR_URL */ - YYSYMBOL_VAR_FOR_DOWNSTREAM = 282, /* VAR_FOR_DOWNSTREAM */ - YYSYMBOL_VAR_FALLBACK_ENABLED = 283, /* VAR_FALLBACK_ENABLED */ - YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 284, /* VAR_TLS_ADDITIONAL_PORT */ - YYSYMBOL_VAR_LOW_RTT = 285, /* VAR_LOW_RTT */ - YYSYMBOL_VAR_LOW_RTT_PERMIL = 286, /* VAR_LOW_RTT_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_PERMIL = 287, /* VAR_FAST_SERVER_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_NUM = 288, /* VAR_FAST_SERVER_NUM */ - YYSYMBOL_VAR_ALLOW_NOTIFY = 289, /* VAR_ALLOW_NOTIFY */ - YYSYMBOL_VAR_TLS_WIN_CERT = 290, /* VAR_TLS_WIN_CERT */ - YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 291, /* VAR_TCP_CONNECTION_LIMIT */ - YYSYMBOL_VAR_FORWARD_NO_CACHE = 292, /* VAR_FORWARD_NO_CACHE */ - YYSYMBOL_VAR_STUB_NO_CACHE = 293, /* VAR_STUB_NO_CACHE */ - YYSYMBOL_VAR_LOG_SERVFAIL = 294, /* VAR_LOG_SERVFAIL */ - YYSYMBOL_VAR_DENY_ANY = 295, /* VAR_DENY_ANY */ - YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 296, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 297, /* VAR_LOG_TAG_QUERYREPLY */ - YYSYMBOL_VAR_STREAM_WAIT_SIZE = 298, /* VAR_STREAM_WAIT_SIZE */ - YYSYMBOL_VAR_TLS_CIPHERS = 299, /* VAR_TLS_CIPHERS */ - YYSYMBOL_VAR_TLS_CIPHERSUITES = 300, /* VAR_TLS_CIPHERSUITES */ - YYSYMBOL_VAR_TLS_USE_SNI = 301, /* VAR_TLS_USE_SNI */ - YYSYMBOL_VAR_IPSET = 302, /* VAR_IPSET */ - YYSYMBOL_VAR_IPSET_NAME_V4 = 303, /* VAR_IPSET_NAME_V4 */ - YYSYMBOL_VAR_IPSET_NAME_V6 = 304, /* VAR_IPSET_NAME_V6 */ - YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 305, /* VAR_TLS_SESSION_TICKET_KEYS */ - YYSYMBOL_VAR_RPZ = 306, /* VAR_RPZ */ - YYSYMBOL_VAR_TAGS = 307, /* VAR_TAGS */ - YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 308, /* VAR_RPZ_ACTION_OVERRIDE */ - YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 309, /* VAR_RPZ_CNAME_OVERRIDE */ - YYSYMBOL_VAR_RPZ_LOG = 310, /* VAR_RPZ_LOG */ - YYSYMBOL_VAR_RPZ_LOG_NAME = 311, /* VAR_RPZ_LOG_NAME */ - YYSYMBOL_VAR_DYNLIB = 312, /* VAR_DYNLIB */ - YYSYMBOL_VAR_DYNLIB_FILE = 313, /* VAR_DYNLIB_FILE */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING = 314, /* VAR_EDNS_CLIENT_STRING */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 315, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - YYSYMBOL_VAR_NSID = 316, /* VAR_NSID */ - YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 317, /* VAR_ZONEMD_PERMISSIVE_MODE */ - YYSYMBOL_VAR_ZONEMD_CHECK = 318, /* VAR_ZONEMD_CHECK */ - YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 319, /* VAR_ZONEMD_REJECT_ABSENCE */ - YYSYMBOL_YYACCEPT = 320, /* $accept */ - YYSYMBOL_toplevelvars = 321, /* toplevelvars */ - YYSYMBOL_toplevelvar = 322, /* toplevelvar */ - YYSYMBOL_force_toplevel = 323, /* force_toplevel */ - YYSYMBOL_serverstart = 324, /* serverstart */ - YYSYMBOL_contents_server = 325, /* contents_server */ - YYSYMBOL_content_server = 326, /* content_server */ - YYSYMBOL_stubstart = 327, /* stubstart */ - YYSYMBOL_contents_stub = 328, /* contents_stub */ - YYSYMBOL_content_stub = 329, /* content_stub */ - YYSYMBOL_forwardstart = 330, /* forwardstart */ - YYSYMBOL_contents_forward = 331, /* contents_forward */ - YYSYMBOL_content_forward = 332, /* content_forward */ - YYSYMBOL_viewstart = 333, /* viewstart */ - YYSYMBOL_contents_view = 334, /* contents_view */ - YYSYMBOL_content_view = 335, /* content_view */ - YYSYMBOL_authstart = 336, /* authstart */ - YYSYMBOL_contents_auth = 337, /* contents_auth */ - YYSYMBOL_content_auth = 338, /* content_auth */ - YYSYMBOL_rpz_tag = 339, /* rpz_tag */ - YYSYMBOL_rpz_action_override = 340, /* rpz_action_override */ - YYSYMBOL_rpz_cname_override = 341, /* rpz_cname_override */ - YYSYMBOL_rpz_log = 342, /* rpz_log */ - YYSYMBOL_rpz_log_name = 343, /* rpz_log_name */ - YYSYMBOL_rpzstart = 344, /* rpzstart */ - YYSYMBOL_contents_rpz = 345, /* contents_rpz */ - YYSYMBOL_content_rpz = 346, /* content_rpz */ - YYSYMBOL_server_num_threads = 347, /* server_num_threads */ - YYSYMBOL_server_verbosity = 348, /* server_verbosity */ - YYSYMBOL_server_statistics_interval = 349, /* server_statistics_interval */ - YYSYMBOL_server_statistics_cumulative = 350, /* server_statistics_cumulative */ - YYSYMBOL_server_extended_statistics = 351, /* server_extended_statistics */ - YYSYMBOL_server_shm_enable = 352, /* server_shm_enable */ - YYSYMBOL_server_shm_key = 353, /* server_shm_key */ - YYSYMBOL_server_port = 354, /* server_port */ - YYSYMBOL_server_send_client_subnet = 355, /* server_send_client_subnet */ - YYSYMBOL_server_client_subnet_zone = 356, /* server_client_subnet_zone */ - YYSYMBOL_server_client_subnet_always_forward = 357, /* server_client_subnet_always_forward */ - YYSYMBOL_server_client_subnet_opcode = 358, /* server_client_subnet_opcode */ - YYSYMBOL_server_max_client_subnet_ipv4 = 359, /* server_max_client_subnet_ipv4 */ - YYSYMBOL_server_max_client_subnet_ipv6 = 360, /* server_max_client_subnet_ipv6 */ - YYSYMBOL_server_min_client_subnet_ipv4 = 361, /* server_min_client_subnet_ipv4 */ - YYSYMBOL_server_min_client_subnet_ipv6 = 362, /* server_min_client_subnet_ipv6 */ - YYSYMBOL_server_max_ecs_tree_size_ipv4 = 363, /* server_max_ecs_tree_size_ipv4 */ - YYSYMBOL_server_max_ecs_tree_size_ipv6 = 364, /* server_max_ecs_tree_size_ipv6 */ - YYSYMBOL_server_interface = 365, /* server_interface */ - YYSYMBOL_server_outgoing_interface = 366, /* server_outgoing_interface */ - YYSYMBOL_server_outgoing_range = 367, /* server_outgoing_range */ - YYSYMBOL_server_outgoing_port_permit = 368, /* server_outgoing_port_permit */ - YYSYMBOL_server_outgoing_port_avoid = 369, /* server_outgoing_port_avoid */ - YYSYMBOL_server_outgoing_num_tcp = 370, /* server_outgoing_num_tcp */ - YYSYMBOL_server_incoming_num_tcp = 371, /* server_incoming_num_tcp */ - YYSYMBOL_server_interface_automatic = 372, /* server_interface_automatic */ - YYSYMBOL_server_do_ip4 = 373, /* server_do_ip4 */ - YYSYMBOL_server_do_ip6 = 374, /* server_do_ip6 */ - YYSYMBOL_server_do_udp = 375, /* server_do_udp */ - YYSYMBOL_server_do_tcp = 376, /* server_do_tcp */ - YYSYMBOL_server_prefer_ip4 = 377, /* server_prefer_ip4 */ - YYSYMBOL_server_prefer_ip6 = 378, /* server_prefer_ip6 */ - YYSYMBOL_server_tcp_mss = 379, /* server_tcp_mss */ - YYSYMBOL_server_outgoing_tcp_mss = 380, /* server_outgoing_tcp_mss */ - YYSYMBOL_server_tcp_idle_timeout = 381, /* server_tcp_idle_timeout */ - YYSYMBOL_server_max_reuse_tcp_queries = 382, /* server_max_reuse_tcp_queries */ - YYSYMBOL_server_tcp_reuse_timeout = 383, /* server_tcp_reuse_timeout */ - YYSYMBOL_server_tcp_auth_query_timeout = 384, /* server_tcp_auth_query_timeout */ - YYSYMBOL_server_tcp_keepalive = 385, /* server_tcp_keepalive */ - YYSYMBOL_server_tcp_keepalive_timeout = 386, /* server_tcp_keepalive_timeout */ - YYSYMBOL_server_tcp_upstream = 387, /* server_tcp_upstream */ - YYSYMBOL_server_udp_upstream_without_downstream = 388, /* server_udp_upstream_without_downstream */ - YYSYMBOL_server_ssl_upstream = 389, /* server_ssl_upstream */ - YYSYMBOL_server_ssl_service_key = 390, /* server_ssl_service_key */ - YYSYMBOL_server_ssl_service_pem = 391, /* server_ssl_service_pem */ - YYSYMBOL_server_ssl_port = 392, /* server_ssl_port */ - YYSYMBOL_server_tls_cert_bundle = 393, /* server_tls_cert_bundle */ - YYSYMBOL_server_tls_win_cert = 394, /* server_tls_win_cert */ - YYSYMBOL_server_tls_additional_port = 395, /* server_tls_additional_port */ - YYSYMBOL_server_tls_ciphers = 396, /* server_tls_ciphers */ - YYSYMBOL_server_tls_ciphersuites = 397, /* server_tls_ciphersuites */ - YYSYMBOL_server_tls_session_ticket_keys = 398, /* server_tls_session_ticket_keys */ - YYSYMBOL_server_tls_use_sni = 399, /* server_tls_use_sni */ - YYSYMBOL_server_https_port = 400, /* server_https_port */ - YYSYMBOL_server_http_endpoint = 401, /* server_http_endpoint */ - YYSYMBOL_server_http_max_streams = 402, /* server_http_max_streams */ - YYSYMBOL_server_http_query_buffer_size = 403, /* server_http_query_buffer_size */ - YYSYMBOL_server_http_response_buffer_size = 404, /* server_http_response_buffer_size */ - YYSYMBOL_server_http_nodelay = 405, /* server_http_nodelay */ - YYSYMBOL_server_http_notls_downstream = 406, /* server_http_notls_downstream */ - YYSYMBOL_server_use_systemd = 407, /* server_use_systemd */ - YYSYMBOL_server_do_daemonize = 408, /* server_do_daemonize */ - YYSYMBOL_server_use_syslog = 409, /* server_use_syslog */ - YYSYMBOL_server_log_time_ascii = 410, /* server_log_time_ascii */ - YYSYMBOL_server_log_queries = 411, /* server_log_queries */ - YYSYMBOL_server_log_replies = 412, /* server_log_replies */ - YYSYMBOL_server_log_tag_queryreply = 413, /* server_log_tag_queryreply */ - YYSYMBOL_server_log_servfail = 414, /* server_log_servfail */ - YYSYMBOL_server_log_local_actions = 415, /* server_log_local_actions */ - YYSYMBOL_server_chroot = 416, /* server_chroot */ - YYSYMBOL_server_username = 417, /* server_username */ - YYSYMBOL_server_directory = 418, /* server_directory */ - YYSYMBOL_server_logfile = 419, /* server_logfile */ - YYSYMBOL_server_pidfile = 420, /* server_pidfile */ - YYSYMBOL_server_root_hints = 421, /* server_root_hints */ - YYSYMBOL_server_dlv_anchor_file = 422, /* server_dlv_anchor_file */ - YYSYMBOL_server_dlv_anchor = 423, /* server_dlv_anchor */ - YYSYMBOL_server_auto_trust_anchor_file = 424, /* server_auto_trust_anchor_file */ - YYSYMBOL_server_trust_anchor_file = 425, /* server_trust_anchor_file */ - YYSYMBOL_server_trusted_keys_file = 426, /* server_trusted_keys_file */ - YYSYMBOL_server_trust_anchor = 427, /* server_trust_anchor */ - YYSYMBOL_server_trust_anchor_signaling = 428, /* server_trust_anchor_signaling */ - YYSYMBOL_server_root_key_sentinel = 429, /* server_root_key_sentinel */ - YYSYMBOL_server_domain_insecure = 430, /* server_domain_insecure */ - YYSYMBOL_server_hide_identity = 431, /* server_hide_identity */ - YYSYMBOL_server_hide_version = 432, /* server_hide_version */ - YYSYMBOL_server_hide_trustanchor = 433, /* server_hide_trustanchor */ - YYSYMBOL_server_hide_http_user_agent = 434, /* server_hide_http_user_agent */ - YYSYMBOL_server_identity = 435, /* server_identity */ - YYSYMBOL_server_version = 436, /* server_version */ - YYSYMBOL_server_http_user_agent = 437, /* server_http_user_agent */ - YYSYMBOL_server_nsid = 438, /* server_nsid */ - YYSYMBOL_server_so_rcvbuf = 439, /* server_so_rcvbuf */ - YYSYMBOL_server_so_sndbuf = 440, /* server_so_sndbuf */ - YYSYMBOL_server_so_reuseport = 441, /* server_so_reuseport */ - YYSYMBOL_server_ip_transparent = 442, /* server_ip_transparent */ - YYSYMBOL_server_ip_freebind = 443, /* server_ip_freebind */ - YYSYMBOL_server_ip_dscp = 444, /* server_ip_dscp */ - YYSYMBOL_server_stream_wait_size = 445, /* server_stream_wait_size */ - YYSYMBOL_server_edns_buffer_size = 446, /* server_edns_buffer_size */ - YYSYMBOL_server_msg_buffer_size = 447, /* server_msg_buffer_size */ - YYSYMBOL_server_msg_cache_size = 448, /* server_msg_cache_size */ - YYSYMBOL_server_msg_cache_slabs = 449, /* server_msg_cache_slabs */ - YYSYMBOL_server_num_queries_per_thread = 450, /* server_num_queries_per_thread */ - YYSYMBOL_server_jostle_timeout = 451, /* server_jostle_timeout */ - YYSYMBOL_server_delay_close = 452, /* server_delay_close */ - YYSYMBOL_server_udp_connect = 453, /* server_udp_connect */ - YYSYMBOL_server_unblock_lan_zones = 454, /* server_unblock_lan_zones */ - YYSYMBOL_server_insecure_lan_zones = 455, /* server_insecure_lan_zones */ - YYSYMBOL_server_rrset_cache_size = 456, /* server_rrset_cache_size */ - YYSYMBOL_server_rrset_cache_slabs = 457, /* server_rrset_cache_slabs */ - YYSYMBOL_server_infra_host_ttl = 458, /* server_infra_host_ttl */ - YYSYMBOL_server_infra_lame_ttl = 459, /* server_infra_lame_ttl */ - YYSYMBOL_server_infra_cache_numhosts = 460, /* server_infra_cache_numhosts */ - YYSYMBOL_server_infra_cache_lame_size = 461, /* server_infra_cache_lame_size */ - YYSYMBOL_server_infra_cache_slabs = 462, /* server_infra_cache_slabs */ - YYSYMBOL_server_infra_cache_min_rtt = 463, /* server_infra_cache_min_rtt */ - YYSYMBOL_server_infra_keep_probing = 464, /* server_infra_keep_probing */ - YYSYMBOL_server_target_fetch_policy = 465, /* server_target_fetch_policy */ - YYSYMBOL_server_harden_short_bufsize = 466, /* server_harden_short_bufsize */ - YYSYMBOL_server_harden_large_queries = 467, /* server_harden_large_queries */ - YYSYMBOL_server_harden_glue = 468, /* server_harden_glue */ - YYSYMBOL_server_harden_dnssec_stripped = 469, /* server_harden_dnssec_stripped */ - YYSYMBOL_server_harden_below_nxdomain = 470, /* server_harden_below_nxdomain */ - YYSYMBOL_server_harden_referral_path = 471, /* server_harden_referral_path */ - YYSYMBOL_server_harden_algo_downgrade = 472, /* server_harden_algo_downgrade */ - YYSYMBOL_server_use_caps_for_id = 473, /* server_use_caps_for_id */ - YYSYMBOL_server_caps_whitelist = 474, /* server_caps_whitelist */ - YYSYMBOL_server_private_address = 475, /* server_private_address */ - YYSYMBOL_server_private_domain = 476, /* server_private_domain */ - YYSYMBOL_server_prefetch = 477, /* server_prefetch */ - YYSYMBOL_server_prefetch_key = 478, /* server_prefetch_key */ - YYSYMBOL_server_deny_any = 479, /* server_deny_any */ - YYSYMBOL_server_unwanted_reply_threshold = 480, /* server_unwanted_reply_threshold */ - YYSYMBOL_server_do_not_query_address = 481, /* server_do_not_query_address */ - YYSYMBOL_server_do_not_query_localhost = 482, /* server_do_not_query_localhost */ - YYSYMBOL_server_access_control = 483, /* server_access_control */ - YYSYMBOL_server_module_conf = 484, /* server_module_conf */ - YYSYMBOL_server_val_override_date = 485, /* server_val_override_date */ - YYSYMBOL_server_val_sig_skew_min = 486, /* server_val_sig_skew_min */ - YYSYMBOL_server_val_sig_skew_max = 487, /* server_val_sig_skew_max */ - YYSYMBOL_server_val_max_restart = 488, /* server_val_max_restart */ - YYSYMBOL_server_cache_max_ttl = 489, /* server_cache_max_ttl */ - YYSYMBOL_server_cache_max_negative_ttl = 490, /* server_cache_max_negative_ttl */ - YYSYMBOL_server_cache_min_ttl = 491, /* server_cache_min_ttl */ - YYSYMBOL_server_bogus_ttl = 492, /* server_bogus_ttl */ - YYSYMBOL_server_val_clean_additional = 493, /* server_val_clean_additional */ - YYSYMBOL_server_val_permissive_mode = 494, /* server_val_permissive_mode */ - YYSYMBOL_server_aggressive_nsec = 495, /* server_aggressive_nsec */ - YYSYMBOL_server_ignore_cd_flag = 496, /* server_ignore_cd_flag */ - YYSYMBOL_server_serve_expired = 497, /* server_serve_expired */ - YYSYMBOL_server_serve_expired_ttl = 498, /* server_serve_expired_ttl */ - YYSYMBOL_server_serve_expired_ttl_reset = 499, /* server_serve_expired_ttl_reset */ - YYSYMBOL_server_serve_expired_reply_ttl = 500, /* server_serve_expired_reply_ttl */ - YYSYMBOL_server_serve_expired_client_timeout = 501, /* server_serve_expired_client_timeout */ - YYSYMBOL_server_serve_original_ttl = 502, /* server_serve_original_ttl */ - YYSYMBOL_server_fake_dsa = 503, /* server_fake_dsa */ - YYSYMBOL_server_fake_sha1 = 504, /* server_fake_sha1 */ - YYSYMBOL_server_val_log_level = 505, /* server_val_log_level */ - YYSYMBOL_server_val_nsec3_keysize_iterations = 506, /* server_val_nsec3_keysize_iterations */ - YYSYMBOL_server_zonemd_permissive_mode = 507, /* server_zonemd_permissive_mode */ - YYSYMBOL_server_add_holddown = 508, /* server_add_holddown */ - YYSYMBOL_server_del_holddown = 509, /* server_del_holddown */ - YYSYMBOL_server_keep_missing = 510, /* server_keep_missing */ - YYSYMBOL_server_permit_small_holddown = 511, /* server_permit_small_holddown */ - YYSYMBOL_server_key_cache_size = 512, /* server_key_cache_size */ - YYSYMBOL_server_key_cache_slabs = 513, /* server_key_cache_slabs */ - YYSYMBOL_server_neg_cache_size = 514, /* server_neg_cache_size */ - YYSYMBOL_server_local_zone = 515, /* server_local_zone */ - YYSYMBOL_server_local_data = 516, /* server_local_data */ - YYSYMBOL_server_local_data_ptr = 517, /* server_local_data_ptr */ - YYSYMBOL_server_minimal_responses = 518, /* server_minimal_responses */ - YYSYMBOL_server_rrset_roundrobin = 519, /* server_rrset_roundrobin */ - YYSYMBOL_server_unknown_server_time_limit = 520, /* server_unknown_server_time_limit */ - YYSYMBOL_server_max_udp_size = 521, /* server_max_udp_size */ - YYSYMBOL_server_dns64_prefix = 522, /* server_dns64_prefix */ - YYSYMBOL_server_dns64_synthall = 523, /* server_dns64_synthall */ - YYSYMBOL_server_dns64_ignore_aaaa = 524, /* server_dns64_ignore_aaaa */ - YYSYMBOL_server_define_tag = 525, /* server_define_tag */ - YYSYMBOL_server_local_zone_tag = 526, /* server_local_zone_tag */ - YYSYMBOL_server_access_control_tag = 527, /* server_access_control_tag */ - YYSYMBOL_server_access_control_tag_action = 528, /* server_access_control_tag_action */ - YYSYMBOL_server_access_control_tag_data = 529, /* server_access_control_tag_data */ - YYSYMBOL_server_local_zone_override = 530, /* server_local_zone_override */ - YYSYMBOL_server_access_control_view = 531, /* server_access_control_view */ - YYSYMBOL_server_response_ip_tag = 532, /* server_response_ip_tag */ - YYSYMBOL_server_ip_ratelimit = 533, /* server_ip_ratelimit */ - YYSYMBOL_server_ratelimit = 534, /* server_ratelimit */ - YYSYMBOL_server_ip_ratelimit_size = 535, /* server_ip_ratelimit_size */ - YYSYMBOL_server_ratelimit_size = 536, /* server_ratelimit_size */ - YYSYMBOL_server_ip_ratelimit_slabs = 537, /* server_ip_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_slabs = 538, /* server_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_for_domain = 539, /* server_ratelimit_for_domain */ - YYSYMBOL_server_ratelimit_below_domain = 540, /* server_ratelimit_below_domain */ - YYSYMBOL_server_ip_ratelimit_factor = 541, /* server_ip_ratelimit_factor */ - YYSYMBOL_server_ratelimit_factor = 542, /* server_ratelimit_factor */ - YYSYMBOL_server_low_rtt = 543, /* server_low_rtt */ - YYSYMBOL_server_fast_server_num = 544, /* server_fast_server_num */ - YYSYMBOL_server_fast_server_permil = 545, /* server_fast_server_permil */ - YYSYMBOL_server_qname_minimisation = 546, /* server_qname_minimisation */ - YYSYMBOL_server_qname_minimisation_strict = 547, /* server_qname_minimisation_strict */ - YYSYMBOL_server_pad_responses = 548, /* server_pad_responses */ - YYSYMBOL_server_pad_responses_block_size = 549, /* server_pad_responses_block_size */ - YYSYMBOL_server_pad_queries = 550, /* server_pad_queries */ - YYSYMBOL_server_pad_queries_block_size = 551, /* server_pad_queries_block_size */ - YYSYMBOL_server_ipsecmod_enabled = 552, /* server_ipsecmod_enabled */ - YYSYMBOL_server_ipsecmod_ignore_bogus = 553, /* server_ipsecmod_ignore_bogus */ - YYSYMBOL_server_ipsecmod_hook = 554, /* server_ipsecmod_hook */ - YYSYMBOL_server_ipsecmod_max_ttl = 555, /* server_ipsecmod_max_ttl */ - YYSYMBOL_server_ipsecmod_whitelist = 556, /* server_ipsecmod_whitelist */ - YYSYMBOL_server_ipsecmod_strict = 557, /* server_ipsecmod_strict */ - YYSYMBOL_server_edns_client_string = 558, /* server_edns_client_string */ - YYSYMBOL_server_edns_client_string_opcode = 559, /* server_edns_client_string_opcode */ - YYSYMBOL_stub_name = 560, /* stub_name */ - YYSYMBOL_stub_host = 561, /* stub_host */ - YYSYMBOL_stub_addr = 562, /* stub_addr */ - YYSYMBOL_stub_first = 563, /* stub_first */ - YYSYMBOL_stub_no_cache = 564, /* stub_no_cache */ - YYSYMBOL_stub_ssl_upstream = 565, /* stub_ssl_upstream */ - YYSYMBOL_stub_tcp_upstream = 566, /* stub_tcp_upstream */ - YYSYMBOL_stub_prime = 567, /* stub_prime */ - YYSYMBOL_forward_name = 568, /* forward_name */ - YYSYMBOL_forward_host = 569, /* forward_host */ - YYSYMBOL_forward_addr = 570, /* forward_addr */ - YYSYMBOL_forward_first = 571, /* forward_first */ - YYSYMBOL_forward_no_cache = 572, /* forward_no_cache */ - YYSYMBOL_forward_ssl_upstream = 573, /* forward_ssl_upstream */ - YYSYMBOL_forward_tcp_upstream = 574, /* forward_tcp_upstream */ - YYSYMBOL_auth_name = 575, /* auth_name */ - YYSYMBOL_auth_zonefile = 576, /* auth_zonefile */ - YYSYMBOL_auth_master = 577, /* auth_master */ - YYSYMBOL_auth_url = 578, /* auth_url */ - YYSYMBOL_auth_allow_notify = 579, /* auth_allow_notify */ - YYSYMBOL_auth_zonemd_check = 580, /* auth_zonemd_check */ - YYSYMBOL_auth_zonemd_reject_absence = 581, /* auth_zonemd_reject_absence */ - YYSYMBOL_auth_for_downstream = 582, /* auth_for_downstream */ - YYSYMBOL_auth_for_upstream = 583, /* auth_for_upstream */ - YYSYMBOL_auth_fallback_enabled = 584, /* auth_fallback_enabled */ - YYSYMBOL_view_name = 585, /* view_name */ - YYSYMBOL_view_local_zone = 586, /* view_local_zone */ - YYSYMBOL_view_response_ip = 587, /* view_response_ip */ - YYSYMBOL_view_response_ip_data = 588, /* view_response_ip_data */ - YYSYMBOL_view_local_data = 589, /* view_local_data */ - YYSYMBOL_view_local_data_ptr = 590, /* view_local_data_ptr */ - YYSYMBOL_view_first = 591, /* view_first */ - YYSYMBOL_rcstart = 592, /* rcstart */ - YYSYMBOL_contents_rc = 593, /* contents_rc */ - YYSYMBOL_content_rc = 594, /* content_rc */ - YYSYMBOL_rc_control_enable = 595, /* rc_control_enable */ - YYSYMBOL_rc_control_port = 596, /* rc_control_port */ - YYSYMBOL_rc_control_interface = 597, /* rc_control_interface */ - YYSYMBOL_rc_control_use_cert = 598, /* rc_control_use_cert */ - YYSYMBOL_rc_server_key_file = 599, /* rc_server_key_file */ - YYSYMBOL_rc_server_cert_file = 600, /* rc_server_cert_file */ - YYSYMBOL_rc_control_key_file = 601, /* rc_control_key_file */ - YYSYMBOL_rc_control_cert_file = 602, /* rc_control_cert_file */ - YYSYMBOL_dtstart = 603, /* dtstart */ - YYSYMBOL_contents_dt = 604, /* contents_dt */ - YYSYMBOL_content_dt = 605, /* content_dt */ - YYSYMBOL_dt_dnstap_enable = 606, /* dt_dnstap_enable */ - YYSYMBOL_dt_dnstap_bidirectional = 607, /* dt_dnstap_bidirectional */ - YYSYMBOL_dt_dnstap_socket_path = 608, /* dt_dnstap_socket_path */ - YYSYMBOL_dt_dnstap_ip = 609, /* dt_dnstap_ip */ - YYSYMBOL_dt_dnstap_tls = 610, /* dt_dnstap_tls */ - YYSYMBOL_dt_dnstap_tls_server_name = 611, /* dt_dnstap_tls_server_name */ - YYSYMBOL_dt_dnstap_tls_cert_bundle = 612, /* dt_dnstap_tls_cert_bundle */ - YYSYMBOL_dt_dnstap_tls_client_key_file = 613, /* dt_dnstap_tls_client_key_file */ - YYSYMBOL_dt_dnstap_tls_client_cert_file = 614, /* dt_dnstap_tls_client_cert_file */ - YYSYMBOL_dt_dnstap_send_identity = 615, /* dt_dnstap_send_identity */ - YYSYMBOL_dt_dnstap_send_version = 616, /* dt_dnstap_send_version */ - YYSYMBOL_dt_dnstap_identity = 617, /* dt_dnstap_identity */ - YYSYMBOL_dt_dnstap_version = 618, /* dt_dnstap_version */ - YYSYMBOL_dt_dnstap_log_resolver_query_messages = 619, /* dt_dnstap_log_resolver_query_messages */ - YYSYMBOL_dt_dnstap_log_resolver_response_messages = 620, /* dt_dnstap_log_resolver_response_messages */ - YYSYMBOL_dt_dnstap_log_client_query_messages = 621, /* dt_dnstap_log_client_query_messages */ - YYSYMBOL_dt_dnstap_log_client_response_messages = 622, /* dt_dnstap_log_client_response_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 623, /* dt_dnstap_log_forwarder_query_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 624, /* dt_dnstap_log_forwarder_response_messages */ - YYSYMBOL_pythonstart = 625, /* pythonstart */ - YYSYMBOL_contents_py = 626, /* contents_py */ - YYSYMBOL_content_py = 627, /* content_py */ - YYSYMBOL_py_script = 628, /* py_script */ - YYSYMBOL_dynlibstart = 629, /* dynlibstart */ - YYSYMBOL_contents_dl = 630, /* contents_dl */ - YYSYMBOL_content_dl = 631, /* content_dl */ - YYSYMBOL_dl_file = 632, /* dl_file */ - YYSYMBOL_server_disable_dnssec_lame_check = 633, /* server_disable_dnssec_lame_check */ - YYSYMBOL_server_log_identity = 634, /* server_log_identity */ - YYSYMBOL_server_response_ip = 635, /* server_response_ip */ - YYSYMBOL_server_response_ip_data = 636, /* server_response_ip_data */ - YYSYMBOL_dnscstart = 637, /* dnscstart */ - YYSYMBOL_contents_dnsc = 638, /* contents_dnsc */ - YYSYMBOL_content_dnsc = 639, /* content_dnsc */ - YYSYMBOL_dnsc_dnscrypt_enable = 640, /* dnsc_dnscrypt_enable */ - YYSYMBOL_dnsc_dnscrypt_port = 641, /* dnsc_dnscrypt_port */ - YYSYMBOL_dnsc_dnscrypt_provider = 642, /* dnsc_dnscrypt_provider */ - YYSYMBOL_dnsc_dnscrypt_provider_cert = 643, /* dnsc_dnscrypt_provider_cert */ - YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 644, /* dnsc_dnscrypt_provider_cert_rotated */ - YYSYMBOL_dnsc_dnscrypt_secret_key = 645, /* dnsc_dnscrypt_secret_key */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 646, /* dnsc_dnscrypt_shared_secret_cache_size */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 647, /* dnsc_dnscrypt_shared_secret_cache_slabs */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 648, /* dnsc_dnscrypt_nonce_cache_size */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 649, /* dnsc_dnscrypt_nonce_cache_slabs */ - YYSYMBOL_cachedbstart = 650, /* cachedbstart */ - YYSYMBOL_contents_cachedb = 651, /* contents_cachedb */ - YYSYMBOL_content_cachedb = 652, /* content_cachedb */ - YYSYMBOL_cachedb_backend_name = 653, /* cachedb_backend_name */ - YYSYMBOL_cachedb_secret_seed = 654, /* cachedb_secret_seed */ - YYSYMBOL_redis_server_host = 655, /* redis_server_host */ - YYSYMBOL_redis_server_port = 656, /* redis_server_port */ - YYSYMBOL_redis_timeout = 657, /* redis_timeout */ - YYSYMBOL_redis_expire_records = 658, /* redis_expire_records */ - YYSYMBOL_server_tcp_connection_limit = 659, /* server_tcp_connection_limit */ - YYSYMBOL_ipsetstart = 660, /* ipsetstart */ - YYSYMBOL_contents_ipset = 661, /* contents_ipset */ - YYSYMBOL_content_ipset = 662, /* content_ipset */ - YYSYMBOL_ipset_name_v4 = 663, /* ipset_name_v4 */ - YYSYMBOL_ipset_name_v6 = 664 /* ipset_name_v6 */ ++ YYSYMBOL_VAR_OUTBOUND_MSG_RETRY = 201, /* VAR_OUTBOUND_MSG_RETRY */ ++ YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 202, /* VAR_RATELIMIT_FOR_DOMAIN */ ++ YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 203, /* VAR_RATELIMIT_BELOW_DOMAIN */ ++ YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 204, /* VAR_IP_RATELIMIT_FACTOR */ ++ YYSYMBOL_VAR_RATELIMIT_FACTOR = 205, /* VAR_RATELIMIT_FACTOR */ ++ YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 206, /* VAR_SEND_CLIENT_SUBNET */ ++ YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 207, /* VAR_CLIENT_SUBNET_ZONE */ ++ YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 208, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ ++ YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 209, /* VAR_CLIENT_SUBNET_OPCODE */ ++ YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 210, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ ++ YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 211, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ ++ YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 212, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ ++ YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 213, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ ++ YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 214, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ ++ YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 215, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ ++ YYSYMBOL_VAR_CAPS_WHITELIST = 216, /* VAR_CAPS_WHITELIST */ ++ YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 217, /* VAR_CACHE_MAX_NEGATIVE_TTL */ ++ YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 218, /* VAR_PERMIT_SMALL_HOLDDOWN */ ++ YYSYMBOL_VAR_QNAME_MINIMISATION = 219, /* VAR_QNAME_MINIMISATION */ ++ YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 220, /* VAR_QNAME_MINIMISATION_STRICT */ ++ YYSYMBOL_VAR_IP_FREEBIND = 221, /* VAR_IP_FREEBIND */ ++ YYSYMBOL_VAR_DEFINE_TAG = 222, /* VAR_DEFINE_TAG */ ++ YYSYMBOL_VAR_LOCAL_ZONE_TAG = 223, /* VAR_LOCAL_ZONE_TAG */ ++ YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 224, /* VAR_ACCESS_CONTROL_TAG */ ++ YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 225, /* VAR_LOCAL_ZONE_OVERRIDE */ ++ YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 226, /* VAR_ACCESS_CONTROL_TAG_ACTION */ ++ YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 227, /* VAR_ACCESS_CONTROL_TAG_DATA */ ++ YYSYMBOL_VAR_VIEW = 228, /* VAR_VIEW */ ++ YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 229, /* VAR_ACCESS_CONTROL_VIEW */ ++ YYSYMBOL_VAR_VIEW_FIRST = 230, /* VAR_VIEW_FIRST */ ++ YYSYMBOL_VAR_SERVE_EXPIRED = 231, /* VAR_SERVE_EXPIRED */ ++ YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 232, /* VAR_SERVE_EXPIRED_TTL */ ++ YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 233, /* VAR_SERVE_EXPIRED_TTL_RESET */ ++ YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 234, /* VAR_SERVE_EXPIRED_REPLY_TTL */ ++ YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 235, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ ++ YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 236, /* VAR_SERVE_ORIGINAL_TTL */ ++ YYSYMBOL_VAR_FAKE_DSA = 237, /* VAR_FAKE_DSA */ ++ YYSYMBOL_VAR_FAKE_SHA1 = 238, /* VAR_FAKE_SHA1 */ ++ YYSYMBOL_VAR_LOG_IDENTITY = 239, /* VAR_LOG_IDENTITY */ ++ YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 240, /* VAR_HIDE_TRUSTANCHOR */ ++ YYSYMBOL_VAR_HIDE_HTTP_USER_AGENT = 241, /* VAR_HIDE_HTTP_USER_AGENT */ ++ YYSYMBOL_VAR_HTTP_USER_AGENT = 242, /* VAR_HTTP_USER_AGENT */ ++ YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 243, /* VAR_TRUST_ANCHOR_SIGNALING */ ++ YYSYMBOL_VAR_AGGRESSIVE_NSEC = 244, /* VAR_AGGRESSIVE_NSEC */ ++ YYSYMBOL_VAR_USE_SYSTEMD = 245, /* VAR_USE_SYSTEMD */ ++ YYSYMBOL_VAR_SHM_ENABLE = 246, /* VAR_SHM_ENABLE */ ++ YYSYMBOL_VAR_SHM_KEY = 247, /* VAR_SHM_KEY */ ++ YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 248, /* VAR_ROOT_KEY_SENTINEL */ ++ YYSYMBOL_VAR_DNSCRYPT = 249, /* VAR_DNSCRYPT */ ++ YYSYMBOL_VAR_DNSCRYPT_ENABLE = 250, /* VAR_DNSCRYPT_ENABLE */ ++ YYSYMBOL_VAR_DNSCRYPT_PORT = 251, /* VAR_DNSCRYPT_PORT */ ++ YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 252, /* VAR_DNSCRYPT_PROVIDER */ ++ YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 253, /* VAR_DNSCRYPT_SECRET_KEY */ ++ YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 254, /* VAR_DNSCRYPT_PROVIDER_CERT */ ++ YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 255, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ ++ YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 256, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ ++ YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 257, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ ++ YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 258, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ ++ YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 259, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ ++ YYSYMBOL_VAR_PAD_RESPONSES = 260, /* VAR_PAD_RESPONSES */ ++ YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 261, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ ++ YYSYMBOL_VAR_PAD_QUERIES = 262, /* VAR_PAD_QUERIES */ ++ YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 263, /* VAR_PAD_QUERIES_BLOCK_SIZE */ ++ YYSYMBOL_VAR_IPSECMOD_ENABLED = 264, /* VAR_IPSECMOD_ENABLED */ ++ YYSYMBOL_VAR_IPSECMOD_HOOK = 265, /* VAR_IPSECMOD_HOOK */ ++ YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 266, /* VAR_IPSECMOD_IGNORE_BOGUS */ ++ YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 267, /* VAR_IPSECMOD_MAX_TTL */ ++ YYSYMBOL_VAR_IPSECMOD_WHITELIST = 268, /* VAR_IPSECMOD_WHITELIST */ ++ YYSYMBOL_VAR_IPSECMOD_STRICT = 269, /* VAR_IPSECMOD_STRICT */ ++ YYSYMBOL_VAR_CACHEDB = 270, /* VAR_CACHEDB */ ++ YYSYMBOL_VAR_CACHEDB_BACKEND = 271, /* VAR_CACHEDB_BACKEND */ ++ YYSYMBOL_VAR_CACHEDB_SECRETSEED = 272, /* VAR_CACHEDB_SECRETSEED */ ++ YYSYMBOL_VAR_CACHEDB_REDISHOST = 273, /* VAR_CACHEDB_REDISHOST */ ++ YYSYMBOL_VAR_CACHEDB_REDISPORT = 274, /* VAR_CACHEDB_REDISPORT */ ++ YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 275, /* VAR_CACHEDB_REDISTIMEOUT */ ++ YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 276, /* VAR_CACHEDB_REDISEXPIRERECORDS */ ++ YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 277, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ ++ YYSYMBOL_VAR_FOR_UPSTREAM = 278, /* VAR_FOR_UPSTREAM */ ++ YYSYMBOL_VAR_AUTH_ZONE = 279, /* VAR_AUTH_ZONE */ ++ YYSYMBOL_VAR_ZONEFILE = 280, /* VAR_ZONEFILE */ ++ YYSYMBOL_VAR_MASTER = 281, /* VAR_MASTER */ ++ YYSYMBOL_VAR_URL = 282, /* VAR_URL */ ++ YYSYMBOL_VAR_FOR_DOWNSTREAM = 283, /* VAR_FOR_DOWNSTREAM */ ++ YYSYMBOL_VAR_FALLBACK_ENABLED = 284, /* VAR_FALLBACK_ENABLED */ ++ YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 285, /* VAR_TLS_ADDITIONAL_PORT */ ++ YYSYMBOL_VAR_LOW_RTT = 286, /* VAR_LOW_RTT */ ++ YYSYMBOL_VAR_LOW_RTT_PERMIL = 287, /* VAR_LOW_RTT_PERMIL */ ++ YYSYMBOL_VAR_FAST_SERVER_PERMIL = 288, /* VAR_FAST_SERVER_PERMIL */ ++ YYSYMBOL_VAR_FAST_SERVER_NUM = 289, /* VAR_FAST_SERVER_NUM */ ++ YYSYMBOL_VAR_ALLOW_NOTIFY = 290, /* VAR_ALLOW_NOTIFY */ ++ YYSYMBOL_VAR_TLS_WIN_CERT = 291, /* VAR_TLS_WIN_CERT */ ++ YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 292, /* VAR_TCP_CONNECTION_LIMIT */ ++ YYSYMBOL_VAR_FORWARD_NO_CACHE = 293, /* VAR_FORWARD_NO_CACHE */ ++ YYSYMBOL_VAR_STUB_NO_CACHE = 294, /* VAR_STUB_NO_CACHE */ ++ YYSYMBOL_VAR_LOG_SERVFAIL = 295, /* VAR_LOG_SERVFAIL */ ++ YYSYMBOL_VAR_DENY_ANY = 296, /* VAR_DENY_ANY */ ++ YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 297, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ ++ YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 298, /* VAR_LOG_TAG_QUERYREPLY */ ++ YYSYMBOL_VAR_STREAM_WAIT_SIZE = 299, /* VAR_STREAM_WAIT_SIZE */ ++ YYSYMBOL_VAR_TLS_CIPHERS = 300, /* VAR_TLS_CIPHERS */ ++ YYSYMBOL_VAR_TLS_CIPHERSUITES = 301, /* VAR_TLS_CIPHERSUITES */ ++ YYSYMBOL_VAR_TLS_USE_SNI = 302, /* VAR_TLS_USE_SNI */ ++ YYSYMBOL_VAR_IPSET = 303, /* VAR_IPSET */ ++ YYSYMBOL_VAR_IPSET_NAME_V4 = 304, /* VAR_IPSET_NAME_V4 */ ++ YYSYMBOL_VAR_IPSET_NAME_V6 = 305, /* VAR_IPSET_NAME_V6 */ ++ YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 306, /* VAR_TLS_SESSION_TICKET_KEYS */ ++ YYSYMBOL_VAR_RPZ = 307, /* VAR_RPZ */ ++ YYSYMBOL_VAR_TAGS = 308, /* VAR_TAGS */ ++ YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 309, /* VAR_RPZ_ACTION_OVERRIDE */ ++ YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 310, /* VAR_RPZ_CNAME_OVERRIDE */ ++ YYSYMBOL_VAR_RPZ_LOG = 311, /* VAR_RPZ_LOG */ ++ YYSYMBOL_VAR_RPZ_LOG_NAME = 312, /* VAR_RPZ_LOG_NAME */ ++ YYSYMBOL_VAR_DYNLIB = 313, /* VAR_DYNLIB */ ++ YYSYMBOL_VAR_DYNLIB_FILE = 314, /* VAR_DYNLIB_FILE */ ++ YYSYMBOL_VAR_EDNS_CLIENT_STRING = 315, /* VAR_EDNS_CLIENT_STRING */ ++ YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 316, /* VAR_EDNS_CLIENT_STRING_OPCODE */ ++ YYSYMBOL_VAR_NSID = 317, /* VAR_NSID */ ++ YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 318, /* VAR_ZONEMD_PERMISSIVE_MODE */ ++ YYSYMBOL_VAR_ZONEMD_CHECK = 319, /* VAR_ZONEMD_CHECK */ ++ YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 320, /* VAR_ZONEMD_REJECT_ABSENCE */ ++ YYSYMBOL_YYACCEPT = 321, /* $accept */ ++ YYSYMBOL_toplevelvars = 322, /* toplevelvars */ ++ YYSYMBOL_toplevelvar = 323, /* toplevelvar */ ++ YYSYMBOL_force_toplevel = 324, /* force_toplevel */ ++ YYSYMBOL_serverstart = 325, /* serverstart */ ++ YYSYMBOL_contents_server = 326, /* contents_server */ ++ YYSYMBOL_content_server = 327, /* content_server */ ++ YYSYMBOL_stubstart = 328, /* stubstart */ ++ YYSYMBOL_contents_stub = 329, /* contents_stub */ ++ YYSYMBOL_content_stub = 330, /* content_stub */ ++ YYSYMBOL_forwardstart = 331, /* forwardstart */ ++ YYSYMBOL_contents_forward = 332, /* contents_forward */ ++ YYSYMBOL_content_forward = 333, /* content_forward */ ++ YYSYMBOL_viewstart = 334, /* viewstart */ ++ YYSYMBOL_contents_view = 335, /* contents_view */ ++ YYSYMBOL_content_view = 336, /* content_view */ ++ YYSYMBOL_authstart = 337, /* authstart */ ++ YYSYMBOL_contents_auth = 338, /* contents_auth */ ++ YYSYMBOL_content_auth = 339, /* content_auth */ ++ YYSYMBOL_rpz_tag = 340, /* rpz_tag */ ++ YYSYMBOL_rpz_action_override = 341, /* rpz_action_override */ ++ YYSYMBOL_rpz_cname_override = 342, /* rpz_cname_override */ ++ YYSYMBOL_rpz_log = 343, /* rpz_log */ ++ YYSYMBOL_rpz_log_name = 344, /* rpz_log_name */ ++ YYSYMBOL_rpzstart = 345, /* rpzstart */ ++ YYSYMBOL_contents_rpz = 346, /* contents_rpz */ ++ YYSYMBOL_content_rpz = 347, /* content_rpz */ ++ YYSYMBOL_server_num_threads = 348, /* server_num_threads */ ++ YYSYMBOL_server_verbosity = 349, /* server_verbosity */ ++ YYSYMBOL_server_statistics_interval = 350, /* server_statistics_interval */ ++ YYSYMBOL_server_statistics_cumulative = 351, /* server_statistics_cumulative */ ++ YYSYMBOL_server_extended_statistics = 352, /* server_extended_statistics */ ++ YYSYMBOL_server_shm_enable = 353, /* server_shm_enable */ ++ YYSYMBOL_server_shm_key = 354, /* server_shm_key */ ++ YYSYMBOL_server_port = 355, /* server_port */ ++ YYSYMBOL_server_send_client_subnet = 356, /* server_send_client_subnet */ ++ YYSYMBOL_server_client_subnet_zone = 357, /* server_client_subnet_zone */ ++ YYSYMBOL_server_client_subnet_always_forward = 358, /* server_client_subnet_always_forward */ ++ YYSYMBOL_server_client_subnet_opcode = 359, /* server_client_subnet_opcode */ ++ YYSYMBOL_server_max_client_subnet_ipv4 = 360, /* server_max_client_subnet_ipv4 */ ++ YYSYMBOL_server_max_client_subnet_ipv6 = 361, /* server_max_client_subnet_ipv6 */ ++ YYSYMBOL_server_min_client_subnet_ipv4 = 362, /* server_min_client_subnet_ipv4 */ ++ YYSYMBOL_server_min_client_subnet_ipv6 = 363, /* server_min_client_subnet_ipv6 */ ++ YYSYMBOL_server_max_ecs_tree_size_ipv4 = 364, /* server_max_ecs_tree_size_ipv4 */ ++ YYSYMBOL_server_max_ecs_tree_size_ipv6 = 365, /* server_max_ecs_tree_size_ipv6 */ ++ YYSYMBOL_server_interface = 366, /* server_interface */ ++ YYSYMBOL_server_outgoing_interface = 367, /* server_outgoing_interface */ ++ YYSYMBOL_server_outgoing_range = 368, /* server_outgoing_range */ ++ YYSYMBOL_server_outgoing_port_permit = 369, /* server_outgoing_port_permit */ ++ YYSYMBOL_server_outgoing_port_avoid = 370, /* server_outgoing_port_avoid */ ++ YYSYMBOL_server_outgoing_num_tcp = 371, /* server_outgoing_num_tcp */ ++ YYSYMBOL_server_incoming_num_tcp = 372, /* server_incoming_num_tcp */ ++ YYSYMBOL_server_interface_automatic = 373, /* server_interface_automatic */ ++ YYSYMBOL_server_do_ip4 = 374, /* server_do_ip4 */ ++ YYSYMBOL_server_do_ip6 = 375, /* server_do_ip6 */ ++ YYSYMBOL_server_do_udp = 376, /* server_do_udp */ ++ YYSYMBOL_server_do_tcp = 377, /* server_do_tcp */ ++ YYSYMBOL_server_prefer_ip4 = 378, /* server_prefer_ip4 */ ++ YYSYMBOL_server_prefer_ip6 = 379, /* server_prefer_ip6 */ ++ YYSYMBOL_server_tcp_mss = 380, /* server_tcp_mss */ ++ YYSYMBOL_server_outgoing_tcp_mss = 381, /* server_outgoing_tcp_mss */ ++ YYSYMBOL_server_tcp_idle_timeout = 382, /* server_tcp_idle_timeout */ ++ YYSYMBOL_server_max_reuse_tcp_queries = 383, /* server_max_reuse_tcp_queries */ ++ YYSYMBOL_server_tcp_reuse_timeout = 384, /* server_tcp_reuse_timeout */ ++ YYSYMBOL_server_tcp_auth_query_timeout = 385, /* server_tcp_auth_query_timeout */ ++ YYSYMBOL_server_tcp_keepalive = 386, /* server_tcp_keepalive */ ++ YYSYMBOL_server_tcp_keepalive_timeout = 387, /* server_tcp_keepalive_timeout */ ++ YYSYMBOL_server_tcp_upstream = 388, /* server_tcp_upstream */ ++ YYSYMBOL_server_udp_upstream_without_downstream = 389, /* server_udp_upstream_without_downstream */ ++ YYSYMBOL_server_ssl_upstream = 390, /* server_ssl_upstream */ ++ YYSYMBOL_server_ssl_service_key = 391, /* server_ssl_service_key */ ++ YYSYMBOL_server_ssl_service_pem = 392, /* server_ssl_service_pem */ ++ YYSYMBOL_server_ssl_port = 393, /* server_ssl_port */ ++ YYSYMBOL_server_tls_cert_bundle = 394, /* server_tls_cert_bundle */ ++ YYSYMBOL_server_tls_win_cert = 395, /* server_tls_win_cert */ ++ YYSYMBOL_server_tls_additional_port = 396, /* server_tls_additional_port */ ++ YYSYMBOL_server_tls_ciphers = 397, /* server_tls_ciphers */ ++ YYSYMBOL_server_tls_ciphersuites = 398, /* server_tls_ciphersuites */ ++ YYSYMBOL_server_tls_session_ticket_keys = 399, /* server_tls_session_ticket_keys */ ++ YYSYMBOL_server_tls_use_sni = 400, /* server_tls_use_sni */ ++ YYSYMBOL_server_https_port = 401, /* server_https_port */ ++ YYSYMBOL_server_http_endpoint = 402, /* server_http_endpoint */ ++ YYSYMBOL_server_http_max_streams = 403, /* server_http_max_streams */ ++ YYSYMBOL_server_http_query_buffer_size = 404, /* server_http_query_buffer_size */ ++ YYSYMBOL_server_http_response_buffer_size = 405, /* server_http_response_buffer_size */ ++ YYSYMBOL_server_http_nodelay = 406, /* server_http_nodelay */ ++ YYSYMBOL_server_http_notls_downstream = 407, /* server_http_notls_downstream */ ++ YYSYMBOL_server_use_systemd = 408, /* server_use_systemd */ ++ YYSYMBOL_server_do_daemonize = 409, /* server_do_daemonize */ ++ YYSYMBOL_server_use_syslog = 410, /* server_use_syslog */ ++ YYSYMBOL_server_log_time_ascii = 411, /* server_log_time_ascii */ ++ YYSYMBOL_server_log_queries = 412, /* server_log_queries */ ++ YYSYMBOL_server_log_replies = 413, /* server_log_replies */ ++ YYSYMBOL_server_log_tag_queryreply = 414, /* server_log_tag_queryreply */ ++ YYSYMBOL_server_log_servfail = 415, /* server_log_servfail */ ++ YYSYMBOL_server_log_local_actions = 416, /* server_log_local_actions */ ++ YYSYMBOL_server_chroot = 417, /* server_chroot */ ++ YYSYMBOL_server_username = 418, /* server_username */ ++ YYSYMBOL_server_directory = 419, /* server_directory */ ++ YYSYMBOL_server_logfile = 420, /* server_logfile */ ++ YYSYMBOL_server_pidfile = 421, /* server_pidfile */ ++ YYSYMBOL_server_root_hints = 422, /* server_root_hints */ ++ YYSYMBOL_server_dlv_anchor_file = 423, /* server_dlv_anchor_file */ ++ YYSYMBOL_server_dlv_anchor = 424, /* server_dlv_anchor */ ++ YYSYMBOL_server_auto_trust_anchor_file = 425, /* server_auto_trust_anchor_file */ ++ YYSYMBOL_server_trust_anchor_file = 426, /* server_trust_anchor_file */ ++ YYSYMBOL_server_trusted_keys_file = 427, /* server_trusted_keys_file */ ++ YYSYMBOL_server_trust_anchor = 428, /* server_trust_anchor */ ++ YYSYMBOL_server_trust_anchor_signaling = 429, /* server_trust_anchor_signaling */ ++ YYSYMBOL_server_root_key_sentinel = 430, /* server_root_key_sentinel */ ++ YYSYMBOL_server_domain_insecure = 431, /* server_domain_insecure */ ++ YYSYMBOL_server_hide_identity = 432, /* server_hide_identity */ ++ YYSYMBOL_server_hide_version = 433, /* server_hide_version */ ++ YYSYMBOL_server_hide_trustanchor = 434, /* server_hide_trustanchor */ ++ YYSYMBOL_server_hide_http_user_agent = 435, /* server_hide_http_user_agent */ ++ YYSYMBOL_server_identity = 436, /* server_identity */ ++ YYSYMBOL_server_version = 437, /* server_version */ ++ YYSYMBOL_server_http_user_agent = 438, /* server_http_user_agent */ ++ YYSYMBOL_server_nsid = 439, /* server_nsid */ ++ YYSYMBOL_server_so_rcvbuf = 440, /* server_so_rcvbuf */ ++ YYSYMBOL_server_so_sndbuf = 441, /* server_so_sndbuf */ ++ YYSYMBOL_server_so_reuseport = 442, /* server_so_reuseport */ ++ YYSYMBOL_server_ip_transparent = 443, /* server_ip_transparent */ ++ YYSYMBOL_server_ip_freebind = 444, /* server_ip_freebind */ ++ YYSYMBOL_server_ip_dscp = 445, /* server_ip_dscp */ ++ YYSYMBOL_server_stream_wait_size = 446, /* server_stream_wait_size */ ++ YYSYMBOL_server_edns_buffer_size = 447, /* server_edns_buffer_size */ ++ YYSYMBOL_server_msg_buffer_size = 448, /* server_msg_buffer_size */ ++ YYSYMBOL_server_msg_cache_size = 449, /* server_msg_cache_size */ ++ YYSYMBOL_server_msg_cache_slabs = 450, /* server_msg_cache_slabs */ ++ YYSYMBOL_server_num_queries_per_thread = 451, /* server_num_queries_per_thread */ ++ YYSYMBOL_server_jostle_timeout = 452, /* server_jostle_timeout */ ++ YYSYMBOL_server_delay_close = 453, /* server_delay_close */ ++ YYSYMBOL_server_udp_connect = 454, /* server_udp_connect */ ++ YYSYMBOL_server_unblock_lan_zones = 455, /* server_unblock_lan_zones */ ++ YYSYMBOL_server_insecure_lan_zones = 456, /* server_insecure_lan_zones */ ++ YYSYMBOL_server_rrset_cache_size = 457, /* server_rrset_cache_size */ ++ YYSYMBOL_server_rrset_cache_slabs = 458, /* server_rrset_cache_slabs */ ++ YYSYMBOL_server_infra_host_ttl = 459, /* server_infra_host_ttl */ ++ YYSYMBOL_server_infra_lame_ttl = 460, /* server_infra_lame_ttl */ ++ YYSYMBOL_server_infra_cache_numhosts = 461, /* server_infra_cache_numhosts */ ++ YYSYMBOL_server_infra_cache_lame_size = 462, /* server_infra_cache_lame_size */ ++ YYSYMBOL_server_infra_cache_slabs = 463, /* server_infra_cache_slabs */ ++ YYSYMBOL_server_infra_cache_min_rtt = 464, /* server_infra_cache_min_rtt */ ++ YYSYMBOL_server_infra_keep_probing = 465, /* server_infra_keep_probing */ ++ YYSYMBOL_server_target_fetch_policy = 466, /* server_target_fetch_policy */ ++ YYSYMBOL_server_harden_short_bufsize = 467, /* server_harden_short_bufsize */ ++ YYSYMBOL_server_harden_large_queries = 468, /* server_harden_large_queries */ ++ YYSYMBOL_server_harden_glue = 469, /* server_harden_glue */ ++ YYSYMBOL_server_harden_dnssec_stripped = 470, /* server_harden_dnssec_stripped */ ++ YYSYMBOL_server_harden_below_nxdomain = 471, /* server_harden_below_nxdomain */ ++ YYSYMBOL_server_harden_referral_path = 472, /* server_harden_referral_path */ ++ YYSYMBOL_server_harden_algo_downgrade = 473, /* server_harden_algo_downgrade */ ++ YYSYMBOL_server_use_caps_for_id = 474, /* server_use_caps_for_id */ ++ YYSYMBOL_server_caps_whitelist = 475, /* server_caps_whitelist */ ++ YYSYMBOL_server_private_address = 476, /* server_private_address */ ++ YYSYMBOL_server_private_domain = 477, /* server_private_domain */ ++ YYSYMBOL_server_prefetch = 478, /* server_prefetch */ ++ YYSYMBOL_server_prefetch_key = 479, /* server_prefetch_key */ ++ YYSYMBOL_server_deny_any = 480, /* server_deny_any */ ++ YYSYMBOL_server_unwanted_reply_threshold = 481, /* server_unwanted_reply_threshold */ ++ YYSYMBOL_server_do_not_query_address = 482, /* server_do_not_query_address */ ++ YYSYMBOL_server_do_not_query_localhost = 483, /* server_do_not_query_localhost */ ++ YYSYMBOL_server_access_control = 484, /* server_access_control */ ++ YYSYMBOL_server_module_conf = 485, /* server_module_conf */ ++ YYSYMBOL_server_val_override_date = 486, /* server_val_override_date */ ++ YYSYMBOL_server_val_sig_skew_min = 487, /* server_val_sig_skew_min */ ++ YYSYMBOL_server_val_sig_skew_max = 488, /* server_val_sig_skew_max */ ++ YYSYMBOL_server_val_max_restart = 489, /* server_val_max_restart */ ++ YYSYMBOL_server_cache_max_ttl = 490, /* server_cache_max_ttl */ ++ YYSYMBOL_server_cache_max_negative_ttl = 491, /* server_cache_max_negative_ttl */ ++ YYSYMBOL_server_cache_min_ttl = 492, /* server_cache_min_ttl */ ++ YYSYMBOL_server_bogus_ttl = 493, /* server_bogus_ttl */ ++ YYSYMBOL_server_val_clean_additional = 494, /* server_val_clean_additional */ ++ YYSYMBOL_server_val_permissive_mode = 495, /* server_val_permissive_mode */ ++ YYSYMBOL_server_aggressive_nsec = 496, /* server_aggressive_nsec */ ++ YYSYMBOL_server_ignore_cd_flag = 497, /* server_ignore_cd_flag */ ++ YYSYMBOL_server_serve_expired = 498, /* server_serve_expired */ ++ YYSYMBOL_server_serve_expired_ttl = 499, /* server_serve_expired_ttl */ ++ YYSYMBOL_server_serve_expired_ttl_reset = 500, /* server_serve_expired_ttl_reset */ ++ YYSYMBOL_server_serve_expired_reply_ttl = 501, /* server_serve_expired_reply_ttl */ ++ YYSYMBOL_server_serve_expired_client_timeout = 502, /* server_serve_expired_client_timeout */ ++ YYSYMBOL_server_serve_original_ttl = 503, /* server_serve_original_ttl */ ++ YYSYMBOL_server_fake_dsa = 504, /* server_fake_dsa */ ++ YYSYMBOL_server_fake_sha1 = 505, /* server_fake_sha1 */ ++ YYSYMBOL_server_val_log_level = 506, /* server_val_log_level */ ++ YYSYMBOL_server_val_nsec3_keysize_iterations = 507, /* server_val_nsec3_keysize_iterations */ ++ YYSYMBOL_server_zonemd_permissive_mode = 508, /* server_zonemd_permissive_mode */ ++ YYSYMBOL_server_add_holddown = 509, /* server_add_holddown */ ++ YYSYMBOL_server_del_holddown = 510, /* server_del_holddown */ ++ YYSYMBOL_server_keep_missing = 511, /* server_keep_missing */ ++ YYSYMBOL_server_permit_small_holddown = 512, /* server_permit_small_holddown */ ++ YYSYMBOL_server_key_cache_size = 513, /* server_key_cache_size */ ++ YYSYMBOL_server_key_cache_slabs = 514, /* server_key_cache_slabs */ ++ YYSYMBOL_server_neg_cache_size = 515, /* server_neg_cache_size */ ++ YYSYMBOL_server_local_zone = 516, /* server_local_zone */ ++ YYSYMBOL_server_local_data = 517, /* server_local_data */ ++ YYSYMBOL_server_local_data_ptr = 518, /* server_local_data_ptr */ ++ YYSYMBOL_server_minimal_responses = 519, /* server_minimal_responses */ ++ YYSYMBOL_server_rrset_roundrobin = 520, /* server_rrset_roundrobin */ ++ YYSYMBOL_server_unknown_server_time_limit = 521, /* server_unknown_server_time_limit */ ++ YYSYMBOL_server_max_udp_size = 522, /* server_max_udp_size */ ++ YYSYMBOL_server_dns64_prefix = 523, /* server_dns64_prefix */ ++ YYSYMBOL_server_dns64_synthall = 524, /* server_dns64_synthall */ ++ YYSYMBOL_server_dns64_ignore_aaaa = 525, /* server_dns64_ignore_aaaa */ ++ YYSYMBOL_server_define_tag = 526, /* server_define_tag */ ++ YYSYMBOL_server_local_zone_tag = 527, /* server_local_zone_tag */ ++ YYSYMBOL_server_access_control_tag = 528, /* server_access_control_tag */ ++ YYSYMBOL_server_access_control_tag_action = 529, /* server_access_control_tag_action */ ++ YYSYMBOL_server_access_control_tag_data = 530, /* server_access_control_tag_data */ ++ YYSYMBOL_server_local_zone_override = 531, /* server_local_zone_override */ ++ YYSYMBOL_server_access_control_view = 532, /* server_access_control_view */ ++ YYSYMBOL_server_response_ip_tag = 533, /* server_response_ip_tag */ ++ YYSYMBOL_server_ip_ratelimit = 534, /* server_ip_ratelimit */ ++ YYSYMBOL_server_ratelimit = 535, /* server_ratelimit */ ++ YYSYMBOL_server_ip_ratelimit_size = 536, /* server_ip_ratelimit_size */ ++ YYSYMBOL_server_ratelimit_size = 537, /* server_ratelimit_size */ ++ YYSYMBOL_server_ip_ratelimit_slabs = 538, /* server_ip_ratelimit_slabs */ ++ YYSYMBOL_server_ratelimit_slabs = 539, /* server_ratelimit_slabs */ ++ YYSYMBOL_server_ratelimit_for_domain = 540, /* server_ratelimit_for_domain */ ++ YYSYMBOL_server_ratelimit_below_domain = 541, /* server_ratelimit_below_domain */ ++ YYSYMBOL_server_ip_ratelimit_factor = 542, /* server_ip_ratelimit_factor */ ++ YYSYMBOL_server_ratelimit_factor = 543, /* server_ratelimit_factor */ ++ YYSYMBOL_server_outbound_msg_retry = 544, /* server_outbound_msg_retry */ ++ YYSYMBOL_server_low_rtt = 545, /* server_low_rtt */ ++ YYSYMBOL_server_fast_server_num = 546, /* server_fast_server_num */ ++ YYSYMBOL_server_fast_server_permil = 547, /* server_fast_server_permil */ ++ YYSYMBOL_server_qname_minimisation = 548, /* server_qname_minimisation */ ++ YYSYMBOL_server_qname_minimisation_strict = 549, /* server_qname_minimisation_strict */ ++ YYSYMBOL_server_pad_responses = 550, /* server_pad_responses */ ++ YYSYMBOL_server_pad_responses_block_size = 551, /* server_pad_responses_block_size */ ++ YYSYMBOL_server_pad_queries = 552, /* server_pad_queries */ ++ YYSYMBOL_server_pad_queries_block_size = 553, /* server_pad_queries_block_size */ ++ YYSYMBOL_server_ipsecmod_enabled = 554, /* server_ipsecmod_enabled */ ++ YYSYMBOL_server_ipsecmod_ignore_bogus = 555, /* server_ipsecmod_ignore_bogus */ ++ YYSYMBOL_server_ipsecmod_hook = 556, /* server_ipsecmod_hook */ ++ YYSYMBOL_server_ipsecmod_max_ttl = 557, /* server_ipsecmod_max_ttl */ ++ YYSYMBOL_server_ipsecmod_whitelist = 558, /* server_ipsecmod_whitelist */ ++ YYSYMBOL_server_ipsecmod_strict = 559, /* server_ipsecmod_strict */ ++ YYSYMBOL_server_edns_client_string = 560, /* server_edns_client_string */ ++ YYSYMBOL_server_edns_client_string_opcode = 561, /* server_edns_client_string_opcode */ ++ YYSYMBOL_stub_name = 562, /* stub_name */ ++ YYSYMBOL_stub_host = 563, /* stub_host */ ++ YYSYMBOL_stub_addr = 564, /* stub_addr */ ++ YYSYMBOL_stub_first = 565, /* stub_first */ ++ YYSYMBOL_stub_no_cache = 566, /* stub_no_cache */ ++ YYSYMBOL_stub_ssl_upstream = 567, /* stub_ssl_upstream */ ++ YYSYMBOL_stub_tcp_upstream = 568, /* stub_tcp_upstream */ ++ YYSYMBOL_stub_prime = 569, /* stub_prime */ ++ YYSYMBOL_forward_name = 570, /* forward_name */ ++ YYSYMBOL_forward_host = 571, /* forward_host */ ++ YYSYMBOL_forward_addr = 572, /* forward_addr */ ++ YYSYMBOL_forward_first = 573, /* forward_first */ ++ YYSYMBOL_forward_no_cache = 574, /* forward_no_cache */ ++ YYSYMBOL_forward_ssl_upstream = 575, /* forward_ssl_upstream */ ++ YYSYMBOL_forward_tcp_upstream = 576, /* forward_tcp_upstream */ ++ YYSYMBOL_auth_name = 577, /* auth_name */ ++ YYSYMBOL_auth_zonefile = 578, /* auth_zonefile */ ++ YYSYMBOL_auth_master = 579, /* auth_master */ ++ YYSYMBOL_auth_url = 580, /* auth_url */ ++ YYSYMBOL_auth_allow_notify = 581, /* auth_allow_notify */ ++ YYSYMBOL_auth_zonemd_check = 582, /* auth_zonemd_check */ ++ YYSYMBOL_auth_zonemd_reject_absence = 583, /* auth_zonemd_reject_absence */ ++ YYSYMBOL_auth_for_downstream = 584, /* auth_for_downstream */ ++ YYSYMBOL_auth_for_upstream = 585, /* auth_for_upstream */ ++ YYSYMBOL_auth_fallback_enabled = 586, /* auth_fallback_enabled */ ++ YYSYMBOL_view_name = 587, /* view_name */ ++ YYSYMBOL_view_local_zone = 588, /* view_local_zone */ ++ YYSYMBOL_view_response_ip = 589, /* view_response_ip */ ++ YYSYMBOL_view_response_ip_data = 590, /* view_response_ip_data */ ++ YYSYMBOL_view_local_data = 591, /* view_local_data */ ++ YYSYMBOL_view_local_data_ptr = 592, /* view_local_data_ptr */ ++ YYSYMBOL_view_first = 593, /* view_first */ ++ YYSYMBOL_rcstart = 594, /* rcstart */ ++ YYSYMBOL_contents_rc = 595, /* contents_rc */ ++ YYSYMBOL_content_rc = 596, /* content_rc */ ++ YYSYMBOL_rc_control_enable = 597, /* rc_control_enable */ ++ YYSYMBOL_rc_control_port = 598, /* rc_control_port */ ++ YYSYMBOL_rc_control_interface = 599, /* rc_control_interface */ ++ YYSYMBOL_rc_control_use_cert = 600, /* rc_control_use_cert */ ++ YYSYMBOL_rc_server_key_file = 601, /* rc_server_key_file */ ++ YYSYMBOL_rc_server_cert_file = 602, /* rc_server_cert_file */ ++ YYSYMBOL_rc_control_key_file = 603, /* rc_control_key_file */ ++ YYSYMBOL_rc_control_cert_file = 604, /* rc_control_cert_file */ ++ YYSYMBOL_dtstart = 605, /* dtstart */ ++ YYSYMBOL_contents_dt = 606, /* contents_dt */ ++ YYSYMBOL_content_dt = 607, /* content_dt */ ++ YYSYMBOL_dt_dnstap_enable = 608, /* dt_dnstap_enable */ ++ YYSYMBOL_dt_dnstap_bidirectional = 609, /* dt_dnstap_bidirectional */ ++ YYSYMBOL_dt_dnstap_socket_path = 610, /* dt_dnstap_socket_path */ ++ YYSYMBOL_dt_dnstap_ip = 611, /* dt_dnstap_ip */ ++ YYSYMBOL_dt_dnstap_tls = 612, /* dt_dnstap_tls */ ++ YYSYMBOL_dt_dnstap_tls_server_name = 613, /* dt_dnstap_tls_server_name */ ++ YYSYMBOL_dt_dnstap_tls_cert_bundle = 614, /* dt_dnstap_tls_cert_bundle */ ++ YYSYMBOL_dt_dnstap_tls_client_key_file = 615, /* dt_dnstap_tls_client_key_file */ ++ YYSYMBOL_dt_dnstap_tls_client_cert_file = 616, /* dt_dnstap_tls_client_cert_file */ ++ YYSYMBOL_dt_dnstap_send_identity = 617, /* dt_dnstap_send_identity */ ++ YYSYMBOL_dt_dnstap_send_version = 618, /* dt_dnstap_send_version */ ++ YYSYMBOL_dt_dnstap_identity = 619, /* dt_dnstap_identity */ ++ YYSYMBOL_dt_dnstap_version = 620, /* dt_dnstap_version */ ++ YYSYMBOL_dt_dnstap_log_resolver_query_messages = 621, /* dt_dnstap_log_resolver_query_messages */ ++ YYSYMBOL_dt_dnstap_log_resolver_response_messages = 622, /* dt_dnstap_log_resolver_response_messages */ ++ YYSYMBOL_dt_dnstap_log_client_query_messages = 623, /* dt_dnstap_log_client_query_messages */ ++ YYSYMBOL_dt_dnstap_log_client_response_messages = 624, /* dt_dnstap_log_client_response_messages */ ++ YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 625, /* dt_dnstap_log_forwarder_query_messages */ ++ YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 626, /* dt_dnstap_log_forwarder_response_messages */ ++ YYSYMBOL_pythonstart = 627, /* pythonstart */ ++ YYSYMBOL_contents_py = 628, /* contents_py */ ++ YYSYMBOL_content_py = 629, /* content_py */ ++ YYSYMBOL_py_script = 630, /* py_script */ ++ YYSYMBOL_dynlibstart = 631, /* dynlibstart */ ++ YYSYMBOL_contents_dl = 632, /* contents_dl */ ++ YYSYMBOL_content_dl = 633, /* content_dl */ ++ YYSYMBOL_dl_file = 634, /* dl_file */ ++ YYSYMBOL_server_disable_dnssec_lame_check = 635, /* server_disable_dnssec_lame_check */ ++ YYSYMBOL_server_log_identity = 636, /* server_log_identity */ ++ YYSYMBOL_server_response_ip = 637, /* server_response_ip */ ++ YYSYMBOL_server_response_ip_data = 638, /* server_response_ip_data */ ++ YYSYMBOL_dnscstart = 639, /* dnscstart */ ++ YYSYMBOL_contents_dnsc = 640, /* contents_dnsc */ ++ YYSYMBOL_content_dnsc = 641, /* content_dnsc */ ++ YYSYMBOL_dnsc_dnscrypt_enable = 642, /* dnsc_dnscrypt_enable */ ++ YYSYMBOL_dnsc_dnscrypt_port = 643, /* dnsc_dnscrypt_port */ ++ YYSYMBOL_dnsc_dnscrypt_provider = 644, /* dnsc_dnscrypt_provider */ ++ YYSYMBOL_dnsc_dnscrypt_provider_cert = 645, /* dnsc_dnscrypt_provider_cert */ ++ YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 646, /* dnsc_dnscrypt_provider_cert_rotated */ ++ YYSYMBOL_dnsc_dnscrypt_secret_key = 647, /* dnsc_dnscrypt_secret_key */ ++ YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 648, /* dnsc_dnscrypt_shared_secret_cache_size */ ++ YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 649, /* dnsc_dnscrypt_shared_secret_cache_slabs */ ++ YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 650, /* dnsc_dnscrypt_nonce_cache_size */ ++ YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 651, /* dnsc_dnscrypt_nonce_cache_slabs */ ++ YYSYMBOL_cachedbstart = 652, /* cachedbstart */ ++ YYSYMBOL_contents_cachedb = 653, /* contents_cachedb */ ++ YYSYMBOL_content_cachedb = 654, /* content_cachedb */ ++ YYSYMBOL_cachedb_backend_name = 655, /* cachedb_backend_name */ ++ YYSYMBOL_cachedb_secret_seed = 656, /* cachedb_secret_seed */ ++ YYSYMBOL_redis_server_host = 657, /* redis_server_host */ ++ YYSYMBOL_redis_server_port = 658, /* redis_server_port */ ++ YYSYMBOL_redis_timeout = 659, /* redis_timeout */ ++ YYSYMBOL_redis_expire_records = 660, /* redis_expire_records */ ++ YYSYMBOL_server_tcp_connection_limit = 661, /* server_tcp_connection_limit */ ++ YYSYMBOL_ipsetstart = 662, /* ipsetstart */ ++ YYSYMBOL_contents_ipset = 663, /* contents_ipset */ ++ YYSYMBOL_content_ipset = 664, /* content_ipset */ ++ YYSYMBOL_ipset_name_v4 = 665, /* ipset_name_v4 */ ++ YYSYMBOL_ipset_name_v6 = 666 /* ipset_name_v6 */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; + -/* Copy the second part of user declarations. */ -#line 690 "util/configparser.c" /* yacc.c:358 */ #ifdef short # undef short @@@ -1782,30 -928,28 +1786,30 @@@ union yyallo /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ - #define YYLAST 676 -#define YYLAST 538 ++#define YYLAST 678 /* YYNTOKENS -- Number of terminals. */ - #define YYNTOKENS 320 -#define YYNTOKENS 268 ++#define YYNTOKENS 321 /* YYNNTS -- Number of nonterminals. */ - #define YYNNTS 345 -#define YYNNTS 287 ++#define YYNNTS 346 /* YYNRULES -- Number of rules. */ - #define YYNRULES 666 -#define YYNRULES 551 ++#define YYNRULES 668 /* YYNSTATES -- Number of states. */ - #define YYNSTATES 990 -#define YYNSTATES 826 ++#define YYNSTATES 993 - #define YYMAXUTOK 574 -/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned - by yylex, with out-of-bounds checking. */ -#define YYUNDEFTOK 2 -#define YYMAXUTOK 522 ++#define YYMAXUTOK 575 -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, without out-of-bounds checking. */ -static const yytype_uint16 yytranslate[] = + as returned by yylex. */ +static const yytype_int16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@@ -1859,85 -1003,69 +1863,85 @@@ 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267 + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319 ++ 315, 316, 317, 318, 319, 320 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = +static const yytype_int16 yyrline[] = { - 0, 191, 191, 191, 192, 192, 193, 193, 194, 194, - 194, 195, 195, 196, 196, 197, 197, 198, 200, 206, - 211, 212, 213, 213, 213, 214, 214, 215, 215, 215, - 216, 216, 217, 217, 217, 218, 218, 219, 219, 219, - 220, 220, 220, 221, 221, 222, 222, 223, 223, 224, - 224, 225, 225, 226, 226, 227, 227, 228, 228, 229, - 229, 229, 230, 230, 231, 231, 231, 232, 232, 232, - 233, 233, 234, 234, 235, 235, 236, 236, 237, 237, - 237, 238, 238, 239, 239, 240, 240, 240, 241, 241, - 242, 242, 243, 243, 244, 244, 244, 245, 245, 246, - 0, 173, 173, 173, 174, 174, 175, 175, 176, 176, - 176, 177, 177, 178, 182, 187, 188, 189, 189, 189, - 190, 190, 191, 191, 192, 192, 193, 193, 193, 194, - 194, 195, 195, 195, 196, 196, 196, 197, 197, 198, - 198, 199, 199, 200, 200, 201, 201, 202, 202, 203, - 203, 204, 204, 205, 205, 205, 206, 206, 206, 207, - 207, 207, 208, 208, 209, 209, 210, 210, 211, 211, - 212, 212, 212, 213, 213, 214, 214, 215, 215, 215, - 216, 216, 217, 217, 218, 218, 219, 219, 219, 220, - 220, 221, 221, 222, 222, 223, 223, 224, 224, 225, - 225, 225, 226, 226, 227, 227, 227, 228, 228, 228, - 229, 229, 229, 230, 230, 230, 230, 231, 232, 232, - 232, 233, 233, 233, 234, 234, 235, 235, 236, 236, - 236, 237, 237, 238, 238, 238, 239, 239, 240, 240, - 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, -- 246, 247, 247, 248, 248, 249, 249, 250, 250, 251, - 251, 252, 252, 253, 253, 253, 254, 254, 254, 255, - 255, 255, 256, 256, 256, 256, 257, 258, 258, 258, - 259, 259, 259, 260, 260, 261, 261, 262, 262, 262, - 263, 263, 263, 264, 264, 265, 265, 265, 266, 266, - 267, 267, 267, 268, 268, 269, 269, 270, 270, 271, - 272, 272, 273, 273, 274, 274, 275, 276, 276, 277, - 277, 278, 278, 279, 279, 280, 280, 281, 281, 281, - 282, 282, 283, 283, 284, 284, 285, 286, 286, 287, - 287, 288, 289, 289, 290, 290, 291, 291, 292, 292, - 293, 293, 293, 294, 294, 294, 295, 295, 296, 297, - 297, 298, 298, 299, 299, 300, 300, 301, 301, 301, - 302, 302, 302, 303, 303, 303, 304, 304, 305, 305, - 306, 306, 307, 307, 308, 308, 309, 309, 310, 310, - 313, 325, 326, 327, 327, 327, 327, 327, 328, 328, - 328, 330, 342, 343, 344, 344, 344, 344, 345, 345, - 345, 347, 361, 362, 363, 363, 363, 363, 364, 364, - 364, 366, 385, 386, 387, 387, 387, 387, 388, 388, - 388, 389, 389, 389, 392, 411, 428, 436, 446, 454, - 471, 472, 473, 473, 473, 473, 473, 474, 474, 474, - 475, 475, 477, 486, 495, 506, 515, 524, 533, 544, - 553, 565, 579, 594, 605, 622, 639, 656, 673, 688, - 703, 716, 731, 740, 749, 758, 767, 776, 785, 794, - 803, 812, 821, 830, 839, 848, 857, 870, 881, 892, - 903, 912, 925, 934, 943, 952, 959, 966, 975, 982, - 991, 999, 1006, 1013, 1021, 1030, 1038, 1054, 1062, 1070, - 1078, 1086, 1094, 1103, 1112, 1126, 1135, 1144, 1153, 1162, - 1171, 1180, 1187, 1194, 1220, 1228, 1235, 1242, 1249, 1256, - 1264, 1272, 1280, 1287, 1298, 1309, 1316, 1325, 1334, 1343, - 1352, 1359, 1366, 1373, 1389, 1397, 1405, 1415, 1425, 1435, - 1449, 1457, 1470, 1481, 1489, 1502, 1511, 1520, 1529, 1538, - 1548, 1558, 1566, 1579, 1588, 1596, 1605, 1613, 1626, 1635, - 1645, 1652, 1662, 1672, 1682, 1692, 1702, 1712, 1722, 1732, - 1739, 1746, 1753, 1762, 1771, 1780, 1789, 1796, 1806, 1826, - 1833, 1851, 1864, 1877, 1890, 1899, 1908, 1917, 1926, 1936, - 1946, 1957, 1966, 1975, 1984, 1993, 2002, 2011, 2020, 2033, - 2046, 2055, 2062, 2071, 2080, 2089, 2098, 2107, 2115, 2128, - 2136, 2181, 2188, 2203, 2213, 2223, 2230, 2237, 2244, 2253, - 2261, 2275, 2296, 2317, 2329, 2341, 2353, 2362, 2383, 2393, - 2402, 2410, 2418, 2431, 2444, 2459, 2474, 2483, 2492, 2498, - 2507, 2516, 2526, 2536, 2546, 2555, 2565, 2574, 2587, 2600, - 2612, 2626, 2638, 2652, 2661, 2673, 2683, 2690, 2697, 2706, - 2715, 2725, 2735, 2745, 2755, 2762, 2769, 2778, 2787, 2797, - 2807, 2817, 2824, 2831, 2838, 2846, 2856, 2866, 2876, 2886, - 2896, 2906, 2952, 2962, 2970, 2978, 2993, 3002, 3007, 3008, - 3009, 3009, 3009, 3010, 3010, 3010, 3011, 3011, 3013, 3023, - 3032, 3039, 3046, 3053, 3060, 3067, 3074, 3079, 3080, 3081, - 3081, 3081, 3082, 3082, 3082, 3083, 3084, 3084, 3085, 3085, - 3086, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3094, 3103, - 3113, 3120, 3127, 3136, 3143, 3150, 3157, 3164, 3173, 3182, - 3189, 3196, 3206, 3216, 3226, 3236, 3246, 3256, 3261, 3262, - 3263, 3265, 3271, 3276, 3277, 3278, 3280, 3286, 3296, 3303, - 3312, 3320, 3325, 3326, 3328, 3328, 3328, 3329, 3329, 3330, - 3331, 3332, 3333, 3334, 3336, 3346, 3355, 3362, 3371, 3378, - 3387, 3395, 3408, 3416, 3429, 3434, 3435, 3436, 3436, 3437, - 3437, 3437, 3438, 3440, 3452, 3464, 3476, 3491, 3504, 3517, - 3528, 3533, 3534, 3535, 3535, 3537, 3552 - 251, 251, 252, 252, 253, 253, 254, 254, 255, 255, - 256, 256, 257, 257, 257, 258, 258, 258, 259, 259, - 259, 260, 260, 261, 262, 262, 263, 263, 264, 264, - 265, 265, 266, 266, 266, 267, 267, 267, 268, 268, - 268, 269, 269, 270, 270, 271, 271, 273, 285, 286, - 287, 287, 287, 287, 287, 288, 288, 290, 302, 303, - 304, 304, 304, 304, 305, 305, 307, 321, 322, 323, - 323, 323, 323, 324, 324, 324, 326, 342, 343, 344, - 344, 344, 344, 345, 345, 345, 346, 348, 357, 366, - 377, 386, 395, 404, 415, 424, 435, 448, 463, 474, - 491, 508, 525, 542, 557, 572, 585, 600, 609, 618, - 627, 636, 645, 654, 663, 672, 681, 690, 699, 708, - 717, 730, 739, 752, 761, 770, 779, 786, 793, 802, - 809, 818, 826, 833, 840, 848, 857, 866, 880, 889, - 898, 907, 916, 925, 934, 941, 948, 974, 982, 989, - 996, 1003, 1010, 1018, 1026, 1034, 1041, 1052, 1063, 1070, - 1079, 1088, 1097, 1104, 1111, 1119, 1127, 1137, 1147, 1157, - 1165, 1178, 1189, 1197, 1210, 1219, 1228, 1237, 1247, 1257, - 1265, 1278, 1287, 1295, 1304, 1312, 1325, 1334, 1341, 1351, - 1361, 1371, 1381, 1391, 1401, 1411, 1421, 1428, 1435, 1442, - 1451, 1460, 1469, 1478, 1485, 1495, 1515, 1522, 1540, 1553, - 1566, 1575, 1584, 1593, 1602, 1612, 1622, 1633, 1642, 1651, - 1660, 1669, 1682, 1695, 1704, 1711, 1720, 1729, 1738, 1747, - 1755, 1768, 1776, 1809, 1816, 1831, 1841, 1851, 1858, 1865, - 1872, 1881, 1889, 1903, 1924, 1945, 1957, 1969, 1981, 1990, - 2011, 2021, 2030, 2038, 2046, 2059, 2072, 2087, 2102, 2111, - 2120, 2129, 2135, 2144, 2153, 2163, 2173, 2186, 2199, 2211, - 2225, 2237, 2251, 2261, 2268, 2275, 2284, 2293, 2303, 2313, - 2323, 2330, 2337, 2346, 2355, 2365, 2375, 2382, 2389, 2396, - 2404, 2414, 2424, 2434, 2444, 2476, 2486, 2494, 2502, 2517, - 2526, 2531, 2532, 2533, 2533, 2533, 2534, 2534, 2534, 2535, - 2535, 2537, 2547, 2556, 2563, 2570, 2577, 2584, 2591, 2598, - 2603, 2604, 2605, 2605, 2606, 2606, 2607, 2607, 2608, 2609, - 2610, 2611, 2612, 2613, 2615, 2624, 2631, 2640, 2649, 2656, - 2663, 2673, 2683, 2693, 2703, 2713, 2723, 2728, 2729, 2730, - 2732, 2738, 2748, 2755, 2764, 2772, 2777, 2778, 2780, 2780, - 2780, 2781, 2781, 2782, 2783, 2784, 2785, 2786, 2788, 2798, - 2807, 2814, 2823, 2830, 2839, 2847, 2860, 2868, 2881, 2886, - 2887, 2888, 2888, 2889, 2889, 2889, 2891, 2906, 2921, 2933, - 2948, 2961 ++ 0, 192, 192, 192, 193, 193, 194, 194, 195, 195, ++ 195, 196, 196, 197, 197, 198, 198, 199, 201, 207, ++ 212, 213, 214, 214, 214, 215, 215, 216, 216, 216, ++ 217, 217, 218, 218, 218, 219, 219, 220, 220, 220, ++ 221, 221, 221, 222, 222, 223, 223, 224, 224, 225, ++ 225, 226, 226, 227, 227, 228, 228, 229, 229, 230, ++ 230, 230, 231, 231, 232, 232, 232, 233, 233, 233, ++ 234, 234, 235, 235, 236, 236, 237, 237, 238, 238, ++ 238, 239, 239, 240, 240, 241, 241, 241, 242, 242, ++ 243, 243, 244, 244, 245, 245, 245, 246, 246, 247, ++ 247, 248, 248, 249, 249, 250, 250, 251, 251, 252, ++ 252, 253, 253, 254, 254, 254, 255, 255, 255, 256, ++ 256, 256, 257, 257, 257, 257, 258, 259, 259, 259, ++ 260, 260, 260, 261, 261, 262, 262, 263, 263, 263, ++ 264, 264, 264, 265, 265, 266, 266, 266, 267, 267, ++ 268, 268, 268, 269, 269, 270, 270, 271, 271, 272, ++ 273, 273, 274, 274, 275, 275, 276, 276, 277, 277, ++ 278, 278, 279, 279, 280, 280, 281, 281, 282, 282, ++ 282, 283, 283, 284, 284, 285, 285, 286, 287, 287, ++ 288, 288, 289, 290, 290, 291, 291, 292, 292, 293, ++ 293, 294, 294, 294, 295, 295, 295, 296, 296, 297, ++ 298, 298, 299, 299, 300, 300, 301, 301, 302, 302, ++ 302, 303, 303, 303, 304, 304, 304, 305, 305, 306, ++ 306, 307, 307, 308, 308, 309, 309, 310, 310, 311, ++ 311, 314, 326, 327, 328, 328, 328, 328, 328, 329, ++ 329, 329, 331, 343, 344, 345, 345, 345, 345, 346, ++ 346, 346, 348, 362, 363, 364, 364, 364, 364, 365, ++ 365, 365, 367, 386, 387, 388, 388, 388, 388, 389, ++ 389, 389, 390, 390, 390, 393, 412, 429, 437, 447, ++ 455, 472, 473, 474, 474, 474, 474, 474, 475, 475, ++ 475, 476, 476, 478, 487, 496, 507, 516, 525, 534, ++ 545, 554, 566, 580, 595, 606, 623, 640, 657, 674, ++ 689, 704, 717, 732, 741, 750, 759, 768, 777, 786, ++ 795, 804, 813, 822, 831, 840, 849, 858, 871, 882, ++ 893, 904, 913, 926, 935, 944, 953, 960, 967, 976, ++ 983, 992, 1000, 1007, 1014, 1022, 1031, 1039, 1055, 1063, ++ 1071, 1079, 1087, 1095, 1104, 1113, 1127, 1136, 1145, 1154, ++ 1163, 1172, 1181, 1188, 1195, 1221, 1229, 1236, 1243, 1250, ++ 1257, 1265, 1273, 1281, 1288, 1299, 1310, 1317, 1326, 1335, ++ 1344, 1353, 1360, 1367, 1374, 1390, 1398, 1406, 1416, 1426, ++ 1436, 1450, 1458, 1471, 1482, 1490, 1503, 1512, 1521, 1530, ++ 1539, 1549, 1559, 1567, 1580, 1589, 1597, 1606, 1614, 1627, ++ 1636, 1646, 1653, 1663, 1673, 1683, 1693, 1703, 1713, 1723, ++ 1733, 1740, 1747, 1754, 1763, 1772, 1781, 1790, 1797, 1807, ++ 1827, 1834, 1852, 1865, 1878, 1891, 1900, 1909, 1918, 1927, ++ 1937, 1947, 1958, 1967, 1976, 1985, 1994, 2003, 2012, 2021, ++ 2034, 2047, 2056, 2063, 2072, 2081, 2090, 2099, 2108, 2116, ++ 2129, 2137, 2182, 2189, 2204, 2214, 2224, 2231, 2238, 2245, ++ 2254, 2262, 2276, 2297, 2318, 2330, 2342, 2354, 2363, 2384, ++ 2394, 2403, 2411, 2419, 2432, 2445, 2460, 2475, 2484, 2493, ++ 2502, 2508, 2517, 2526, 2536, 2546, 2556, 2565, 2575, 2584, ++ 2597, 2610, 2622, 2636, 2648, 2662, 2671, 2683, 2693, 2700, ++ 2707, 2716, 2725, 2735, 2745, 2755, 2765, 2772, 2779, 2788, ++ 2797, 2807, 2817, 2827, 2834, 2841, 2848, 2856, 2866, 2876, ++ 2886, 2896, 2906, 2916, 2962, 2972, 2980, 2988, 3003, 3012, ++ 3017, 3018, 3019, 3019, 3019, 3020, 3020, 3020, 3021, 3021, ++ 3023, 3033, 3042, 3049, 3056, 3063, 3070, 3077, 3084, 3089, ++ 3090, 3091, 3091, 3091, 3092, 3092, 3092, 3093, 3094, 3094, ++ 3095, 3095, 3096, 3096, 3097, 3098, 3099, 3100, 3101, 3102, ++ 3104, 3113, 3123, 3130, 3137, 3146, 3153, 3160, 3167, 3174, ++ 3183, 3192, 3199, 3206, 3216, 3226, 3236, 3246, 3256, 3266, ++ 3271, 3272, 3273, 3275, 3281, 3286, 3287, 3288, 3290, 3296, ++ 3306, 3313, 3322, 3330, 3335, 3336, 3338, 3338, 3338, 3339, ++ 3339, 3340, 3341, 3342, 3343, 3344, 3346, 3356, 3365, 3372, ++ 3381, 3388, 3397, 3405, 3418, 3426, 3439, 3444, 3445, 3446, ++ 3446, 3447, 3447, 3447, 3448, 3450, 3462, 3474, 3486, 3501, ++ 3514, 3527, 3538, 3543, 3544, 3545, 3545, 3547, 3562 }; #endif @@@ -2023,28 -1132,26 +2027,29 @@@ static const char *const yytname[] "VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES", "VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES", "VAR_RESPONSE_IP_TAG", "VAR_RESPONSE_IP", "VAR_RESPONSE_IP_DATA", "VAR_HARDEN_ALGO_DOWNGRADE", - "VAR_IP_TRANSPARENT", "VAR_DISABLE_DNSSEC_LAME_CHECK", + "VAR_IP_TRANSPARENT", "VAR_IP_DSCP", "VAR_DISABLE_DNSSEC_LAME_CHECK", "VAR_IP_RATELIMIT", "VAR_IP_RATELIMIT_SLABS", "VAR_IP_RATELIMIT_SIZE", "VAR_RATELIMIT", "VAR_RATELIMIT_SLABS", "VAR_RATELIMIT_SIZE", - "VAR_RATELIMIT_FOR_DOMAIN", "VAR_RATELIMIT_BELOW_DOMAIN", - "VAR_IP_RATELIMIT_FACTOR", "VAR_RATELIMIT_FACTOR", - "VAR_SEND_CLIENT_SUBNET", "VAR_CLIENT_SUBNET_ZONE", - "VAR_CLIENT_SUBNET_ALWAYS_FORWARD", "VAR_CLIENT_SUBNET_OPCODE", - "VAR_MAX_CLIENT_SUBNET_IPV4", "VAR_MAX_CLIENT_SUBNET_IPV6", - "VAR_MIN_CLIENT_SUBNET_IPV4", "VAR_MIN_CLIENT_SUBNET_IPV6", - "VAR_MAX_ECS_TREE_SIZE_IPV4", "VAR_MAX_ECS_TREE_SIZE_IPV6", - "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL", - "VAR_PERMIT_SMALL_HOLDDOWN", "VAR_QNAME_MINIMISATION", - "VAR_QNAME_MINIMISATION_STRICT", "VAR_IP_FREEBIND", "VAR_DEFINE_TAG", - "VAR_LOCAL_ZONE_TAG", "VAR_ACCESS_CONTROL_TAG", - "VAR_LOCAL_ZONE_OVERRIDE", "VAR_ACCESS_CONTROL_TAG_ACTION", - "VAR_ACCESS_CONTROL_TAG_DATA", "VAR_VIEW", "VAR_ACCESS_CONTROL_VIEW", - "VAR_VIEW_FIRST", "VAR_SERVE_EXPIRED", "VAR_SERVE_EXPIRED_TTL", + "VAR_OUTBOUND_MSG_RETRY", "VAR_RATELIMIT_FOR_DOMAIN", + "VAR_RATELIMIT_BELOW_DOMAIN", "VAR_IP_RATELIMIT_FACTOR", + "VAR_RATELIMIT_FACTOR", "VAR_SEND_CLIENT_SUBNET", + "VAR_CLIENT_SUBNET_ZONE", "VAR_CLIENT_SUBNET_ALWAYS_FORWARD", + "VAR_CLIENT_SUBNET_OPCODE", "VAR_MAX_CLIENT_SUBNET_IPV4", + "VAR_MAX_CLIENT_SUBNET_IPV6", "VAR_MIN_CLIENT_SUBNET_IPV4", + "VAR_MIN_CLIENT_SUBNET_IPV6", "VAR_MAX_ECS_TREE_SIZE_IPV4", + "VAR_MAX_ECS_TREE_SIZE_IPV6", "VAR_CAPS_WHITELIST", + "VAR_CACHE_MAX_NEGATIVE_TTL", "VAR_PERMIT_SMALL_HOLDDOWN", + "VAR_QNAME_MINIMISATION", "VAR_QNAME_MINIMISATION_STRICT", + "VAR_IP_FREEBIND", "VAR_DEFINE_TAG", "VAR_LOCAL_ZONE_TAG", + "VAR_ACCESS_CONTROL_TAG", "VAR_LOCAL_ZONE_OVERRIDE", + "VAR_ACCESS_CONTROL_TAG_ACTION", "VAR_ACCESS_CONTROL_TAG_DATA", + "VAR_VIEW", "VAR_ACCESS_CONTROL_VIEW", "VAR_VIEW_FIRST", + "VAR_SERVE_EXPIRED", "VAR_SERVE_EXPIRED_TTL", - "VAR_SERVE_EXPIRED_TTL_RESET", "VAR_FAKE_DSA", "VAR_FAKE_SHA1", - "VAR_LOG_IDENTITY", "VAR_HIDE_TRUSTANCHOR", "VAR_TRUST_ANCHOR_SIGNALING", + "VAR_SERVE_EXPIRED_TTL_RESET", "VAR_SERVE_EXPIRED_REPLY_TTL", + "VAR_SERVE_EXPIRED_CLIENT_TIMEOUT", "VAR_SERVE_ORIGINAL_TTL", + "VAR_FAKE_DSA", "VAR_FAKE_SHA1", "VAR_LOG_IDENTITY", + "VAR_HIDE_TRUSTANCHOR", "VAR_HIDE_HTTP_USER_AGENT", + "VAR_HTTP_USER_AGENT", "VAR_TRUST_ANCHOR_SIGNALING", "VAR_AGGRESSIVE_NSEC", "VAR_USE_SYSTEMD", "VAR_SHM_ENABLE", "VAR_SHM_KEY", "VAR_ROOT_KEY_SENTINEL", "VAR_DNSCRYPT", "VAR_DNSCRYPT_ENABLE", "VAR_DNSCRYPT_PORT", "VAR_DNSCRYPT_PROVIDER", @@@ -2165,21 -1253,17 +2170,21 @@@ "server_ratelimit_size", "server_ip_ratelimit_slabs", "server_ratelimit_slabs", "server_ratelimit_for_domain", "server_ratelimit_below_domain", "server_ip_ratelimit_factor", - "server_ratelimit_factor", "server_low_rtt", "server_fast_server_num", - "server_fast_server_permil", "server_qname_minimisation", - "server_qname_minimisation_strict", "server_pad_responses", - "server_pad_responses_block_size", "server_pad_queries", - "server_pad_queries_block_size", "server_ipsecmod_enabled", - "server_ipsecmod_ignore_bogus", "server_ipsecmod_hook", - "server_ipsecmod_max_ttl", "server_ipsecmod_whitelist", - "server_ipsecmod_strict", "server_edns_client_string", - "server_edns_client_string_opcode", "stub_name", "stub_host", - "stub_addr", "stub_first", "stub_no_cache", "stub_ssl_upstream", - "stub_tcp_upstream", "stub_prime", "forward_name", "forward_host", - "forward_addr", "forward_first", "forward_no_cache", + "server_ratelimit_factor", "server_outbound_msg_retry", "server_low_rtt", + "server_fast_server_num", "server_fast_server_permil", + "server_qname_minimisation", "server_qname_minimisation_strict", ++ "server_pad_responses", "server_pad_responses_block_size", ++ "server_pad_queries", "server_pad_queries_block_size", + "server_ipsecmod_enabled", "server_ipsecmod_ignore_bogus", + "server_ipsecmod_hook", "server_ipsecmod_max_ttl", - "server_ipsecmod_whitelist", "server_ipsecmod_strict", "stub_name", - "stub_host", "stub_addr", "stub_first", "stub_no_cache", - "stub_ssl_upstream", "stub_prime", "forward_name", "forward_host", - "forward_addr", "forward_first", "forward_no_cache", - "forward_ssl_upstream", "auth_name", "auth_zonefile", "auth_master", - "auth_url", "auth_allow_notify", "auth_for_downstream", ++ "server_ipsecmod_whitelist", "server_ipsecmod_strict", ++ "server_edns_client_string", "server_edns_client_string_opcode", ++ "stub_name", "stub_host", "stub_addr", "stub_first", "stub_no_cache", ++ "stub_ssl_upstream", "stub_tcp_upstream", "stub_prime", "forward_name", ++ "forward_host", "forward_addr", "forward_first", "forward_no_cache", + "forward_ssl_upstream", "forward_tcp_upstream", "auth_name", + "auth_zonefile", "auth_master", "auth_url", "auth_allow_notify", + "auth_zonemd_check", "auth_zonemd_reject_absence", "auth_for_downstream", "auth_for_upstream", "auth_fallback_enabled", "view_name", "view_local_zone", "view_response_ip", "view_response_ip_data", "view_local_data", "view_local_data_ptr", "view_first", "rcstart", @@@ -2252,140 -1325,118 +2257,142 @@@ static const yytype_int16 yytoknum[] 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522 + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574 ++ 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, ++ 575 }; -# endif +#endif - #define YYPACT_NINF (-304) -#define YYPACT_NINF -155 ++#define YYPACT_NINF (-305) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-155))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -1 +#define YYTABLE_NINF (-1) -#define yytable_value_is_error(Yytable_value) \ +#define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - -304, 0, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, 300, -43, -38, -42, -44, -28, -29, -151, - -109, -303, -196, -194, -295, 3, 4, 27, 28, 31, - -155, 213, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -12, 103, 99, 167, 39, 214, - 143, -80, 52, -154, 22, 23, 24, 28, 29, 30, - 78, 79, 80, 84, 88, 89, 114, 115, 116, 118, - 129, 130, 131, 133, 134, 135, 137, 181, 183, 197, - 198, 201, 202, 204, 205, 206, 207, 215, 216, 217, - 218, 219, 221, 222, 223, 224, 226, 246, 248, 249, - 250, 251, 252, 254, 255, 256, 257, 258, 259, 260, - 273, 279, 280, 281, 282, 283, 298, 307, 308, 309, - 310, 311, 312, 314, 315, 316, 317, 318, 319, 320, - 321, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 348, 349, 350, 351, 353, 355, - 356, 357, 358, 359, 360, 361, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 440, 441, 442, 443, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, 444, 445, 446, 448, 449, - 450, 451, -155, -155, -155, -155, -155, -155, -155, -155, - 452, 453, 454, 455, 456, 457, -155, -155, -155, -155, - -155, -155, -155, 458, 459, 460, 461, 462, 463, 464, - -155, -155, -155, -155, -155, -155, -155, -155, 465, 466, - 467, 468, 469, 470, 471, 472, -155, -155, -155, -155, - -155, -155, -155, -155, -155, 473, 474, 475, 476, 477, - 478, 479, 480, -155, -155, -155, -155, -155, -155, -155, - -155, -155, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, 493, -155, -155, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, 504, 505, 506, 507, 508, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, 509, 510, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, 511, 512, - 513, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, 514, 515, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, 516, 517, 518, 519, 520, 521, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, 522, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, 523, -155, -155, 524, - 525, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, 526, 527, 528, -155, -155, - -155, -155, -155, -155, -155, -155 ++ -305, 0, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, 301, -43, -38, -42, -44, -28, -29, -151, ++ -109, -304, -197, -195, -296, 3, 4, 27, 28, 31, + 32, 33, 34, 35, 37, 38, 39, 40, 41, 53, + 54, 55, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 87, 88, 89, 91, + 92, 95, 97, 98, 100, 101, 103, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 178, 179, 180, 181, ++ 171, 172, 173, 174, 175, 176, 177, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 218, 219, 220, 221, 222, - 224, 230, 231, 232, 233, 234, 236, 237, 239, 245, - 246, 247, 248, 249, 250, 252, 253, 254, 255, 256, - 257, 258, 260, 261, 262, 263, 266, 267, 274, 275, ++ 212, 213, 214, 215, 216, 217, 219, 220, 221, 222, ++ 223, 225, 231, 232, 233, 234, 235, 237, 238, 240, ++ 246, 247, 248, 249, 250, 251, 253, 254, 255, 256, ++ 257, 258, 259, 261, 262, 263, 264, 267, 268, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 293, 294, 295, 297, - 298, 299, 301, 335, 336, 337, 338, 342, 343, 344, - 386, 387, 388, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, 389, 390, 391, 392, 393, 394, 400, 404, - -304, -304, -304, -304, -304, -304, -304, -304, -304, 405, - 432, 433, 434, 436, 437, 445, -304, -304, -304, -304, - -304, -304, -304, -304, 458, 459, 460, 461, 462, 463, - 464, -304, -304, -304, -304, -304, -304, -304, -304, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - 475, 476, 477, 517, 519, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, 538, 539, 540, 541, - 542, 543, 544, 545, -304, -304, -304, -304, -304, -304, - -304, -304, -304, 546, 547, 548, 559, 560, 561, 562, - 563, 564, 565, 567, 568, 569, 570, 571, 572, 573, - 576, 579, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, 582, -304, -304, 583, -304, -304, 592, 593, - 594, 596, 597, 598, 599, 600, 601, 602, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, 603, - 608, 609, 610, 611, 612, -304, -304, -304, -304, -304, - -304, -304, 613, 614, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, 615, 616, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, 617, 618, 619, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - 620, 621, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, 622, 623, 624, 625, 626, 627, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, 628, -304, -304, -304, -304, -304, -304, -304, -304, - -304, 629, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, 630, -304, -304, 631, 632, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, 633, 634, - 635, -304, -304, -304, -304, -304, -304, -304, -304, -304 ++ 286, 287, 288, 289, 290, 291, 292, 294, 295, 296, ++ 298, 299, 300, 302, 336, 337, 338, 339, 343, 344, ++ 345, 387, 388, 389, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, 390, 391, 392, 393, 394, 395, ++ 401, 405, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, 406, 433, 434, 435, 437, 438, 446, -305, -305, ++ -305, -305, -305, -305, -305, -305, 459, 460, 461, 462, ++ 463, 464, 465, -305, -305, -305, -305, -305, -305, -305, ++ -305, 466, 467, 468, 469, 470, 471, 472, 473, 474, ++ 475, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, 476, 477, 478, 519, 521, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, 540, 541, ++ 542, 543, 544, 545, 546, 547, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, 548, 549, 550, 561, 562, ++ 563, 564, 565, 566, 567, 569, 570, 571, 572, 573, ++ 574, 575, 578, 581, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, 584, -305, -305, 585, -305, -305, ++ 594, 595, 596, 598, 599, 600, 601, 602, 603, 604, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, 605, 610, 611, 612, 613, 614, -305, -305, -305, ++ -305, -305, -305, -305, 615, 616, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, 617, ++ 618, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, 619, ++ 620, 621, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, 622, 623, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, 624, 625, 626, 627, 628, 629, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, 630, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, 631, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, 632, -305, -305, 633, 634, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, 635, 636, 637, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_uint16 yydefact[] = +static const yytype_int16 yydefact[] = { - 2, 0, 1, 18, 19, 240, 251, 547, 607, 566, - 261, 621, 644, 271, 660, 289, 612, 3, 17, 21, - 242, 253, 263, 273, 291, 549, 568, 609, 614, 623, - 646, 662, 4, 5, 6, 10, 14, 15, 8, 9, - 2, 0, 1, 14, 207, 217, 460, 506, 479, 226, - 515, 538, 236, 3, 16, 209, 219, 228, 238, 462, - 481, 508, 517, 540, 4, 5, 6, 10, 13, 8, - 9, 7, 11, 12, 0, 0, 0, 0, 0, 0, ++ 2, 0, 1, 18, 19, 241, 252, 549, 609, 568, ++ 262, 623, 646, 272, 662, 290, 614, 3, 17, 21, ++ 243, 254, 264, 274, 292, 551, 570, 611, 616, 625, ++ 648, 664, 4, 5, 6, 10, 14, 15, 8, 9, + 7, 16, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@@ -2404,384 -1455,316 +2411,385 @@@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 17, 18, 80, 83, 92, - 178, 179, 19, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 31, 71, 20, 84, 85, 42, 64, - 79, 21, 22, 24, 25, 23, 26, 27, 28, 29, - 30, 115, 190, 116, 118, 119, 120, 192, 197, 193, - 204, 205, 206, 174, 81, 70, 96, 113, 114, 202, - 199, 117, 32, 33, 34, 35, 36, 72, 86, 87, - 102, 58, 68, 59, 182, 183, 97, 52, 53, 181, - 54, 55, 106, 110, 124, 133, 159, 203, 107, 65, - 37, 38, 39, 94, 125, 126, 127, 40, 41, 43, - 44, 46, 47, 45, 131, 48, 49, 50, 56, 75, - 111, 89, 132, 82, 155, 90, 91, 108, 109, 200, - 95, 51, 73, 76, 57, 60, 98, 99, 74, 156, - 100, 61, 62, 63, 191, 112, 169, 170, 171, 172, - 180, 101, 69, 103, 104, 105, 157, 66, 67, 88, - 77, 78, 93, 121, 122, 201, 123, 128, 129, 130, - 160, 161, 163, 165, 166, 164, 167, 175, 134, 135, - 138, 139, 136, 137, 140, 141, 143, 142, 144, 194, - 196, 195, 158, 168, 184, 186, 185, 187, 188, 189, - 162, 173, 176, 177, 198, 0, 0, 0, 0, 0, - 0, 0, 208, 210, 211, 212, 214, 215, 216, 213, - 0, 0, 0, 0, 0, 0, 218, 220, 221, 222, - 223, 224, 225, 0, 0, 0, 0, 0, 0, 0, - 227, 229, 230, 233, 234, 231, 235, 232, 0, 0, - 0, 0, 0, 0, 0, 0, 237, 239, 240, 241, - 242, 246, 243, 244, 245, 0, 0, 0, 0, 0, - 0, 0, 0, 461, 463, 465, 464, 470, 466, 467, - 468, 469, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 480, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 0, 507, 509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 516, 518, 519, 520, 522, 523, 521, 524, 525, 526, - 527, 0, 0, 0, 0, 0, 539, 541, 542, 543, - 544, 545, 248, 247, 254, 267, 265, 273, 274, 277, - 275, 276, 278, 279, 280, 281, 282, 304, 305, 306, - 307, 308, 332, 333, 334, 339, 340, 270, 341, 342, - 345, 343, 344, 347, 348, 349, 363, 319, 320, 322, - 323, 350, 366, 313, 315, 367, 373, 374, 375, 271, - 331, 389, 390, 314, 384, 297, 266, 309, 364, 370, - 351, 0, 0, 393, 272, 249, 296, 355, 250, 268, - 269, 310, 311, 391, 353, 357, 358, 251, 394, 335, - 362, 298, 318, 368, 369, 372, 383, 312, 387, 385, - 386, 324, 330, 359, 360, 325, 326, 352, 377, 299, - 300, 303, 283, 285, 286, 287, 288, 289, 395, 396, - 398, 336, 337, 338, 346, 399, 400, 401, 0, 0, - 0, 354, 327, 511, 410, 414, 412, 411, 415, 413, - 420, 0, 0, 418, 419, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 356, 371, 388, 424, 425, - 328, 402, 0, 0, 0, 0, 0, 0, 378, 379, - 380, 381, 382, 512, 321, 316, 376, 295, 252, 253, - 317, 426, 428, 427, 429, 430, 431, 284, 291, 421, - 423, 422, 290, 0, 302, 361, 397, 301, 329, 292, - 293, 294, 432, 433, 434, 438, 437, 435, 436, 439, - 440, 441, 442, 444, 443, 453, 0, 457, 458, 0, - 0, 459, 445, 451, 446, 447, 448, 450, 452, 449, - 471, 473, 472, 475, 476, 477, 478, 474, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 510, 528, 529, 530, 533, 531, 532, 534, 535, 536, - 537, 546, 547, 548, 549, 550, 365, 392, 409, 513, - 514, 416, 417, 403, 404, 0, 0, 0, 408, 551, - 454, 455, 456, 407, 405, 406 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 20, 22, 23, 88, 91, 100, 203, - 204, 24, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 37, 79, 25, 92, 93, 48, 72, 87, - 26, 27, 30, 31, 28, 29, 32, 33, 34, 237, - 238, 239, 35, 36, 124, 215, 125, 127, 128, 129, - 217, 222, 218, 229, 230, 231, 232, 130, 131, 132, - 133, 134, 135, 136, 199, 89, 78, 104, 122, 123, - 227, 224, 126, 38, 39, 40, 41, 42, 80, 94, - 95, 111, 66, 76, 67, 207, 208, 105, 58, 59, - 206, 62, 60, 61, 63, 235, 115, 119, 140, 150, - 177, 153, 228, 116, 73, 43, 44, 45, 102, 141, - 142, 143, 144, 46, 47, 49, 50, 52, 53, 51, - 148, 154, 54, 55, 56, 64, 83, 120, 97, 149, - 90, 173, 98, 99, 117, 118, 225, 103, 57, 81, - 84, 65, 68, 106, 107, 108, 82, 174, 109, 69, - 70, 71, 216, 121, 191, 192, 193, 194, 195, 196, - 197, 205, 110, 77, 236, 112, 113, 114, 175, 74, - 75, 96, 85, 86, 101, 137, 138, 226, 139, 145, - 146, 147, 178, 179, 181, 183, 184, 182, 185, 200, - 151, 152, 157, 158, 155, 156, 159, 160, 162, 161, - 219, 221, 220, 176, 186, 187, 188, 189, 190, 209, - 211, 210, 212, 213, 214, 233, 234, 180, 198, 201, - 202, 223, 0, 0, 0, 0, 0, 0, 0, 0, - 241, 243, 244, 245, 247, 248, 249, 250, 246, 0, - 0, 0, 0, 0, 0, 0, 252, 254, 255, 256, - 257, 258, 259, 260, 0, 0, 0, 0, 0, 0, - 0, 262, 264, 265, 268, 269, 266, 270, 267, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, - 274, 275, 276, 277, 281, 282, 283, 278, 279, 280, - 0, 0, 0, 0, 0, 294, 298, 299, 300, 301, - 290, 292, 293, 295, 296, 297, 0, 0, 0, 0, - 0, 0, 0, 0, 548, 550, 552, 551, 557, 553, - 554, 555, 556, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 20, 22, 23, 88, 91, 100, ++ 204, 205, 24, 164, 165, 166, 167, 168, 169, 170, ++ 171, 172, 173, 37, 79, 25, 92, 93, 48, 72, ++ 87, 26, 27, 30, 31, 28, 29, 32, 33, 34, ++ 238, 239, 240, 35, 36, 124, 216, 125, 127, 128, ++ 129, 218, 223, 219, 230, 231, 232, 233, 130, 131, ++ 132, 133, 134, 135, 136, 200, 89, 78, 104, 122, ++ 123, 228, 225, 126, 38, 39, 40, 41, 42, 80, ++ 94, 95, 111, 66, 76, 67, 208, 209, 105, 58, ++ 59, 207, 62, 60, 61, 63, 236, 115, 119, 140, ++ 150, 178, 153, 229, 116, 73, 43, 44, 45, 102, ++ 141, 142, 143, 144, 46, 47, 49, 50, 52, 53, ++ 51, 148, 154, 54, 55, 56, 64, 83, 120, 97, ++ 149, 90, 174, 98, 99, 117, 118, 226, 103, 57, ++ 81, 84, 65, 68, 106, 107, 108, 82, 175, 109, ++ 69, 70, 71, 217, 121, 192, 193, 194, 195, 196, ++ 197, 198, 206, 110, 77, 237, 112, 113, 114, 176, ++ 74, 75, 96, 85, 86, 101, 137, 138, 227, 139, ++ 145, 146, 147, 179, 180, 182, 184, 185, 183, 186, ++ 201, 151, 152, 157, 158, 155, 156, 159, 160, 162, ++ 161, 163, 220, 222, 221, 177, 187, 188, 189, 190, ++ 191, 210, 212, 211, 213, 214, 215, 234, 235, 181, ++ 199, 202, 203, 224, 0, 0, 0, 0, 0, 0, ++ 0, 0, 242, 244, 245, 246, 248, 249, 250, 251, ++ 247, 0, 0, 0, 0, 0, 0, 0, 253, 255, ++ 256, 257, 258, 259, 260, 261, 0, 0, 0, 0, ++ 0, 0, 0, 263, 265, 266, 269, 270, 267, 271, ++ 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 273, 275, 276, 277, 278, 282, 283, 284, 279, ++ 280, 281, 0, 0, 0, 0, 0, 295, 299, 300, ++ 301, 302, 291, 293, 294, 296, 297, 298, 0, 0, ++ 0, 0, 0, 0, 0, 0, 550, 552, 554, 553, ++ 559, 555, 556, 557, 558, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 567, 569, 571, 570, 572, 573, 574, 575, ++ 0, 0, 0, 0, 569, 571, 573, 572, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, - 586, 587, 0, 608, 610, 0, 613, 615, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 622, 624, - 625, 626, 628, 629, 627, 630, 631, 632, 633, 0, - 0, 0, 0, 0, 0, 645, 647, 648, 649, 650, - 651, 652, 0, 0, 661, 663, 664, 303, 302, 309, - 322, 320, 332, 328, 329, 333, 330, 331, 334, 335, - 336, 340, 341, 371, 372, 373, 374, 375, 403, 404, - 405, 411, 412, 325, 413, 414, 417, 415, 416, 420, - 421, 422, 436, 386, 387, 390, 391, 423, 439, 380, - 382, 440, 447, 448, 449, 326, 402, 467, 468, 381, - 461, 364, 321, 376, 437, 444, 424, 0, 0, 471, - 327, 304, 363, 428, 305, 323, 324, 377, 378, 469, - 426, 430, 431, 338, 337, 306, 472, 406, 435, 365, - 385, 441, 442, 443, 446, 460, 379, 465, 463, 464, - 394, 401, 432, 433, 395, 396, 425, 451, 366, 367, - 370, 342, 344, 339, 345, 346, 347, 348, 355, 356, - 357, 358, 359, 360, 361, 473, 474, 476, 407, 408, - 409, 410, 418, 419, 477, 478, 479, 0, 0, 0, - 427, 397, 399, 617, 488, 492, 490, 489, 493, 491, - 0, 0, 496, 497, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 429, 445, 466, 501, 502, 398, - 480, 0, 0, 0, 0, 0, 0, 452, 453, 454, - 455, 456, 457, 458, 459, 618, 388, 389, 392, 383, - 450, 362, 307, 308, 384, 503, 504, 505, 506, 507, - 509, 508, 510, 511, 512, 343, 350, 498, 500, 499, - 349, 0, 369, 434, 475, 368, 400, 351, 352, 354, - 353, 0, 514, 393, 462, 515, 516, 517, 522, 520, - 521, 518, 519, 523, 524, 525, 526, 528, 529, 527, - 540, 0, 544, 545, 0, 0, 546, 530, 538, 531, - 532, 533, 537, 539, 534, 535, 536, 284, 285, 286, - 287, 288, 558, 560, 559, 562, 563, 564, 565, 561, - 588, 590, 591, 592, 593, 594, 595, 596, 597, 598, - 589, 599, 600, 601, 602, 603, 604, 605, 606, 611, - 616, 634, 635, 636, 639, 637, 638, 640, 641, 642, - 643, 653, 654, 655, 656, 657, 658, 665, 666, 438, - 470, 487, 619, 620, 494, 495, 481, 482, 0, 0, - 0, 486, 659, 513, 541, 542, 543, 485, 483, 484 ++ 586, 587, 588, 589, 0, 610, 612, 0, 615, 617, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 624, 626, 627, 628, 630, 631, 629, 632, 633, 634, ++ 635, 0, 0, 0, 0, 0, 0, 647, 649, 650, ++ 651, 652, 653, 654, 0, 0, 663, 665, 666, 304, ++ 303, 310, 323, 321, 333, 329, 330, 334, 331, 332, ++ 335, 336, 337, 341, 342, 372, 373, 374, 375, 376, ++ 404, 405, 406, 412, 413, 326, 414, 415, 418, 416, ++ 417, 421, 422, 423, 437, 387, 388, 391, 392, 424, ++ 440, 381, 383, 441, 448, 449, 450, 327, 403, 468, ++ 469, 382, 462, 365, 322, 377, 438, 445, 425, 0, ++ 0, 472, 328, 305, 364, 429, 306, 324, 325, 378, ++ 379, 470, 427, 431, 432, 339, 338, 307, 473, 407, ++ 436, 366, 386, 442, 443, 444, 447, 461, 380, 466, ++ 464, 465, 395, 402, 433, 434, 396, 397, 426, 452, ++ 367, 368, 371, 343, 345, 340, 346, 347, 348, 349, ++ 356, 357, 358, 359, 360, 361, 362, 474, 475, 477, ++ 408, 409, 410, 411, 419, 420, 478, 479, 480, 0, ++ 0, 0, 428, 398, 400, 619, 489, 493, 491, 490, ++ 494, 492, 499, 0, 0, 497, 498, 311, 312, 313, ++ 314, 315, 316, 317, 318, 319, 320, 430, 446, 467, ++ 503, 504, 399, 481, 0, 0, 0, 0, 0, 0, ++ 453, 454, 455, 456, 457, 458, 459, 460, 620, 389, ++ 390, 393, 384, 451, 363, 308, 309, 385, 505, 506, ++ 507, 508, 509, 511, 510, 512, 513, 514, 344, 351, ++ 500, 502, 501, 350, 0, 370, 435, 476, 369, 401, ++ 352, 353, 355, 354, 0, 516, 394, 463, 517, 518, ++ 519, 524, 522, 523, 520, 521, 525, 526, 527, 528, ++ 530, 531, 529, 542, 0, 546, 547, 0, 0, 548, ++ 532, 540, 533, 534, 535, 539, 541, 536, 537, 538, ++ 285, 286, 287, 288, 289, 560, 562, 561, 564, 565, ++ 566, 567, 563, 590, 592, 593, 594, 595, 596, 597, ++ 598, 599, 600, 591, 601, 602, 603, 604, 605, 606, ++ 607, 608, 613, 618, 636, 637, 638, 641, 639, 640, ++ 642, 643, 644, 645, 655, 656, 657, 658, 659, 660, ++ 667, 668, 439, 471, 488, 621, 622, 495, 496, 482, ++ 483, 0, 0, 0, 487, 661, 515, 543, 544, 545, ++ 486, 484, 485 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, 273, 636, 637, 638, 639, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304 - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155 ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, 274, 638, 639, 640, ++ 641, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, ++ -305, -305, -305, -305, -305, -305 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 17, 18, 19, 32, 263, 20, 33, 490, - 21, 34, 506, 22, 35, 521, 23, 36, 539, 555, - 556, 557, 558, 559, 24, 37, 560, 264, 265, 266, - -1, 1, 13, 14, 24, 224, 15, 25, 422, 16, - 26, 436, 17, 27, 450, 18, 28, 466, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, -- 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -- 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, -- 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -- 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, -- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -- 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -- 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, -- 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -- 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, -- 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, -- 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, -- 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -- 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -- 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 491, 492, 493, 494, 495, 496, 497, 498, 507, 508, - 509, 510, 511, 512, 513, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 522, 523, 524, 525, 526, - 527, 528, 25, 38, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 26, 39, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 27, 40, 623, 624, 28, - 41, 626, 627, 477, 478, 479, 480, 29, 42, 638, - 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, - 30, 43, 655, 656, 657, 658, 659, 660, 661, 481, - 31, 44, 664, 665, 666 - 407, 408, 409, 423, 424, 425, 426, 427, 428, 429, - 437, 438, 439, 440, 441, 442, 467, 468, 469, 470, - 471, 472, 473, 474, 451, 452, 453, 454, 455, 456, - 457, 19, 29, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 20, 30, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 21, 31, 518, - 519, 410, 411, 412, 413, 22, 32, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 23, 33, - 546, 547, 548, 549, 550, 551, 414 ++ -1, 1, 17, 18, 19, 32, 264, 20, 33, 492, ++ 21, 34, 508, 22, 35, 523, 23, 36, 541, 557, ++ 558, 559, 560, 561, 24, 37, 562, 265, 266, 267, ++ 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, ++ 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, ++ 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, ++ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, ++ 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, ++ 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, ++ 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, ++ 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, ++ 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, ++ 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, ++ 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, ++ 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, ++ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, ++ 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, ++ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, ++ 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, ++ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, ++ 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, ++ 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, ++ 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, ++ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, ++ 478, 493, 494, 495, 496, 497, 498, 499, 500, 509, ++ 510, 511, 512, 513, 514, 515, 542, 543, 544, 545, ++ 546, 547, 548, 549, 550, 551, 524, 525, 526, 527, ++ 528, 529, 530, 25, 38, 576, 577, 578, 579, 580, ++ 581, 582, 583, 584, 26, 39, 604, 605, 606, 607, ++ 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, ++ 618, 619, 620, 621, 622, 623, 27, 40, 625, 626, ++ 28, 41, 628, 629, 479, 480, 481, 482, 29, 42, ++ 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, ++ 650, 30, 43, 657, 658, 659, 660, 661, 662, 663, ++ 483, 31, 44, 666, 667, 668 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_uint16 yytable[] = +static const yytype_int16 yytable[] = { - 2, 529, 482, 514, 483, 484, 622, 499, 662, 663, - 625, 3, 4, 667, 668, 500, 501, 529, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 669, 670, 515, - 516, 671, 672, 673, 674, 675, 5, 676, 677, 678, - 679, 680, 6, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 681, 682, 683, 517, 485, 566, 567, - 568, 569, 570, 571, 572, 573, 649, 650, 651, 652, - 653, 654, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, 696, 697, 7, 698, 699, 700, - 486, 701, 702, 487, 502, 703, 503, 704, 705, 504, - 706, 707, 488, 708, 8, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, 738, 739, 740, 518, 519, 741, - 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, - 752, 753, 754, 755, 756, 757, 758, 759, 9, 760, - 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, - 771, 772, 773, 774, 775, 776, 777, 520, 778, 779, - 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, - 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, - 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, - 810, 811, 812, 813, 814, 815, 816, 10, 817, 818, - 819, 820, 821, 530, 822, 531, 532, 533, 534, 535, - 823, 824, 825, 826, 827, 536, 828, 829, 11, 830, - 489, 531, 532, 533, 505, 831, 832, 833, 834, 835, - 836, 536, 837, 838, 839, 840, 841, 842, 843, 12, - 844, 845, 846, 847, 537, 538, 848, 849, 13, 550, - 551, 552, 553, 554, 850, 851, 852, 853, 854, 855, - 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, - 866, 867, 14, 868, 869, 870, 15, 871, 872, 873, - 561, 874, 16, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 875, 876, 877, 878, 77, - 78, 79, 879, 880, 881, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 882, 883, 884, 885, - 886, 887, 888, 889, 890, 121, 122, 123, 124, 125, - 891, 126, 127, 128, 892, 893, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 894, 895, 896, 155, 897, 898, 156, 157, - 158, 159, 160, 161, 162, 899, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 900, 901, - 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, - 912, 913, 914, 915, 916, 917, 918, 919, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 920, 214, 921, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 922, 923, - 924, 925, 926, 927, 928, 929, 930, 931, 932, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 933, - 934, 935, 936, 937, 938, 939, 243, 940, 941, 942, - 943, 944, 945, 946, 244, 245, 947, 246, 247, 948, - 248, 249, 949, 950, 250, 251, 252, 253, 254, 255, - 256, 257, 951, 952, 953, 258, 954, 955, 956, 957, - 958, 959, 960, 961, 259, 260, 261, 262, 962, 963, - 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, - 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, - 984, 985, 986, 987, 988, 989, 0, 0, 0, 0, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 517, 552, 553, 554, 65, 66, 67, 555, 556, - 557, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 458, 541, 542, 543, 544, 545, 558, 559, - 560, 109, 110, 111, 561, 112, 113, 114, 562, 563, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 564, 565, 566, 139, 567, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 568, - 569, 570, 430, 571, 572, 573, 415, 574, 416, 417, - 431, 432, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 575, 189, 576, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 577, 578, 418, - 443, 579, 580, 2, 581, 582, 583, 584, 203, 204, - 205, 206, 207, 208, 3, 585, 586, 587, 588, 589, - 209, 590, 591, 592, 593, 433, 594, 434, 210, 211, - 419, 212, 213, 420, 214, 215, 444, 445, 216, 217, - 218, 219, 220, 221, 222, 223, 595, 4, 596, 597, - 598, 599, 600, 5, 601, 602, 603, 604, 605, 606, - 607, 446, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 459, 608, 460, 461, 462, 463, 464, 609, - 610, 611, 612, 613, 465, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 6, 614, 475, - 476, 477, 478, 479, 480, 481, 482, 615, 616, 617, - 618, 619, 620, 7, 621, 622, 623, 624, 625, 626, - 627, 628, 447, 448, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 435, 652, 653, - 654, 655, 421, 656, 8, 657, 658, 659, 660, 661, - 662, 663, 449, 664, 665, 666, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, - 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 706, 9, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, 10, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, 11, - 738, 739, 740, 741, 742, 743, 744, 12, 745, 746, - 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, - 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, - 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, - 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, - 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, - 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, - 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, - 817, 818, 819, 820, 821, 822, 823, 824, 825 ++ 2, 531, 484, 516, 485, 486, 624, 501, 664, 665, ++ 627, 3, 4, 669, 670, 502, 503, 531, 585, 586, ++ 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, ++ 597, 598, 599, 600, 601, 602, 603, 671, 672, 517, ++ 518, 673, 674, 675, 676, 677, 5, 678, 679, 680, ++ 681, 682, 6, 630, 631, 632, 633, 634, 635, 636, ++ 637, 638, 639, 683, 684, 685, 519, 487, 568, 569, ++ 570, 571, 572, 573, 574, 575, 651, 652, 653, 654, ++ 655, 656, 686, 687, 688, 689, 690, 691, 692, 693, ++ 694, 695, 696, 697, 698, 699, 7, 700, 701, 702, ++ 488, 703, 704, 489, 504, 705, 505, 706, 707, 506, ++ 708, 709, 490, 710, 8, 711, 712, 713, 714, 715, ++ 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, ++ 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, ++ 736, 737, 738, 739, 740, 741, 742, 520, 521, 743, ++ 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, ++ 754, 755, 756, 757, 758, 759, 760, 761, 9, 762, ++ 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, ++ 773, 774, 775, 776, 777, 778, 779, 780, 522, 781, ++ 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, ++ 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, ++ 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, ++ 812, 813, 814, 815, 816, 817, 818, 819, 10, 820, ++ 821, 822, 823, 824, 532, 825, 533, 534, 535, 536, ++ 537, 826, 827, 828, 829, 830, 538, 831, 832, 11, ++ 833, 491, 533, 534, 535, 507, 834, 835, 836, 837, ++ 838, 839, 538, 840, 841, 842, 843, 844, 845, 846, ++ 12, 847, 848, 849, 850, 539, 540, 851, 852, 13, ++ 552, 553, 554, 555, 556, 853, 854, 855, 856, 857, ++ 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, ++ 868, 869, 870, 14, 871, 872, 873, 15, 874, 875, ++ 876, 563, 877, 16, 45, 46, 47, 48, 49, 50, ++ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ++ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, ++ 71, 72, 73, 74, 75, 76, 878, 879, 880, 881, ++ 77, 78, 79, 882, 883, 884, 80, 81, 82, 83, ++ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, ++ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, ++ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, ++ 114, 115, 116, 117, 118, 119, 120, 885, 886, 887, ++ 888, 889, 890, 891, 892, 893, 121, 122, 123, 124, ++ 125, 894, 126, 127, 128, 895, 896, 129, 130, 131, ++ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, ++ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, ++ 152, 153, 154, 897, 898, 899, 155, 900, 901, 156, ++ 157, 158, 159, 160, 161, 162, 902, 163, 164, 165, ++ 166, 167, 168, 169, 170, 171, 172, 173, 174, 903, ++ 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, ++ 914, 915, 916, 917, 918, 919, 920, 921, 922, 175, ++ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, ++ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, ++ 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, ++ 206, 207, 208, 209, 210, 211, 212, 213, 214, 923, ++ 215, 924, 216, 217, 218, 219, 220, 221, 222, 223, ++ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, ++ 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, ++ 935, 234, 235, 236, 237, 238, 239, 240, 241, 242, ++ 243, 936, 937, 938, 939, 940, 941, 942, 244, 943, ++ 944, 945, 946, 947, 948, 949, 245, 246, 950, 247, ++ 248, 951, 249, 250, 952, 953, 251, 252, 253, 254, ++ 255, 256, 257, 258, 954, 955, 956, 259, 957, 958, ++ 959, 960, 961, 962, 963, 964, 260, 261, 262, 263, ++ 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, ++ 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, ++ 985, 986, 987, 988, 989, 990, 991, 992, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 564, 565 ++ 0, 0, 0, 0, 0, 564, 565, 566, 567 }; -static const yytype_uint16 yycheck[] = +static const yytype_int16 yycheck[] = { - 0, 45, 45, 45, 47, 48, 115, 45, 303, 304, - 313, 11, 12, 10, 10, 53, 54, 45, 169, 170, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 111, 10, 10, 10, 47, 48, 49, 10, 10, - 10, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 43, 237, 238, 239, 240, 241, 10, 10, - 10, 103, 104, 105, 10, 107, 108, 109, 10, 10, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 10, 10, 10, 139, 10, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 10, - 10, 10, 43, 10, 10, 10, 43, 10, 45, 46, - 51, 52, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 10, 204, 10, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 10, 10, 106, - 43, 10, 10, 0, 10, 10, 10, 10, 230, 231, - 232, 233, 234, 235, 11, 10, 10, 10, 10, 10, - 242, 10, 10, 10, 10, 136, 10, 138, 250, 251, - 137, 253, 254, 140, 256, 257, 79, 80, 260, 261, - 262, 263, 264, 265, 266, 267, 10, 44, 10, 10, - 10, 10, 10, 50, 10, 10, 10, 10, 10, 10, - 10, 104, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 243, 10, 245, 246, 247, 248, 249, 10, - 10, 10, 10, 10, 255, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 94, 10, 95, - 96, 97, 98, 99, 100, 101, 102, 10, 10, 10, - 10, 10, 10, 110, 10, 10, 10, 10, 10, 10, - 10, 10, 165, 166, 10, 10, 10, 10, 10, 10, ++ 0, 45, 45, 45, 47, 48, 115, 45, 304, 305, ++ 314, 11, 12, 10, 10, 53, 54, 45, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 10, 10, 81, + 82, 10, 10, 10, 10, 10, 46, 10, 10, 10, - 10, 10, 52, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 10, 10, 10, 108, 110, 97, 98, - 99, 100, 101, 102, 103, 104, 270, 271, 272, 273, - 274, 275, 10, 10, 10, 10, 10, 10, 10, 10, ++ 10, 10, 52, 250, 251, 252, 253, 254, 255, 256, ++ 257, 258, 259, 10, 10, 10, 108, 110, 97, 98, ++ 99, 100, 101, 102, 103, 104, 271, 272, 273, 274, ++ 275, 276, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 96, 10, 10, 10, + 143, 10, 10, 146, 142, 10, 144, 10, 10, 147, + 10, 10, 155, 10, 114, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 258, 10, 10, - 10, 10, 259, 10, 151, 10, 10, 10, 10, 10, - 10, 10, 205, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 189, 190, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 168, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 229, 10, 10, - 10, 10, 10, 10, 10, 10, 203, 10, 10, 10, ++ 10, 10, 10, 10, 10, 10, 10, 10, 230, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 219, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 236, - 10, 10, 10, 10, 10, 10, 10, 244, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, ++ 10, 10, 10, 10, 10, 10, 10, 10, 228, 10, ++ 10, 10, 10, 10, 278, 10, 280, 281, 282, 283, ++ 284, 10, 10, 10, 10, 10, 290, 10, 10, 249, ++ 10, 294, 280, 281, 282, 293, 10, 10, 10, 10, ++ 10, 10, 290, 10, 10, 10, 10, 10, 10, 10, ++ 270, 10, 10, 10, 10, 319, 320, 10, 10, 279, ++ 308, 309, 310, 311, 312, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 227, 10, 10, - 10, 10, 10, 277, 10, 279, 280, 281, 282, 283, - 10, 10, 10, 10, 10, 289, 10, 10, 248, 10, - 293, 279, 280, 281, 292, 10, 10, 10, 10, 10, - 10, 289, 10, 10, 10, 10, 10, 10, 10, 269, - 10, 10, 10, 10, 318, 319, 10, 10, 278, 307, - 308, 309, 310, 311, 10, 10, 10, 10, 10, 10, ++ 10, 10, 10, 303, 10, 10, 10, 307, 10, 10, ++ 10, 37, 10, 313, 13, 14, 15, 16, 17, 18, ++ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, ++ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, ++ 39, 40, 41, 42, 43, 44, 10, 10, 10, 10, ++ 49, 50, 51, 10, 10, 10, 55, 56, 57, 58, ++ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, ++ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, ++ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, ++ 89, 90, 91, 92, 93, 94, 95, 10, 10, 10, ++ 10, 10, 10, 10, 10, 10, 105, 106, 107, 108, ++ 109, 10, 111, 112, 113, 10, 10, 116, 117, 118, ++ 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, ++ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, ++ 139, 140, 141, 10, 10, 10, 145, 10, 10, 148, ++ 149, 150, 151, 152, 153, 154, 10, 156, 157, 158, ++ 159, 160, 161, 162, 163, 164, 165, 166, 167, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 302, 10, 10, 10, 306, 10, 10, 10, - 37, 10, 312, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 10, 10, 10, 10, 49, - 50, 51, 10, 10, 10, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 105, 106, 107, 108, 109, - 10, 111, 112, 113, 10, 10, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 10, 10, 10, 145, 10, 10, 148, 149, - 150, 151, 152, 153, 154, 10, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 10, 10, ++ 10, 10, 10, 10, 10, 10, 10, 10, 10, 188, ++ 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, ++ 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, ++ 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, ++ 219, 220, 221, 222, 223, 224, 225, 226, 227, 10, ++ 229, 10, 231, 232, 233, 234, 235, 236, 237, 238, ++ 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 10, 228, 10, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 10, - 10, 10, 10, 10, 10, 10, 276, 10, 10, 10, - 10, 10, 10, 10, 284, 285, 10, 287, 288, 10, - 290, 291, 10, 10, 294, 295, 296, 297, 298, 299, - 300, 301, 10, 10, 10, 305, 10, 10, 10, 10, - 10, 10, 10, 10, 314, 315, 316, 317, 10, 10, ++ 10, 260, 261, 262, 263, 264, 265, 266, 267, 268, ++ 269, 10, 10, 10, 10, 10, 10, 10, 277, 10, ++ 10, 10, 10, 10, 10, 10, 285, 286, 10, 288, ++ 289, 10, 291, 292, 10, 10, 295, 296, 297, 298, ++ 299, 300, 301, 302, 10, 10, 10, 306, 10, 10, ++ 10, 10, 10, 10, 10, 10, 315, 316, 317, 318, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, -1, -1, -1, -1, - 10, 10, 10, 10, 10, 10, 10, 10, 10 ++ 10, 10, 10, 10, 10, 10, 10, 10, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 37, 37, 37, 37 ++ -1, -1, -1, -1, -1, 37, 37, 37, 37 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint16 yystos[] = +static const yytype_int16 yystos[] = { - 0, 321, 0, 11, 12, 46, 52, 96, 114, 168, - 227, 248, 269, 278, 302, 306, 312, 322, 323, 324, - 327, 330, 333, 336, 344, 592, 603, 625, 629, 637, - 650, 660, 325, 328, 331, 334, 337, 345, 593, 604, - 626, 630, 638, 651, 661, 13, 14, 15, 16, 17, - 0, 269, 0, 11, 44, 50, 94, 110, 151, 203, - 219, 236, 244, 270, 271, 274, 277, 280, 283, 499, - 510, 525, 533, 546, 272, 275, 278, 281, 284, 500, - 511, 526, 534, 547, 12, 13, 14, 15, 16, 17, ++ 0, 322, 0, 11, 12, 46, 52, 96, 114, 168, ++ 228, 249, 270, 279, 303, 307, 313, 323, 324, 325, ++ 328, 331, 334, 337, 345, 594, 605, 627, 631, 639, ++ 652, 662, 326, 329, 332, 335, 338, 346, 595, 606, ++ 628, 632, 640, 653, 663, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 47, 48, 49, 53, 54, + 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 103, - 104, 105, 107, 108, 109, 112, 113, 114, 115, 116, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 105, 106, 107, 108, 109, 111, 112, 113, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 139, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 145, 148, 149, 150, 151, + 152, 153, 154, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 228, 230, 231, 232, 233, 234, ++ 223, 224, 225, 226, 227, 229, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 276, 284, 285, 287, 288, 290, 291, - 294, 295, 296, 297, 298, 299, 300, 301, 305, 314, - 315, 316, 317, 326, 347, 348, 349, 350, 351, 352, ++ 245, 246, 247, 248, 260, 261, 262, 263, 264, 265, ++ 266, 267, 268, 269, 277, 285, 286, 288, 289, 291, ++ 292, 295, 296, 297, 298, 299, 300, 301, 302, 306, ++ 315, 316, 317, 318, 327, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 633, 634, 635, - 636, 659, 45, 47, 48, 110, 143, 146, 155, 293, - 329, 560, 561, 562, 563, 564, 565, 566, 567, 45, - 53, 54, 142, 144, 147, 292, 332, 568, 569, 570, - 571, 572, 573, 574, 45, 81, 82, 108, 189, 190, - 229, 335, 585, 586, 587, 588, 589, 590, 591, 45, - 277, 279, 280, 281, 282, 283, 289, 318, 319, 338, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 307, 308, 309, 310, 311, 339, 340, 341, 342, 343, - 346, 575, 576, 577, 578, 579, 97, 98, 99, 100, - 101, 102, 103, 104, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 605, 606, 607, 608, 609, 610, 611, 612, ++ 553, 554, 555, 556, 557, 558, 559, 560, 561, 635, ++ 636, 637, 638, 661, 45, 47, 48, 110, 143, 146, ++ 155, 294, 330, 562, 563, 564, 565, 566, 567, 568, ++ 569, 45, 53, 54, 142, 144, 147, 293, 333, 570, ++ 571, 572, 573, 574, 575, 576, 45, 81, 82, 108, ++ 189, 190, 230, 336, 587, 588, 589, 590, 591, 592, ++ 593, 45, 278, 280, 281, 282, 283, 284, 290, 319, ++ 320, 339, 577, 578, 579, 580, 581, 582, 583, 584, ++ 585, 586, 308, 309, 310, 311, 312, 340, 341, 342, ++ 343, 344, 347, 577, 578, 579, 580, 581, 97, 98, ++ 99, 100, 101, 102, 103, 104, 596, 597, 598, 599, ++ 600, 601, 602, 603, 604, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 204, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 230, 231, 232, 233, 234, 235, 242, - 250, 251, 253, 254, 256, 257, 260, 261, 262, 263, - 264, 265, 266, 267, 273, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 529, 530, 531, 532, 554, 43, 45, 46, 106, 137, - 140, 259, 276, 471, 472, 473, 474, 475, 476, 477, - 43, 51, 52, 136, 138, 258, 279, 478, 479, 480, - 481, 482, 483, 43, 79, 80, 104, 165, 166, 205, - 282, 492, 493, 494, 495, 496, 497, 498, 43, 243, - 245, 246, 247, 248, 249, 255, 285, 484, 485, 486, - 487, 488, 489, 490, 491, 95, 96, 97, 98, 99, - 100, 101, 102, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 111, 527, 528, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 237, 238, 239, 240, 241, 548, 549, 550, 551, - 552, 553, 10, 10, 10, 10, 10, 10, 10, 10, ++ 184, 185, 186, 187, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, - 623, 624, 115, 627, 628, 313, 631, 632, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 270, - 271, 272, 273, 274, 275, 652, 653, 654, 655, 656, - 657, 658, 303, 304, 662, 663, 664, 10, 10, 10, ++ 623, 624, 625, 626, 115, 629, 630, 314, 633, 634, ++ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, ++ 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, ++ 651, 271, 272, 273, 274, 275, 276, 654, 655, 656, ++ 657, 658, 659, 660, 304, 305, 664, 665, 666, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@@ -2808,82 -1791,68 +2816,83 @@@ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 ++ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, ++ 10, 10, 10 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = +static const yytype_int16 yyr1[] = { - 0, 320, 321, 321, 322, 322, 322, 322, 322, 322, - 322, 322, 322, 322, 322, 322, 322, 322, 323, 324, - 325, 325, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 327, 328, 328, 329, 329, 329, 329, 329, 329, 329, - 329, 330, 331, 331, 332, 332, 332, 332, 332, 332, - 332, 333, 334, 334, 335, 335, 335, 335, 335, 335, - 335, 336, 337, 337, 338, 338, 338, 338, 338, 338, - 338, 338, 338, 338, 339, 340, 341, 342, 343, 344, - 345, 345, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 0, 268, 269, 269, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 270, 271, 272, 272, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 274, 275, 275, - 276, 276, 276, 276, 276, 276, 276, 277, 278, 278, - 279, 279, 279, 279, 279, 279, 280, 281, 281, 282, - 282, 282, 282, 282, 282, 282, 283, 284, 284, 285, - 285, 285, 285, 285, 285, 285, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 500, 501, 501, 501, 501, 501, 501, 501, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 511, 512, 512, 512, 512, 512, 512, 512, 512, - 512, 512, 512, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 534, 535, 535, - 535, 535, 535, 535, 535, 535, 535, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 547, 548, 548, 548, 548, 548, 549, 550, 551, 552, - 553, 554 ++ 0, 321, 322, 322, 323, 323, 323, 323, 323, 323, ++ 323, 323, 323, 323, 323, 323, 323, 323, 324, 325, ++ 326, 326, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, ++ 327, 328, 329, 329, 330, 330, 330, 330, 330, 330, ++ 330, 330, 331, 332, 332, 333, 333, 333, 333, 333, ++ 333, 333, 334, 335, 335, 336, 336, 336, 336, 336, ++ 336, 336, 337, 338, 338, 339, 339, 339, 339, 339, ++ 339, 339, 339, 339, 339, 340, 341, 342, 343, 344, ++ 345, 346, 346, 347, 347, 347, 347, 347, 347, 347, ++ 347, 347, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 593, - 594, 594, 594, 594, 594, 594, 594, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 604, 605, - 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, - 605, 605, 605, 605, 605, 605, 605, 605, 606, 607, ++ 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, ++ 595, 595, 596, 596, 596, 596, 596, 596, 596, 596, ++ 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, ++ 606, 607, 607, 607, 607, 607, 607, 607, 607, 607, ++ 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, - 618, 619, 620, 621, 622, 623, 624, 625, 626, 626, - 627, 628, 629, 630, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 638, 639, 639, 639, 639, 639, 639, - 639, 639, 639, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 651, 652, 652, 652, - 652, 652, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 661, 662, 662, 663, 664 ++ 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, ++ 628, 628, 629, 630, 631, 632, 632, 633, 634, 635, ++ 636, 637, 638, 639, 640, 640, 641, 641, 641, 641, ++ 641, 641, 641, 641, 641, 641, 642, 643, 644, 645, ++ 646, 647, 648, 649, 650, 651, 652, 653, 653, 654, ++ 654, 654, 654, 654, 654, 655, 656, 657, 658, 659, ++ 660, 661, 662, 663, 663, 664, 664, 665, 666 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@@ -2912,14 -1878,11 +2921,14 @@@ static const yytype_int8 yyr2[] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, - 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, ++ 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, ++ 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, ++ 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, ++ 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@@ -2931,31 -1894,26 +2940,31 @@@ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 3, 4, 4, 4, 3, 3, - 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 3, 4, 4, 4, 3, 3, 2, 2, - 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, ++ 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 3, 3, 4, 4, 4, 3, 3, 2, ++ 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, - 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, ++ 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 3, 3, 2, 2, 2, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, ++ 2, 2, 2, 3, 3, 3, 2, 2, 2, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, - 2, 2, 2, 3, 3, 1, 2, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, - 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 3 ++ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, - 1, 2, 1, 2, 0, 1, 2, 2, 2, 3, - 3, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, - 1, 2, 0, 1, 1, 2, 2 ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, ++ 2, 0, 1, 2, 1, 2, 0, 1, 2, 2, ++ 2, 3, 3, 1, 2, 0, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, ++ 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, ++ 2, 3, 1, 2, 0, 1, 1, 2, 2 }; @@@ -3435,74 -2589,66 +3444,74 @@@ yyreduce YY_REDUCE_PRINT (yyn); switch (yyn) { - case 14: -#line 183 "./util/configparser.y" /* yacc.c:1646 */ - { + case 18: - #line 201 "./util/configparser.y" ++#line 202 "./util/configparser.y" + { + OUTYY(("\nP(force-toplevel)\n")); + } - #line 3444 "util/configparser.c" ++#line 3453 "util/configparser.c" + break; + + case 19: - #line 207 "./util/configparser.y" - { ++#line 208 "./util/configparser.y" ++ { OUTYY(("\nP(server:)\n")); } - #line 3452 "util/configparser.c" -#line 2598 "util/configparser.c" /* yacc.c:1646 */ ++#line 3461 "util/configparser.c" break; - case 240: - #line 314 "./util/configparser.y" - case 207: -#line 274 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 241: ++#line 315 "./util/configparser.y" + { struct config_stub* s; - OUTYY(("\nP(stub_zone:)\n")); + OUTYY(("\nP(stub_zone:)\n")); s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); if(s) { s->next = cfg_parser->cfg->stubs; cfg_parser->cfg->stubs = s; - } else + } else yyerror("out of memory"); } - #line 3467 "util/configparser.c" -#line 2613 "util/configparser.c" /* yacc.c:1646 */ ++#line 3476 "util/configparser.c" break; - case 251: - #line 331 "./util/configparser.y" - case 217: -#line 291 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 252: ++#line 332 "./util/configparser.y" + { struct config_stub* s; - OUTYY(("\nP(forward_zone:)\n")); + OUTYY(("\nP(forward_zone:)\n")); s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); if(s) { s->next = cfg_parser->cfg->forwards; cfg_parser->cfg->forwards = s; - } else + } else yyerror("out of memory"); } - #line 3482 "util/configparser.c" -#line 2628 "util/configparser.c" /* yacc.c:1646 */ ++#line 3491 "util/configparser.c" break; - case 261: - #line 348 "./util/configparser.y" - case 226: -#line 308 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 262: ++#line 349 "./util/configparser.y" + { struct config_view* s; - OUTYY(("\nP(view:)\n")); + OUTYY(("\nP(view:)\n")); s = (struct config_view*)calloc(1, sizeof(struct config_view)); if(s) { s->next = cfg_parser->cfg->views; if(s->next && !s->next->name) yyerror("view without name"); cfg_parser->cfg->views = s; - } else + } else yyerror("out of memory"); } - #line 3499 "util/configparser.c" -#line 2645 "util/configparser.c" /* yacc.c:1646 */ ++#line 3508 "util/configparser.c" break; - case 271: - #line 367 "./util/configparser.y" - case 236: -#line 327 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 272: ++#line 368 "./util/configparser.y" + { struct config_auth* s; - OUTYY(("\nP(auth_zone:)\n")); + OUTYY(("\nP(auth_zone:)\n")); s = (struct config_auth*)calloc(1, sizeof(struct config_auth)); if(s) { s->next = cfg_parser->cfg->auths; @@@ -3511,185 -2657,90 +3520,185 @@@ s->for_downstream = 1; s->for_upstream = 1; s->fallback_enabled = 0; + s->zonemd_check = 0; + s->zonemd_reject_absence = 0; + s->isrpz = 0; - } else + } else yyerror("out of memory"); } - #line 3521 "util/configparser.c" -#line 2664 "util/configparser.c" /* yacc.c:1646 */ ++#line 3530 "util/configparser.c" break; - case 284: - #line 393 "./util/configparser.y" - case 247: -#line 349 "./util/configparser.y" /* yacc.c:1646 */ - { - OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); ++ case 285: ++#line 394 "./util/configparser.y" + { + uint8_t* bitlist; + size_t len = 0; + OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[0].str))); + bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), + &len); free((yyvsp[0].str)); + if(!bitlist) { + yyerror("could not parse tags, (define-tag them first)"); + } + if(bitlist) { + cfg_parser->cfg->auths->rpz_taglist = bitlist; + cfg_parser->cfg->auths->rpz_taglistlen = len; + + } } - #line 3542 "util/configparser.c" -#line 2676 "util/configparser.c" /* yacc.c:1646 */ ++#line 3551 "util/configparser.c" break; - case 285: - #line 412 "./util/configparser.y" - case 248: -#line 358 "./util/configparser.y" /* yacc.c:1646 */ - { - OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); ++ case 286: ++#line 413 "./util/configparser.y" + { + OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 && + strcmp((yyvsp[0].str), "passthru")!=0 && strcmp((yyvsp[0].str), "drop")!=0 && + strcmp((yyvsp[0].str), "cname")!=0 && strcmp((yyvsp[0].str), "disabled")!=0) { + yyerror("rpz-action-override action: expected nxdomain, " + "nodata, passthru, drop, cname or disabled"); + free((yyvsp[0].str)); + cfg_parser->cfg->auths->rpz_action_override = NULL; + } + else { + cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); + } } - #line 3561 "util/configparser.c" -#line 2688 "util/configparser.c" /* yacc.c:1646 */ ++#line 3570 "util/configparser.c" break; - case 286: - #line 429 "./util/configparser.y" - case 249: -#line 367 "./util/configparser.y" /* yacc.c:1646 */ - { - OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) - cfg_parser->cfg->stat_interval = 0; - else if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); ++ case 287: ++#line 430 "./util/configparser.y" + { + OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); + free(cfg_parser->cfg->auths->rpz_cname); + cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); } - #line 3571 "util/configparser.c" -#line 2702 "util/configparser.c" /* yacc.c:1646 */ ++#line 3580 "util/configparser.c" break; - case 287: - #line 437 "./util/configparser.y" - case 250: -#line 378 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 288: ++#line 438 "./util/configparser.y" + { + OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 3583 "util/configparser.c" ++#line 3592 "util/configparser.c" + break; + - case 288: - #line 447 "./util/configparser.y" ++ case 289: ++#line 448 "./util/configparser.y" + { + OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); + free(cfg_parser->cfg->auths->rpz_log_name); + cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); + } - #line 3593 "util/configparser.c" ++#line 3602 "util/configparser.c" + break; + - case 289: - #line 455 "./util/configparser.y" ++ case 290: ++#line 456 "./util/configparser.y" + { + struct config_auth* s; + OUTYY(("\nP(rpz:)\n")); + s = (struct config_auth*)calloc(1, sizeof(struct config_auth)); + if(s) { + s->next = cfg_parser->cfg->auths; + cfg_parser->cfg->auths = s; + /* defaults for RPZ auth zone */ + s->for_downstream = 0; + s->for_upstream = 0; + s->fallback_enabled = 0; + s->isrpz = 1; + } else + yyerror("out of memory"); + } - #line 3613 "util/configparser.c" ++#line 3622 "util/configparser.c" + break; + - case 302: - #line 478 "./util/configparser.y" - { - OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); ++ case 303: ++#line 479 "./util/configparser.y" ++ { ++ OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } - #line 3625 "util/configparser.c" ++#line 3634 "util/configparser.c" + break; + - case 303: - #line 487 "./util/configparser.y" - { - OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); ++ case 304: ++#line 488 "./util/configparser.y" ++ { ++ OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } - #line 3637 "util/configparser.c" ++#line 3646 "util/configparser.c" + break; + - case 304: - #line 496 "./util/configparser.y" - { - OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); ++ case 305: ++#line 497 "./util/configparser.y" ++ { ++ OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) + cfg_parser->cfg->stat_interval = 0; + else if(atoi((yyvsp[0].str)) == 0) + yyerror("number expected"); + else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } - #line 3651 "util/configparser.c" ++#line 3660 "util/configparser.c" + break; + - case 305: - #line 507 "./util/configparser.y" ++ case 306: ++#line 508 "./util/configparser.y" + { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3663 "util/configparser.c" -#line 2714 "util/configparser.c" /* yacc.c:1646 */ ++#line 3672 "util/configparser.c" break; - case 306: - #line 516 "./util/configparser.y" - case 251: -#line 387 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 307: ++#line 517 "./util/configparser.y" + { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3675 "util/configparser.c" -#line 2726 "util/configparser.c" /* yacc.c:1646 */ ++#line 3684 "util/configparser.c" break; - case 307: - #line 525 "./util/configparser.y" - case 252: -#line 396 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 308: ++#line 526 "./util/configparser.y" + { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3687 "util/configparser.c" -#line 2738 "util/configparser.c" /* yacc.c:1646 */ ++#line 3696 "util/configparser.c" break; - case 308: - #line 534 "./util/configparser.y" - { - OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); - case 253: -#line 405 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 309: ++#line 535 "./util/configparser.y" ++ { + OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) cfg_parser->cfg->shm_key = 0; else if(atoi((yyvsp[0].str)) == 0) @@@ -3697,39 -2748,38 +3706,39 @@@ else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 3701 "util/configparser.c" -#line 2752 "util/configparser.c" /* yacc.c:1646 */ ++#line 3710 "util/configparser.c" break; - case 309: - #line 545 "./util/configparser.y" - case 254: -#line 416 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 310: ++#line 546 "./util/configparser.y" + { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("port number expected"); else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 3713 "util/configparser.c" -#line 2764 "util/configparser.c" /* yacc.c:1646 */ ++#line 3722 "util/configparser.c" break; - case 310: - #line 554 "./util/configparser.y" - case 255: -#line 425 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 311: ++#line 555 "./util/configparser.y" + { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[0].str))) fatal_exit("out of memory adding client-subnet"); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + free((yyvsp[0].str)); #endif } - #line 3728 "util/configparser.c" -#line 2778 "util/configparser.c" /* yacc.c:1646 */ ++#line 3737 "util/configparser.c" break; - case 311: - #line 566 "./util/configparser.y" - case 256: -#line 436 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 312: ++#line 567 "./util/configparser.y" + { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone, @@@ -3737,15 -2787,14 +3746,15 @@@ fatal_exit("out of memory adding client-subnet-zone"); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + free((yyvsp[0].str)); #endif } - #line 3744 "util/configparser.c" -#line 2793 "util/configparser.c" /* yacc.c:1646 */ ++#line 3753 "util/configparser.c" break; - case 312: - #line 580 "./util/configparser.y" - case 257: -#line 449 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 313: ++#line 581 "./util/configparser.y" + { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@@ -3758,12 -2807,12 +3767,12 @@@ #endif free((yyvsp[0].str)); } - #line 3762 "util/configparser.c" -#line 2811 "util/configparser.c" /* yacc.c:1646 */ ++#line 3771 "util/configparser.c" break; - case 313: - #line 595 "./util/configparser.y" - case 258: -#line 464 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 314: ++#line 596 "./util/configparser.y" + { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); OUTYY(("P(Deprecated option, ignoring)\n")); @@@ -3772,12 -2821,12 +3781,12 @@@ #endif free((yyvsp[0].str)); } - #line 3776 "util/configparser.c" -#line 2825 "util/configparser.c" /* yacc.c:1646 */ ++#line 3785 "util/configparser.c" break; - case 314: - #line 606 "./util/configparser.y" - case 259: -#line 475 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 315: ++#line 607 "./util/configparser.y" + { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@@ -3792,12 -2841,12 +3801,12 @@@ #endif free((yyvsp[0].str)); } - #line 3796 "util/configparser.c" -#line 2845 "util/configparser.c" /* yacc.c:1646 */ ++#line 3805 "util/configparser.c" break; - case 315: - #line 623 "./util/configparser.y" - case 260: -#line 492 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 316: ++#line 624 "./util/configparser.y" + { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@@ -3812,12 -2861,12 +3821,12 @@@ #endif free((yyvsp[0].str)); } - #line 3816 "util/configparser.c" -#line 2865 "util/configparser.c" /* yacc.c:1646 */ ++#line 3825 "util/configparser.c" break; - case 316: - #line 640 "./util/configparser.y" - case 261: -#line 509 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 317: ++#line 641 "./util/configparser.y" + { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@@ -3832,12 -2881,12 +3841,12 @@@ #endif free((yyvsp[0].str)); } - #line 3836 "util/configparser.c" -#line 2885 "util/configparser.c" /* yacc.c:1646 */ ++#line 3845 "util/configparser.c" break; - case 317: - #line 657 "./util/configparser.y" - case 262: -#line 526 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 318: ++#line 658 "./util/configparser.y" + { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@@ -3852,12 -2901,12 +3861,12 @@@ #endif free((yyvsp[0].str)); } - #line 3856 "util/configparser.c" -#line 2905 "util/configparser.c" /* yacc.c:1646 */ ++#line 3865 "util/configparser.c" break; - case 318: - #line 674 "./util/configparser.y" - case 263: -#line 543 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 319: ++#line 675 "./util/configparser.y" + { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@@ -3870,12 -2919,12 +3879,12 @@@ #endif free((yyvsp[0].str)); } - #line 3874 "util/configparser.c" -#line 2923 "util/configparser.c" /* yacc.c:1646 */ ++#line 3883 "util/configparser.c" break; - case 319: - #line 689 "./util/configparser.y" - case 264: -#line 558 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 320: ++#line 690 "./util/configparser.y" + { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@@ -3888,12 -2937,12 +3897,12 @@@ #endif free((yyvsp[0].str)); } - #line 3892 "util/configparser.c" -#line 2941 "util/configparser.c" /* yacc.c:1646 */ ++#line 3901 "util/configparser.c" break; - case 320: - #line 704 "./util/configparser.y" - case 265: -#line 573 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 321: ++#line 705 "./util/configparser.y" + { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) cfg_parser->cfg->ifs = calloc(1, sizeof(char*)); @@@ -3904,12 -2953,12 +3913,12 @@@ else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } - #line 3908 "util/configparser.c" -#line 2957 "util/configparser.c" /* yacc.c:1646 */ ++#line 3917 "util/configparser.c" break; - case 321: - #line 717 "./util/configparser.y" - case 266: -#line 586 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 322: ++#line 718 "./util/configparser.y" + { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*)); @@@ -3922,180 -2971,168 +3931,180 @@@ cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } - #line 3926 "util/configparser.c" -#line 2975 "util/configparser.c" /* yacc.c:1646 */ ++#line 3935 "util/configparser.c" break; - case 322: - #line 732 "./util/configparser.y" - case 267: -#line 601 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 323: ++#line 733 "./util/configparser.y" + { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 3938 "util/configparser.c" -#line 2987 "util/configparser.c" /* yacc.c:1646 */ ++#line 3947 "util/configparser.c" break; - case 323: - #line 741 "./util/configparser.y" - case 268: -#line 610 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 324: ++#line 742 "./util/configparser.y" + { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); - if(!cfg_mark_ports((yyvsp[0].str), 1, + if(!cfg_mark_ports((yyvsp[0].str), 1, cfg_parser->cfg->outgoing_avail_ports, 65536)) yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } - #line 3950 "util/configparser.c" -#line 2999 "util/configparser.c" /* yacc.c:1646 */ ++#line 3959 "util/configparser.c" break; - case 324: - #line 750 "./util/configparser.y" - case 269: -#line 619 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 325: ++#line 751 "./util/configparser.y" + { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); - if(!cfg_mark_ports((yyvsp[0].str), 0, + if(!cfg_mark_ports((yyvsp[0].str), 0, cfg_parser->cfg->outgoing_avail_ports, 65536)) yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } - #line 3962 "util/configparser.c" -#line 3011 "util/configparser.c" /* yacc.c:1646 */ ++#line 3971 "util/configparser.c" break; - case 325: - #line 759 "./util/configparser.y" - case 270: -#line 628 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 326: ++#line 760 "./util/configparser.y" + { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 3974 "util/configparser.c" -#line 3023 "util/configparser.c" /* yacc.c:1646 */ ++#line 3983 "util/configparser.c" break; - case 326: - #line 768 "./util/configparser.y" - case 271: -#line 637 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 327: ++#line 769 "./util/configparser.y" + { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 3986 "util/configparser.c" -#line 3035 "util/configparser.c" /* yacc.c:1646 */ ++#line 3995 "util/configparser.c" break; - case 327: - #line 777 "./util/configparser.y" - case 272: -#line 646 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 328: ++#line 778 "./util/configparser.y" + { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3998 "util/configparser.c" -#line 3047 "util/configparser.c" /* yacc.c:1646 */ ++#line 4007 "util/configparser.c" break; - case 328: - #line 786 "./util/configparser.y" - case 273: -#line 655 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 329: ++#line 787 "./util/configparser.y" + { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4010 "util/configparser.c" -#line 3059 "util/configparser.c" /* yacc.c:1646 */ ++#line 4019 "util/configparser.c" break; - case 329: - #line 795 "./util/configparser.y" - case 274: -#line 664 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 330: ++#line 796 "./util/configparser.y" + { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4022 "util/configparser.c" -#line 3071 "util/configparser.c" /* yacc.c:1646 */ ++#line 4031 "util/configparser.c" break; - case 330: - #line 804 "./util/configparser.y" - case 275: -#line 673 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 331: ++#line 805 "./util/configparser.y" + { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4034 "util/configparser.c" -#line 3083 "util/configparser.c" /* yacc.c:1646 */ ++#line 4043 "util/configparser.c" break; - case 331: - #line 813 "./util/configparser.y" - case 276: -#line 682 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 332: ++#line 814 "./util/configparser.y" + { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4046 "util/configparser.c" -#line 3095 "util/configparser.c" /* yacc.c:1646 */ ++#line 4055 "util/configparser.c" break; - case 332: - #line 822 "./util/configparser.y" - case 277: -#line 691 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 333: ++#line 823 "./util/configparser.y" + { + OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 4058 "util/configparser.c" ++#line 4067 "util/configparser.c" + break; + - case 333: - #line 831 "./util/configparser.y" ++ case 334: ++#line 832 "./util/configparser.y" + { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4070 "util/configparser.c" -#line 3107 "util/configparser.c" /* yacc.c:1646 */ ++#line 4079 "util/configparser.c" break; - case 334: - #line 840 "./util/configparser.y" - case 278: -#line 700 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 335: ++#line 841 "./util/configparser.y" + { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } - #line 4082 "util/configparser.c" -#line 3119 "util/configparser.c" /* yacc.c:1646 */ ++#line 4091 "util/configparser.c" break; - case 335: - #line 849 "./util/configparser.y" - case 279: -#line 709 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 336: ++#line 850 "./util/configparser.y" + { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4094 "util/configparser.c" -#line 3131 "util/configparser.c" /* yacc.c:1646 */ ++#line 4103 "util/configparser.c" break; - case 336: - #line 858 "./util/configparser.y" - case 280: -#line 718 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 337: ++#line 859 "./util/configparser.y" + { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); @@@ -4106,66 -3143,24 +4115,66 @@@ else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4110 "util/configparser.c" -#line 3147 "util/configparser.c" /* yacc.c:1646 */ ++#line 4119 "util/configparser.c" break; - case 337: - #line 871 "./util/configparser.y" - case 281: -#line 731 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 338: ++#line 872 "./util/configparser.y" + { + OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else if (atoi((yyvsp[0].str)) < 1) + cfg_parser->cfg->max_reuse_tcp_queries = 0; + else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } - #line 4124 "util/configparser.c" ++#line 4133 "util/configparser.c" + break; + - case 338: - #line 882 "./util/configparser.y" ++ case 339: ++#line 883 "./util/configparser.y" + { + OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else if (atoi((yyvsp[0].str)) < 1) + cfg_parser->cfg->tcp_reuse_timeout = 0; + else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } - #line 4138 "util/configparser.c" ++#line 4147 "util/configparser.c" + break; + - case 339: - #line 893 "./util/configparser.y" ++ case 340: ++#line 894 "./util/configparser.y" + { + OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else if (atoi((yyvsp[0].str)) < 1) + cfg_parser->cfg->tcp_auth_query_timeout = 0; + else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } - #line 4152 "util/configparser.c" ++#line 4161 "util/configparser.c" + break; + - case 340: - #line 904 "./util/configparser.y" ++ case 341: ++#line 905 "./util/configparser.y" + { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4164 "util/configparser.c" -#line 3159 "util/configparser.c" /* yacc.c:1646 */ ++#line 4173 "util/configparser.c" break; - case 341: - #line 913 "./util/configparser.y" - case 282: -#line 740 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 342: ++#line 914 "./util/configparser.y" + { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); @@@ -4176,273 -3171,169 +4185,273 @@@ else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4180 "util/configparser.c" -#line 3175 "util/configparser.c" /* yacc.c:1646 */ ++#line 4189 "util/configparser.c" break; - case 342: - #line 926 "./util/configparser.y" - case 283: -#line 753 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 343: ++#line 927 "./util/configparser.y" + { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4192 "util/configparser.c" -#line 3187 "util/configparser.c" /* yacc.c:1646 */ ++#line 4201 "util/configparser.c" break; - case 343: - #line 935 "./util/configparser.y" - case 284: -#line 762 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 344: ++#line 936 "./util/configparser.y" + { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4204 "util/configparser.c" -#line 3199 "util/configparser.c" /* yacc.c:1646 */ ++#line 4213 "util/configparser.c" break; - case 344: - #line 944 "./util/configparser.y" - case 285: -#line 771 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 345: ++#line 945 "./util/configparser.y" + { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4216 "util/configparser.c" -#line 3211 "util/configparser.c" /* yacc.c:1646 */ ++#line 4225 "util/configparser.c" break; - case 345: - #line 953 "./util/configparser.y" - case 286: -#line 780 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 346: ++#line 954 "./util/configparser.y" + { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } - #line 4226 "util/configparser.c" -#line 3221 "util/configparser.c" /* yacc.c:1646 */ ++#line 4235 "util/configparser.c" break; - case 346: - #line 960 "./util/configparser.y" - case 287: -#line 787 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 347: ++#line 961 "./util/configparser.y" + { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } - #line 4236 "util/configparser.c" -#line 3231 "util/configparser.c" /* yacc.c:1646 */ ++#line 4245 "util/configparser.c" break; - case 347: - #line 967 "./util/configparser.y" - case 288: -#line 794 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 348: ++#line 968 "./util/configparser.y" + { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("port number expected"); else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4248 "util/configparser.c" -#line 3243 "util/configparser.c" /* yacc.c:1646 */ ++#line 4257 "util/configparser.c" break; - case 348: - #line 976 "./util/configparser.y" - case 289: -#line 803 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 349: ++#line 977 "./util/configparser.y" + { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } - #line 4258 "util/configparser.c" -#line 3253 "util/configparser.c" /* yacc.c:1646 */ ++#line 4267 "util/configparser.c" break; - case 349: - #line 983 "./util/configparser.y" - case 290: -#line 810 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 350: ++#line 984 "./util/configparser.y" + { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4270 "util/configparser.c" -#line 3265 "util/configparser.c" /* yacc.c:1646 */ ++#line 4279 "util/configparser.c" break; - case 350: - #line 992 "./util/configparser.y" - case 291: -#line 819 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 351: ++#line 993 "./util/configparser.y" + { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, (yyvsp[0].str))) yyerror("out of memory"); } - #line 4281 "util/configparser.c" -#line 3276 "util/configparser.c" /* yacc.c:1646 */ ++#line 4290 "util/configparser.c" break; - case 351: - #line 1000 "./util/configparser.y" - case 292: -#line 827 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 352: ++#line 1001 "./util/configparser.y" + { OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphers); cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); } - #line 4291 "util/configparser.c" -#line 3286 "util/configparser.c" /* yacc.c:1646 */ ++#line 4300 "util/configparser.c" break; - case 352: - #line 1007 "./util/configparser.y" - case 293: -#line 834 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 353: ++#line 1008 "./util/configparser.y" + { OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphersuites); cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); } - #line 4301 "util/configparser.c" -#line 3296 "util/configparser.c" /* yacc.c:1646 */ ++#line 4310 "util/configparser.c" break; - case 353: - #line 1014 "./util/configparser.y" - case 294: -#line 841 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 354: ++#line 1015 "./util/configparser.y" + { OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, (yyvsp[0].str))) yyerror("out of memory"); } - #line 4312 "util/configparser.c" -#line 3307 "util/configparser.c" /* yacc.c:1646 */ ++#line 4321 "util/configparser.c" break; - case 354: - #line 1022 "./util/configparser.y" - case 295: -#line 849 "./util/configparser.y" /* yacc.c:1646 */ - { - OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); ++ case 355: ++#line 1023 "./util/configparser.y" + { + OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); + else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4324 "util/configparser.c" -#line 3319 "util/configparser.c" /* yacc.c:1646 */ ++#line 4333 "util/configparser.c" break; - case 355: - #line 1031 "./util/configparser.y" - case 296: -#line 858 "./util/configparser.y" /* yacc.c:1646 */ - { - OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); ++ case 356: ++#line 1032 "./util/configparser.y" + { + OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) + yyerror("port number expected"); + else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4336 "util/configparser.c" -#line 3331 "util/configparser.c" /* yacc.c:1646 */ ++#line 4345 "util/configparser.c" break; - case 356: - #line 1039 "./util/configparser.y" - case 297: -#line 867 "./util/configparser.y" /* yacc.c:1646 */ - { - OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); ++ case 357: ++#line 1040 "./util/configparser.y" + { + OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); + free(cfg_parser->cfg->http_endpoint); + if((yyvsp[0].str) && (yyvsp[0].str)[0] != '/') { + cfg_parser->cfg->http_endpoint = malloc(strlen((yyvsp[0].str))+2); + if(!cfg_parser->cfg->http_endpoint) + yyerror("out of memory"); + cfg_parser->cfg->http_endpoint[0] = '/'; + memmove(cfg_parser->cfg->http_endpoint+1, (yyvsp[0].str), + strlen((yyvsp[0].str))+1); + free((yyvsp[0].str)); + } else { + cfg_parser->cfg->http_endpoint = (yyvsp[0].str); + } + } - #line 4356 "util/configparser.c" ++#line 4365 "util/configparser.c" + break; + - case 357: - #line 1055 "./util/configparser.y" ++ case 358: ++#line 1056 "./util/configparser.y" + { + OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } - #line 4368 "util/configparser.c" ++#line 4377 "util/configparser.c" + break; + - case 358: - #line 1063 "./util/configparser.y" ++ case 359: ++#line 1064 "./util/configparser.y" + { + OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), + &cfg_parser->cfg->http_query_buffer_size)) + yyerror("memory size expected"); + free((yyvsp[0].str)); + } - #line 4380 "util/configparser.c" ++#line 4389 "util/configparser.c" + break; + - case 359: - #line 1071 "./util/configparser.y" ++ case 360: ++#line 1072 "./util/configparser.y" + { + OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), + &cfg_parser->cfg->http_response_buffer_size)) + yyerror("memory size expected"); + free((yyvsp[0].str)); + } - #line 4392 "util/configparser.c" ++#line 4401 "util/configparser.c" + break; + - case 360: - #line 1079 "./util/configparser.y" ++ case 361: ++#line 1080 "./util/configparser.y" + { + OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 4404 "util/configparser.c" ++#line 4413 "util/configparser.c" + break; + - case 361: - #line 1087 "./util/configparser.y" ++ case 362: ++#line 1088 "./util/configparser.y" + { + OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 4416 "util/configparser.c" ++#line 4425 "util/configparser.c" + break; + - case 362: - #line 1095 "./util/configparser.y" ++ case 363: ++#line 1096 "./util/configparser.y" + { + OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 4428 "util/configparser.c" ++#line 4437 "util/configparser.c" + break; + - case 363: - #line 1104 "./util/configparser.y" ++ case 364: ++#line 1105 "./util/configparser.y" + { + OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 4440 "util/configparser.c" ++#line 4449 "util/configparser.c" + break; + - case 364: - #line 1113 "./util/configparser.y" ++ case 365: ++#line 1114 "./util/configparser.y" + { + OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[0].str), "yes")==0); @@@ -4453,104 -3344,104 +4462,104 @@@ #endif free((yyvsp[0].str)); } - #line 4457 "util/configparser.c" -#line 3348 "util/configparser.c" /* yacc.c:1646 */ ++#line 4466 "util/configparser.c" break; - case 365: - #line 1127 "./util/configparser.y" - case 298: -#line 881 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 366: ++#line 1128 "./util/configparser.y" + { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4469 "util/configparser.c" -#line 3360 "util/configparser.c" /* yacc.c:1646 */ ++#line 4478 "util/configparser.c" break; - case 366: - #line 1136 "./util/configparser.y" - case 299: -#line 890 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 367: ++#line 1137 "./util/configparser.y" + { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4481 "util/configparser.c" - break; - - case 367: - #line 1145 "./util/configparser.y" - { - OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } - #line 4493 "util/configparser.c" -#line 3372 "util/configparser.c" /* yacc.c:1646 */ ++#line 4490 "util/configparser.c" break; - case 300: -#line 899 "./util/configparser.y" /* yacc.c:1646 */ - { + case 368: - #line 1154 "./util/configparser.y" - { - OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } - #line 4505 "util/configparser.c" ++#line 1146 "./util/configparser.y" ++ { + OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } -#line 3384 "util/configparser.c" /* yacc.c:1646 */ ++#line 4502 "util/configparser.c" break; - case 301: -#line 908 "./util/configparser.y" /* yacc.c:1646 */ - { + case 369: - #line 1163 "./util/configparser.y" ++#line 1155 "./util/configparser.y" + { - OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); + OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); + else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4517 "util/configparser.c" -#line 3396 "util/configparser.c" /* yacc.c:1646 */ ++#line 4514 "util/configparser.c" break; - case 302: -#line 917 "./util/configparser.y" /* yacc.c:1646 */ - { + case 370: - #line 1172 "./util/configparser.y" - { - OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } - #line 4529 "util/configparser.c" ++#line 1164 "./util/configparser.y" ++ { + OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } -#line 3408 "util/configparser.c" /* yacc.c:1646 */ ++#line 4526 "util/configparser.c" break; - case 303: -#line 926 "./util/configparser.y" /* yacc.c:1646 */ - { + case 371: - #line 1181 "./util/configparser.y" ++#line 1173 "./util/configparser.y" ++ { + OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } -#line 3420 "util/configparser.c" /* yacc.c:1646 */ ++#line 4538 "util/configparser.c" + break; + - case 304: -#line 935 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 372: ++#line 1182 "./util/configparser.y" + { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } - #line 4539 "util/configparser.c" -#line 3430 "util/configparser.c" /* yacc.c:1646 */ ++#line 4548 "util/configparser.c" break; - case 372: - #line 1188 "./util/configparser.y" - case 305: -#line 942 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 373: ++#line 1189 "./util/configparser.y" + { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } - #line 4549 "util/configparser.c" -#line 3440 "util/configparser.c" /* yacc.c:1646 */ ++#line 4558 "util/configparser.c" break; - case 373: - #line 1195 "./util/configparser.y" - case 306: -#line 949 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 374: ++#line 1196 "./util/configparser.y" + { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); cfg_parser->cfg->directory = (yyvsp[0].str); @@@ -4574,106 -3465,106 +4583,106 @@@ } } } - #line 4578 "util/configparser.c" -#line 3469 "util/configparser.c" /* yacc.c:1646 */ ++#line 4587 "util/configparser.c" break; - case 374: - #line 1221 "./util/configparser.y" - case 307: -#line 975 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 375: ++#line 1222 "./util/configparser.y" + { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->logfile); cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } - #line 4589 "util/configparser.c" -#line 3480 "util/configparser.c" /* yacc.c:1646 */ ++#line 4598 "util/configparser.c" break; - case 375: - #line 1229 "./util/configparser.y" - case 308: -#line 983 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 376: ++#line 1230 "./util/configparser.y" + { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } - #line 4599 "util/configparser.c" -#line 3490 "util/configparser.c" /* yacc.c:1646 */ ++#line 4608 "util/configparser.c" break; - case 376: - #line 1236 "./util/configparser.y" - case 309: -#line 990 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 377: ++#line 1237 "./util/configparser.y" + { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } - #line 4609 "util/configparser.c" -#line 3500 "util/configparser.c" /* yacc.c:1646 */ ++#line 4618 "util/configparser.c" break; - case 377: - #line 1243 "./util/configparser.y" - case 310: -#line 997 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 378: ++#line 1244 "./util/configparser.y" + { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dlv_anchor_file); - cfg_parser->cfg->dlv_anchor_file = (yyvsp[0].str); + log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); + free((yyvsp[0].str)); } - #line 4619 "util/configparser.c" -#line 3510 "util/configparser.c" /* yacc.c:1646 */ ++#line 4628 "util/configparser.c" break; - case 378: - #line 1250 "./util/configparser.y" - case 311: -#line 1004 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 379: ++#line 1251 "./util/configparser.y" + { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[0].str))) - yyerror("out of memory"); + log_warn("option dlv-anchor ignored: DLV is decommissioned"); + free((yyvsp[0].str)); } - #line 4629 "util/configparser.c" -#line 3520 "util/configparser.c" /* yacc.c:1646 */ ++#line 4638 "util/configparser.c" break; - case 379: - #line 1257 "./util/configparser.y" - case 312: -#line 1011 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 380: ++#line 1258 "./util/configparser.y" + { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } - #line 4640 "util/configparser.c" -#line 3531 "util/configparser.c" /* yacc.c:1646 */ ++#line 4649 "util/configparser.c" break; - case 380: - #line 1265 "./util/configparser.y" - case 313: -#line 1019 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 381: ++#line 1266 "./util/configparser.y" + { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } - #line 4651 "util/configparser.c" -#line 3542 "util/configparser.c" /* yacc.c:1646 */ ++#line 4660 "util/configparser.c" break; - case 381: - #line 1273 "./util/configparser.y" - case 314: -#line 1027 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 382: ++#line 1274 "./util/configparser.y" + { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } - #line 4662 "util/configparser.c" -#line 3553 "util/configparser.c" /* yacc.c:1646 */ ++#line 4671 "util/configparser.c" break; - case 382: - #line 1281 "./util/configparser.y" - case 315: -#line 1035 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 383: ++#line 1282 "./util/configparser.y" + { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } - #line 4672 "util/configparser.c" -#line 3563 "util/configparser.c" /* yacc.c:1646 */ ++#line 4681 "util/configparser.c" break; - case 383: - #line 1288 "./util/configparser.y" - case 316: -#line 1042 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 384: ++#line 1289 "./util/configparser.y" + { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4682,12 -3573,12 +4691,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4686 "util/configparser.c" -#line 3577 "util/configparser.c" /* yacc.c:1646 */ ++#line 4695 "util/configparser.c" break; - case 384: - #line 1299 "./util/configparser.y" - case 317: -#line 1053 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 385: ++#line 1300 "./util/configparser.y" + { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4696,208 -3587,150 +4705,208 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4700 "util/configparser.c" -#line 3591 "util/configparser.c" /* yacc.c:1646 */ ++#line 4709 "util/configparser.c" break; - case 385: - #line 1310 "./util/configparser.y" - case 318: -#line 1064 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 386: ++#line 1311 "./util/configparser.y" + { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } - #line 4710 "util/configparser.c" -#line 3601 "util/configparser.c" /* yacc.c:1646 */ ++#line 4719 "util/configparser.c" break; - case 386: - #line 1317 "./util/configparser.y" - case 319: -#line 1071 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 387: ++#line 1318 "./util/configparser.y" + { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4722 "util/configparser.c" -#line 3613 "util/configparser.c" /* yacc.c:1646 */ ++#line 4731 "util/configparser.c" break; - case 387: - #line 1326 "./util/configparser.y" - case 320: -#line 1080 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 388: ++#line 1327 "./util/configparser.y" + { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4734 "util/configparser.c" -#line 3625 "util/configparser.c" /* yacc.c:1646 */ ++#line 4743 "util/configparser.c" break; - case 388: - #line 1335 "./util/configparser.y" - case 321: -#line 1089 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 389: ++#line 1336 "./util/configparser.y" + { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4746 "util/configparser.c" -#line 3637 "util/configparser.c" /* yacc.c:1646 */ ++#line 4755 "util/configparser.c" break; - case 389: - #line 1344 "./util/configparser.y" - case 322: -#line 1098 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 390: ++#line 1345 "./util/configparser.y" + { + OUTYY(("P(server_hide_user_agent:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->hide_http_user_agent = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 4758 "util/configparser.c" ++#line 4767 "util/configparser.c" + break; + - case 390: - #line 1353 "./util/configparser.y" ++ case 391: ++#line 1354 "./util/configparser.y" + { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } - #line 4768 "util/configparser.c" -#line 3647 "util/configparser.c" /* yacc.c:1646 */ ++#line 4777 "util/configparser.c" break; - case 391: - #line 1360 "./util/configparser.y" - case 323: -#line 1105 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 392: ++#line 1361 "./util/configparser.y" + { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } - #line 4778 "util/configparser.c" -#line 3657 "util/configparser.c" /* yacc.c:1646 */ ++#line 4787 "util/configparser.c" break; - case 392: - #line 1367 "./util/configparser.y" - case 324: -#line 1112 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 393: ++#line 1368 "./util/configparser.y" + { + OUTYY(("P(server_http_user_agent:%s)\n", (yyvsp[0].str))); + free(cfg_parser->cfg->http_user_agent); + cfg_parser->cfg->http_user_agent = (yyvsp[0].str); + } - #line 4788 "util/configparser.c" ++#line 4797 "util/configparser.c" + break; + - case 393: - #line 1374 "./util/configparser.y" ++ case 394: ++#line 1375 "./util/configparser.y" + { + OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str))); + free(cfg_parser->cfg->nsid_cfg_str); + cfg_parser->cfg->nsid_cfg_str = (yyvsp[0].str); + free(cfg_parser->cfg->nsid); + cfg_parser->cfg->nsid = NULL; + cfg_parser->cfg->nsid_len = 0; + if (*(yyvsp[0].str) == 0) + ; /* pass; empty string is not setting nsid */ + else if (!(cfg_parser->cfg->nsid = cfg_parse_nsid( + (yyvsp[0].str), &cfg_parser->cfg->nsid_len))) + yyerror("the NSID must be either a hex string or an " + "ascii character string prepended with ascii_."); + } - #line 4807 "util/configparser.c" ++#line 4816 "util/configparser.c" + break; + - case 394: - #line 1390 "./util/configparser.y" ++ case 395: ++#line 1391 "./util/configparser.y" + { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } - #line 4818 "util/configparser.c" -#line 3668 "util/configparser.c" /* yacc.c:1646 */ ++#line 4827 "util/configparser.c" break; - case 395: - #line 1398 "./util/configparser.y" - case 325: -#line 1120 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 396: ++#line 1399 "./util/configparser.y" + { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } - #line 4829 "util/configparser.c" - break; - - case 396: - #line 1406 "./util/configparser.y" - { - OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->so_reuseport = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } - #line 4842 "util/configparser.c" -#line 3679 "util/configparser.c" /* yacc.c:1646 */ ++#line 4838 "util/configparser.c" break; - case 326: -#line 1128 "./util/configparser.y" /* yacc.c:1646 */ - { + case 397: - #line 1416 "./util/configparser.y" - { - OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ip_transparent = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } - #line 4855 "util/configparser.c" ++#line 1407 "./util/configparser.y" ++ { + OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->so_reuseport = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } -#line 3692 "util/configparser.c" /* yacc.c:1646 */ ++#line 4851 "util/configparser.c" break; - case 327: -#line 1138 "./util/configparser.y" /* yacc.c:1646 */ - { + case 398: - #line 1426 "./util/configparser.y" - { - OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ip_freebind = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } - #line 4868 "util/configparser.c" ++#line 1417 "./util/configparser.y" ++ { + OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->ip_transparent = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } -#line 3705 "util/configparser.c" /* yacc.c:1646 */ ++#line 4864 "util/configparser.c" break; - case 328: -#line 1148 "./util/configparser.y" /* yacc.c:1646 */ - { + case 399: - #line 1436 "./util/configparser.y" ++#line 1427 "./util/configparser.y" ++ { + OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->ip_freebind = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } -#line 3718 "util/configparser.c" /* yacc.c:1646 */ ++#line 4877 "util/configparser.c" + break; + - case 329: -#line 1158 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 400: ++#line 1437 "./util/configparser.y" + { + OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else if (atoi((yyvsp[0].str)) > 63) + yyerror("value too large (max 63)"); + else if (atoi((yyvsp[0].str)) < 0) + yyerror("value too small (min 0)"); + else + cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } - #line 4885 "util/configparser.c" ++#line 4894 "util/configparser.c" + break; + - case 400: - #line 1450 "./util/configparser.y" ++ case 401: ++#line 1451 "./util/configparser.y" + { OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 4896 "util/configparser.c" -#line 3729 "util/configparser.c" /* yacc.c:1646 */ ++#line 4905 "util/configparser.c" break; - case 401: - #line 1458 "./util/configparser.y" - case 330: -#line 1166 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 402: ++#line 1459 "./util/configparser.y" + { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -4908,12 -3741,12 +4917,12 @@@ else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4912 "util/configparser.c" -#line 3745 "util/configparser.c" /* yacc.c:1646 */ ++#line 4921 "util/configparser.c" break; - case 402: - #line 1471 "./util/configparser.y" - case 331: -#line 1179 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 403: ++#line 1472 "./util/configparser.y" + { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -4922,23 -3755,23 +4931,23 @@@ else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4926 "util/configparser.c" -#line 3759 "util/configparser.c" /* yacc.c:1646 */ ++#line 4935 "util/configparser.c" break; - case 403: - #line 1482 "./util/configparser.y" - case 332: -#line 1190 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 404: ++#line 1483 "./util/configparser.y" + { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 4937 "util/configparser.c" -#line 3770 "util/configparser.c" /* yacc.c:1646 */ ++#line 4946 "util/configparser.c" break; - case 404: - #line 1490 "./util/configparser.y" - case 333: -#line 1198 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 405: ++#line 1491 "./util/configparser.y" + { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -4949,60 -3782,48 +4958,60 @@@ } free((yyvsp[0].str)); } - #line 4953 "util/configparser.c" -#line 3786 "util/configparser.c" /* yacc.c:1646 */ ++#line 4962 "util/configparser.c" break; - case 405: - #line 1503 "./util/configparser.y" - case 334: -#line 1211 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 406: ++#line 1504 "./util/configparser.y" + { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4965 "util/configparser.c" -#line 3798 "util/configparser.c" /* yacc.c:1646 */ ++#line 4974 "util/configparser.c" break; - case 406: - #line 1512 "./util/configparser.y" - case 335: -#line 1220 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 407: ++#line 1513 "./util/configparser.y" + { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4977 "util/configparser.c" -#line 3810 "util/configparser.c" /* yacc.c:1646 */ ++#line 4986 "util/configparser.c" break; - case 407: - #line 1521 "./util/configparser.y" - case 336: -#line 1229 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 408: ++#line 1522 "./util/configparser.y" + { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4989 "util/configparser.c" -#line 3822 "util/configparser.c" /* yacc.c:1646 */ ++#line 4998 "util/configparser.c" break; - case 408: - #line 1530 "./util/configparser.y" - case 337: -#line 1238 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 409: ++#line 1531 "./util/configparser.y" + { + OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 5001 "util/configparser.c" ++#line 5010 "util/configparser.c" + break; + - case 409: - #line 1539 "./util/configparser.y" ++ case 410: ++#line 1540 "./util/configparser.y" + { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5010,12 -3831,12 +5019,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5014 "util/configparser.c" -#line 3835 "util/configparser.c" /* yacc.c:1646 */ ++#line 5023 "util/configparser.c" break; - case 410: - #line 1549 "./util/configparser.y" - case 338: -#line 1248 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 411: ++#line 1550 "./util/configparser.y" + { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5023,23 -3844,23 +5032,23 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5027 "util/configparser.c" -#line 3848 "util/configparser.c" /* yacc.c:1646 */ ++#line 5036 "util/configparser.c" break; - case 411: - #line 1559 "./util/configparser.y" - case 339: -#line 1258 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 412: ++#line 1560 "./util/configparser.y" + { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 5038 "util/configparser.c" -#line 3859 "util/configparser.c" /* yacc.c:1646 */ ++#line 5047 "util/configparser.c" break; - case 412: - #line 1567 "./util/configparser.y" - case 340: -#line 1266 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 413: ++#line 1568 "./util/configparser.y" + { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -5050,58 -3871,58 +5059,58 @@@ } free((yyvsp[0].str)); } - #line 5054 "util/configparser.c" -#line 3875 "util/configparser.c" /* yacc.c:1646 */ ++#line 5063 "util/configparser.c" break; - case 413: - #line 1580 "./util/configparser.y" - case 341: -#line 1279 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 414: ++#line 1581 "./util/configparser.y" + { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5066 "util/configparser.c" -#line 3887 "util/configparser.c" /* yacc.c:1646 */ ++#line 5075 "util/configparser.c" break; - case 414: - #line 1589 "./util/configparser.y" - case 342: -#line 1288 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 415: ++#line 1590 "./util/configparser.y" + { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5077 "util/configparser.c" -#line 3898 "util/configparser.c" /* yacc.c:1646 */ ++#line 5086 "util/configparser.c" break; - case 415: - #line 1597 "./util/configparser.y" - case 343: -#line 1296 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 416: ++#line 1598 "./util/configparser.y" + { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5089 "util/configparser.c" -#line 3910 "util/configparser.c" /* yacc.c:1646 */ ++#line 5098 "util/configparser.c" break; - case 416: - #line 1606 "./util/configparser.y" - case 344: -#line 1305 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 417: ++#line 1607 "./util/configparser.y" + { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5100 "util/configparser.c" -#line 3921 "util/configparser.c" /* yacc.c:1646 */ ++#line 5109 "util/configparser.c" break; - case 417: - #line 1614 "./util/configparser.y" - case 345: -#line 1313 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 418: ++#line 1615 "./util/configparser.y" + { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -5112,47 -3933,34 +5121,47 @@@ } free((yyvsp[0].str)); } - #line 5116 "util/configparser.c" -#line 3937 "util/configparser.c" /* yacc.c:1646 */ ++#line 5125 "util/configparser.c" break; - case 418: - #line 1627 "./util/configparser.y" - case 346: -#line 1326 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 419: ++#line 1628 "./util/configparser.y" + { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5128 "util/configparser.c" -#line 3949 "util/configparser.c" /* yacc.c:1646 */ ++#line 5137 "util/configparser.c" + break; + - case 419: - #line 1636 "./util/configparser.y" ++ case 420: ++#line 1637 "./util/configparser.y" + { + OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->infra_keep_probing = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 5141 "util/configparser.c" ++#line 5150 "util/configparser.c" break; - case 420: - #line 1646 "./util/configparser.y" - case 347: -#line 1335 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 421: ++#line 1647 "./util/configparser.y" + { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } - #line 5151 "util/configparser.c" -#line 3959 "util/configparser.c" /* yacc.c:1646 */ ++#line 5160 "util/configparser.c" break; - case 421: - #line 1653 "./util/configparser.y" - case 348: -#line 1342 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 422: ++#line 1654 "./util/configparser.y" + { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5160,12 -3968,12 +5169,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5164 "util/configparser.c" -#line 3972 "util/configparser.c" /* yacc.c:1646 */ ++#line 5173 "util/configparser.c" break; - case 422: - #line 1663 "./util/configparser.y" - case 349: -#line 1352 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 423: ++#line 1664 "./util/configparser.y" + { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5173,12 -3981,12 +5182,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5177 "util/configparser.c" -#line 3985 "util/configparser.c" /* yacc.c:1646 */ ++#line 5186 "util/configparser.c" break; - case 423: - #line 1673 "./util/configparser.y" - case 350: -#line 1362 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 424: ++#line 1674 "./util/configparser.y" + { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5186,12 -3994,12 +5195,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5190 "util/configparser.c" -#line 3998 "util/configparser.c" /* yacc.c:1646 */ ++#line 5199 "util/configparser.c" break; - case 424: - #line 1683 "./util/configparser.y" - case 351: -#line 1372 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 425: ++#line 1684 "./util/configparser.y" + { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5199,12 -4007,12 +5208,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5203 "util/configparser.c" -#line 4011 "util/configparser.c" /* yacc.c:1646 */ ++#line 5212 "util/configparser.c" break; - case 425: - #line 1693 "./util/configparser.y" - case 352: -#line 1382 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 426: ++#line 1694 "./util/configparser.y" + { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5212,12 -4020,12 +5221,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5216 "util/configparser.c" -#line 4024 "util/configparser.c" /* yacc.c:1646 */ ++#line 5225 "util/configparser.c" break; - case 426: - #line 1703 "./util/configparser.y" - case 353: -#line 1392 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 427: ++#line 1704 "./util/configparser.y" + { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5225,12 -4033,12 +5234,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5229 "util/configparser.c" -#line 4037 "util/configparser.c" /* yacc.c:1646 */ ++#line 5238 "util/configparser.c" break; - case 427: - #line 1713 "./util/configparser.y" - case 354: -#line 1402 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 428: ++#line 1714 "./util/configparser.y" + { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5238,12 -4046,12 +5247,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5242 "util/configparser.c" -#line 4050 "util/configparser.c" /* yacc.c:1646 */ ++#line 5251 "util/configparser.c" break; - case 428: - #line 1723 "./util/configparser.y" - case 355: -#line 1412 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 429: ++#line 1724 "./util/configparser.y" + { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5251,100 -4059,100 +5260,100 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5255 "util/configparser.c" -#line 4063 "util/configparser.c" /* yacc.c:1646 */ ++#line 5264 "util/configparser.c" break; - case 429: - #line 1733 "./util/configparser.y" - case 356: -#line 1422 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 430: ++#line 1734 "./util/configparser.y" + { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } - #line 5265 "util/configparser.c" -#line 4073 "util/configparser.c" /* yacc.c:1646 */ ++#line 5274 "util/configparser.c" break; - case 430: - #line 1740 "./util/configparser.y" - case 357: -#line 1429 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 431: ++#line 1741 "./util/configparser.y" + { OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } - #line 5275 "util/configparser.c" -#line 4083 "util/configparser.c" /* yacc.c:1646 */ ++#line 5284 "util/configparser.c" break; - case 431: - #line 1747 "./util/configparser.y" - case 358: -#line 1436 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 432: ++#line 1748 "./util/configparser.y" + { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } - #line 5285 "util/configparser.c" -#line 4093 "util/configparser.c" /* yacc.c:1646 */ ++#line 5294 "util/configparser.c" break; - case 432: - #line 1754 "./util/configparser.y" - case 359: -#line 1443 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 433: ++#line 1755 "./util/configparser.y" + { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5297 "util/configparser.c" -#line 4105 "util/configparser.c" /* yacc.c:1646 */ ++#line 5306 "util/configparser.c" break; - case 433: - #line 1763 "./util/configparser.y" - case 360: -#line 1452 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 434: ++#line 1764 "./util/configparser.y" + { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5309 "util/configparser.c" -#line 4117 "util/configparser.c" /* yacc.c:1646 */ ++#line 5318 "util/configparser.c" break; - case 434: - #line 1772 "./util/configparser.y" - case 361: -#line 1461 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 435: ++#line 1773 "./util/configparser.y" + { OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5321 "util/configparser.c" -#line 4129 "util/configparser.c" /* yacc.c:1646 */ ++#line 5330 "util/configparser.c" break; - case 435: - #line 1781 "./util/configparser.y" - case 362: -#line 1470 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 436: ++#line 1782 "./util/configparser.y" + { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5333 "util/configparser.c" -#line 4141 "util/configparser.c" /* yacc.c:1646 */ ++#line 5342 "util/configparser.c" break; - case 436: - #line 1790 "./util/configparser.y" - case 363: -#line 1479 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 437: ++#line 1791 "./util/configparser.y" + { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } - #line 5343 "util/configparser.c" -#line 4151 "util/configparser.c" /* yacc.c:1646 */ ++#line 5352 "util/configparser.c" break; - case 437: - #line 1797 "./util/configparser.y" - case 364: -#line 1486 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 438: ++#line 1798 "./util/configparser.y" + { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5352,12 -4160,12 +5361,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5356 "util/configparser.c" -#line 4164 "util/configparser.c" /* yacc.c:1646 */ ++#line 5365 "util/configparser.c" break; - case 438: - #line 1807 "./util/configparser.y" - case 365: -#line 1496 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 439: ++#line 1808 "./util/configparser.y" + { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "deny_non_local")!=0 && @@@ -5375,22 -4183,22 +5384,22 @@@ fatal_exit("out of memory adding acl"); } } - #line 5379 "util/configparser.c" -#line 4187 "util/configparser.c" /* yacc.c:1646 */ ++#line 5388 "util/configparser.c" break; - case 439: - #line 1827 "./util/configparser.y" - case 366: -#line 1516 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 440: ++#line 1828 "./util/configparser.y" + { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } - #line 5389 "util/configparser.c" -#line 4197 "util/configparser.c" /* yacc.c:1646 */ ++#line 5398 "util/configparser.c" break; - case 440: - #line 1834 "./util/configparser.y" - case 367: -#line 1523 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 441: ++#line 1835 "./util/configparser.y" + { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { cfg_parser->cfg->val_date_override = 0; @@@ -5406,12 -4214,12 +5415,12 @@@ } free((yyvsp[0].str)); } - #line 5410 "util/configparser.c" -#line 4218 "util/configparser.c" /* yacc.c:1646 */ ++#line 5419 "util/configparser.c" break; - case 441: - #line 1852 "./util/configparser.y" - case 368: -#line 1541 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 442: ++#line 1853 "./util/configparser.y" + { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { cfg_parser->cfg->val_sig_skew_min = 0; @@@ -5422,12 -4230,12 +5431,12 @@@ } free((yyvsp[0].str)); } - #line 5426 "util/configparser.c" -#line 4234 "util/configparser.c" /* yacc.c:1646 */ ++#line 5435 "util/configparser.c" break; - case 442: - #line 1865 "./util/configparser.y" - case 369: -#line 1554 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 443: ++#line 1866 "./util/configparser.y" + { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { cfg_parser->cfg->val_sig_skew_max = 0; @@@ -5438,76 -4246,60 +5447,76 @@@ } free((yyvsp[0].str)); } - #line 5442 "util/configparser.c" -#line 4250 "util/configparser.c" /* yacc.c:1646 */ ++#line 5451 "util/configparser.c" break; - case 443: - #line 1878 "./util/configparser.y" - case 370: -#line 1567 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 444: ++#line 1879 "./util/configparser.y" + { + OUTYY(("P(server_val_max_restart:%s)\n", (yyvsp[0].str))); + if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { + cfg_parser->cfg->val_max_restart = 0; + } else { + cfg_parser->cfg->val_max_restart = atoi((yyvsp[0].str)); + if(!cfg_parser->cfg->val_max_restart) + yyerror("number expected"); + } + free((yyvsp[0].str)); + } - #line 5458 "util/configparser.c" ++#line 5467 "util/configparser.c" + break; + - case 444: - #line 1891 "./util/configparser.y" ++ case 445: ++#line 1892 "./util/configparser.y" + { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5470 "util/configparser.c" -#line 4262 "util/configparser.c" /* yacc.c:1646 */ ++#line 5479 "util/configparser.c" break; - case 445: - #line 1900 "./util/configparser.y" - case 371: -#line 1576 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 446: ++#line 1901 "./util/configparser.y" + { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5482 "util/configparser.c" -#line 4274 "util/configparser.c" /* yacc.c:1646 */ ++#line 5491 "util/configparser.c" break; - case 446: - #line 1909 "./util/configparser.y" - case 372: -#line 1585 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 447: ++#line 1910 "./util/configparser.y" + { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5494 "util/configparser.c" -#line 4286 "util/configparser.c" /* yacc.c:1646 */ ++#line 5503 "util/configparser.c" break; - case 447: - #line 1918 "./util/configparser.y" - case 373: -#line 1594 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 448: ++#line 1919 "./util/configparser.y" + { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5506 "util/configparser.c" -#line 4298 "util/configparser.c" /* yacc.c:1646 */ ++#line 5515 "util/configparser.c" break; - case 448: - #line 1927 "./util/configparser.y" - case 374: -#line 1603 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 449: ++#line 1928 "./util/configparser.y" + { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5515,12 -4307,12 +5524,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5519 "util/configparser.c" -#line 4311 "util/configparser.c" /* yacc.c:1646 */ ++#line 5528 "util/configparser.c" break; - case 449: - #line 1937 "./util/configparser.y" - case 375: -#line 1613 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 450: ++#line 1938 "./util/configparser.y" + { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5528,12 -4320,12 +5537,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5532 "util/configparser.c" -#line 4324 "util/configparser.c" /* yacc.c:1646 */ ++#line 5541 "util/configparser.c" break; - case 450: - #line 1947 "./util/configparser.y" - case 376: -#line 1623 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 451: ++#line 1948 "./util/configparser.y" + { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5542,96 -4334,60 +5551,96 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5546 "util/configparser.c" -#line 4338 "util/configparser.c" /* yacc.c:1646 */ ++#line 5555 "util/configparser.c" break; - case 451: - #line 1958 "./util/configparser.y" - case 377: -#line 1634 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 452: ++#line 1959 "./util/configparser.y" + { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5558 "util/configparser.c" -#line 4350 "util/configparser.c" /* yacc.c:1646 */ ++#line 5567 "util/configparser.c" break; - case 452: - #line 1967 "./util/configparser.y" - case 378: -#line 1643 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 453: ++#line 1968 "./util/configparser.y" + { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5570 "util/configparser.c" -#line 4362 "util/configparser.c" /* yacc.c:1646 */ ++#line 5579 "util/configparser.c" break; - case 453: - #line 1976 "./util/configparser.y" - case 379: -#line 1652 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 454: ++#line 1977 "./util/configparser.y" + { OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5582 "util/configparser.c" -#line 4374 "util/configparser.c" /* yacc.c:1646 */ ++#line 5591 "util/configparser.c" break; - case 454: - #line 1985 "./util/configparser.y" - case 380: -#line 1661 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 455: ++#line 1986 "./util/configparser.y" + { OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5594 "util/configparser.c" -#line 4386 "util/configparser.c" /* yacc.c:1646 */ ++#line 5603 "util/configparser.c" break; - case 455: - #line 1994 "./util/configparser.y" - case 381: -#line 1670 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 456: ++#line 1995 "./util/configparser.y" + { + OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } - #line 5606 "util/configparser.c" ++#line 5615 "util/configparser.c" + break; + - case 456: - #line 2003 "./util/configparser.y" ++ case 457: ++#line 2004 "./util/configparser.y" + { + OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } - #line 5618 "util/configparser.c" ++#line 5627 "util/configparser.c" + break; + - case 457: - #line 2012 "./util/configparser.y" ++ case 458: ++#line 2013 "./util/configparser.y" + { + OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 5630 "util/configparser.c" ++#line 5639 "util/configparser.c" + break; + - case 458: - #line 2021 "./util/configparser.y" ++ case 459: ++#line 2022 "./util/configparser.y" + { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5642,12 -4398,12 +5651,12 @@@ #endif free((yyvsp[0].str)); } - #line 5646 "util/configparser.c" -#line 4402 "util/configparser.c" /* yacc.c:1646 */ ++#line 5655 "util/configparser.c" break; - case 459: - #line 2034 "./util/configparser.y" - case 382: -#line 1683 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 460: ++#line 2035 "./util/configparser.y" + { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5658,82 -4414,70 +5667,82 @@@ #endif free((yyvsp[0].str)); } - #line 5662 "util/configparser.c" -#line 4418 "util/configparser.c" /* yacc.c:1646 */ ++#line 5671 "util/configparser.c" break; - case 460: - #line 2047 "./util/configparser.y" - case 383: -#line 1696 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 461: ++#line 2048 "./util/configparser.y" + { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5674 "util/configparser.c" -#line 4430 "util/configparser.c" /* yacc.c:1646 */ ++#line 5683 "util/configparser.c" break; - case 461: - #line 2056 "./util/configparser.y" - case 384: -#line 1705 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 462: ++#line 2057 "./util/configparser.y" + { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } - #line 5684 "util/configparser.c" -#line 4440 "util/configparser.c" /* yacc.c:1646 */ ++#line 5693 "util/configparser.c" break; - case 462: - #line 2063 "./util/configparser.y" - case 385: -#line 1712 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 463: ++#line 2064 "./util/configparser.y" + { + OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 5696 "util/configparser.c" ++#line 5705 "util/configparser.c" + break; + - case 463: - #line 2072 "./util/configparser.y" ++ case 464: ++#line 2073 "./util/configparser.y" + { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5708 "util/configparser.c" -#line 4452 "util/configparser.c" /* yacc.c:1646 */ ++#line 5717 "util/configparser.c" break; - case 464: - #line 2081 "./util/configparser.y" - case 386: -#line 1721 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 465: ++#line 2082 "./util/configparser.y" + { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5720 "util/configparser.c" -#line 4464 "util/configparser.c" /* yacc.c:1646 */ ++#line 5729 "util/configparser.c" break; - case 465: - #line 2090 "./util/configparser.y" - case 387: -#line 1730 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 466: ++#line 2091 "./util/configparser.y" + { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5732 "util/configparser.c" -#line 4476 "util/configparser.c" /* yacc.c:1646 */ ++#line 5741 "util/configparser.c" break; - case 466: - #line 2099 "./util/configparser.y" - case 388: -#line 1739 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 467: ++#line 2100 "./util/configparser.y" + { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5741,23 -4485,23 +5750,23 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5745 "util/configparser.c" -#line 4489 "util/configparser.c" /* yacc.c:1646 */ ++#line 5754 "util/configparser.c" break; - case 467: - #line 2108 "./util/configparser.y" - case 389: -#line 1748 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 468: ++#line 2109 "./util/configparser.y" + { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 5756 "util/configparser.c" -#line 4500 "util/configparser.c" /* yacc.c:1646 */ ++#line 5765 "util/configparser.c" break; - case 468: - #line 2116 "./util/configparser.y" - case 390: -#line 1756 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 469: ++#line 2117 "./util/configparser.y" + { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -5768,23 -4512,23 +5777,23 @@@ } free((yyvsp[0].str)); } - #line 5772 "util/configparser.c" -#line 4516 "util/configparser.c" /* yacc.c:1646 */ ++#line 5781 "util/configparser.c" break; - case 469: - #line 2129 "./util/configparser.y" - case 391: -#line 1769 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 470: ++#line 2130 "./util/configparser.y" + { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 5783 "util/configparser.c" -#line 4527 "util/configparser.c" /* yacc.c:1646 */ ++#line 5792 "util/configparser.c" break; - case 470: - #line 2137 "./util/configparser.y" - case 392: -#line 1777 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 471: ++#line 2138 "./util/configparser.y" + { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 && @@@ -5814,35 -4553,28 +5823,35 @@@ local_zones_nodefault, (yyvsp[-1].str))) fatal_exit("out of memory adding local-zone"); free((yyvsp[0].str)); +#ifdef USE_IPSET + } else if(strcmp((yyvsp[0].str), "ipset")==0) { + if(!cfg_strlist_insert(&cfg_parser->cfg-> + local_zones_ipset, (yyvsp[-1].str))) + fatal_exit("out of memory adding local-zone"); + free((yyvsp[0].str)); +#endif } else { - if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones, + if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding local-zone"); } } - #line 5831 "util/configparser.c" -#line 4563 "util/configparser.c" /* yacc.c:1646 */ ++#line 5840 "util/configparser.c" break; - case 471: - #line 2182 "./util/configparser.y" - case 393: -#line 1810 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 472: ++#line 2183 "./util/configparser.y" + { OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) fatal_exit("out of memory adding local-data"); } - #line 5841 "util/configparser.c" -#line 4573 "util/configparser.c" /* yacc.c:1646 */ ++#line 5850 "util/configparser.c" break; - case 472: - #line 2189 "./util/configparser.y" - case 394: -#line 1817 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 473: ++#line 2190 "./util/configparser.y" + { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); ptr = cfg_ptr_reverse((yyvsp[0].str)); @@@ -5855,12 -4587,12 +5864,12 @@@ yyerror("local-data-ptr could not be reversed"); } } - #line 5859 "util/configparser.c" -#line 4591 "util/configparser.c" /* yacc.c:1646 */ ++#line 5868 "util/configparser.c" break; - case 473: - #line 2204 "./util/configparser.y" - case 395: -#line 1832 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 474: ++#line 2205 "./util/configparser.y" + { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5868,12 -4600,12 +5877,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5872 "util/configparser.c" -#line 4604 "util/configparser.c" /* yacc.c:1646 */ ++#line 5881 "util/configparser.c" break; - case 474: - #line 2214 "./util/configparser.y" - case 396: -#line 1842 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 475: ++#line 2215 "./util/configparser.y" + { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5881,65 -4613,65 +5890,65 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5885 "util/configparser.c" -#line 4617 "util/configparser.c" /* yacc.c:1646 */ ++#line 5894 "util/configparser.c" break; - case 475: - #line 2224 "./util/configparser.y" - case 397: -#line 1852 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 476: ++#line 2225 "./util/configparser.y" + { OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5895 "util/configparser.c" -#line 4627 "util/configparser.c" /* yacc.c:1646 */ ++#line 5904 "util/configparser.c" break; - case 476: - #line 2231 "./util/configparser.y" - case 398: -#line 1859 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 477: ++#line 2232 "./util/configparser.y" + { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5905 "util/configparser.c" -#line 4637 "util/configparser.c" /* yacc.c:1646 */ ++#line 5914 "util/configparser.c" break; - case 477: - #line 2238 "./util/configparser.y" - case 399: -#line 1866 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 478: ++#line 2239 "./util/configparser.y" + { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } - #line 5915 "util/configparser.c" -#line 4647 "util/configparser.c" /* yacc.c:1646 */ ++#line 5924 "util/configparser.c" break; - case 478: - #line 2245 "./util/configparser.y" - case 400: -#line 1873 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 479: ++#line 2246 "./util/configparser.y" + { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5927 "util/configparser.c" -#line 4659 "util/configparser.c" /* yacc.c:1646 */ ++#line 5936 "util/configparser.c" break; - case 479: - #line 2254 "./util/configparser.y" - case 401: -#line 1882 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 480: ++#line 2255 "./util/configparser.y" + { OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, (yyvsp[0].str))) fatal_exit("out of memory adding dns64-ignore-aaaa"); } - #line 5938 "util/configparser.c" -#line 4670 "util/configparser.c" /* yacc.c:1646 */ ++#line 5947 "util/configparser.c" break; - case 480: - #line 2262 "./util/configparser.y" - case 402: -#line 1890 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 481: ++#line 2263 "./util/configparser.y" + { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); while((p=strsep(&s, " \t\n")) != NULL) { @@@ -5951,12 -4683,12 +5960,12 @@@ } free((yyvsp[0].str)); } - #line 5955 "util/configparser.c" -#line 4687 "util/configparser.c" /* yacc.c:1646 */ ++#line 5964 "util/configparser.c" break; - case 481: - #line 2276 "./util/configparser.y" - case 403: -#line 1904 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 482: ++#line 2277 "./util/configparser.y" + { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); @@@ -5975,12 -4707,12 +5984,12 @@@ } } } - #line 5979 "util/configparser.c" -#line 4711 "util/configparser.c" /* yacc.c:1646 */ ++#line 5988 "util/configparser.c" break; - case 482: - #line 2297 "./util/configparser.y" - case 404: -#line 1925 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 483: ++#line 2298 "./util/configparser.y" + { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); @@@ -5999,12 -4731,12 +6008,12 @@@ } } } - #line 6003 "util/configparser.c" -#line 4735 "util/configparser.c" /* yacc.c:1646 */ ++#line 6012 "util/configparser.c" break; - case 483: - #line 2318 "./util/configparser.y" - case 405: -#line 1946 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 484: ++#line 2319 "./util/configparser.y" + { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { @@@ -6014,12 -4746,12 +6023,12 @@@ free((yyvsp[0].str)); } } - #line 6018 "util/configparser.c" -#line 4750 "util/configparser.c" /* yacc.c:1646 */ ++#line 6027 "util/configparser.c" break; - case 484: - #line 2330 "./util/configparser.y" - case 406: -#line 1958 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 485: ++#line 2331 "./util/configparser.y" + { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { @@@ -6029,12 -4761,12 +6038,12 @@@ free((yyvsp[0].str)); } } - #line 6033 "util/configparser.c" -#line 4765 "util/configparser.c" /* yacc.c:1646 */ ++#line 6042 "util/configparser.c" break; - case 485: - #line 2342 "./util/configparser.y" - case 407: -#line 1970 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 486: ++#line 2343 "./util/configparser.y" + { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { @@@ -6044,24 -4776,24 +6053,24 @@@ free((yyvsp[0].str)); } } - #line 6048 "util/configparser.c" -#line 4780 "util/configparser.c" /* yacc.c:1646 */ ++#line 6057 "util/configparser.c" break; - case 486: - #line 2354 "./util/configparser.y" - case 408: -#line 1982 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 487: ++#line 2355 "./util/configparser.y" + { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, (yyvsp[-1].str), (yyvsp[0].str))) { yyerror("out of memory"); } } - #line 6060 "util/configparser.c" -#line 4792 "util/configparser.c" /* yacc.c:1646 */ ++#line 6069 "util/configparser.c" break; - case 487: - #line 2363 "./util/configparser.y" - case 409: -#line 1991 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 488: ++#line 2364 "./util/configparser.y" + { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); @@@ -6080,74 -4812,74 +6089,74 @@@ } } } - #line 6084 "util/configparser.c" -#line 4816 "util/configparser.c" /* yacc.c:1646 */ ++#line 6093 "util/configparser.c" break; - case 488: - #line 2384 "./util/configparser.y" - { - OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); - case 410: -#line 2012 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 489: ++#line 2385 "./util/configparser.y" ++ { + OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 6096 "util/configparser.c" -#line 4828 "util/configparser.c" /* yacc.c:1646 */ ++#line 6105 "util/configparser.c" break; - case 489: - #line 2394 "./util/configparser.y" - { - OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); - case 411: -#line 2022 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 490: ++#line 2395 "./util/configparser.y" ++ { + OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 6108 "util/configparser.c" -#line 4840 "util/configparser.c" /* yacc.c:1646 */ ++#line 6117 "util/configparser.c" break; - case 490: - #line 2403 "./util/configparser.y" - { - OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) - yyerror("memory size expected"); - free((yyvsp[0].str)); - } - #line 6119 "util/configparser.c" - case 412: -#line 2031 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 491: ++#line 2404 "./util/configparser.y" ++{ + OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) + yyerror("memory size expected"); + free((yyvsp[0].str)); + } -#line 4851 "util/configparser.c" /* yacc.c:1646 */ ++#line 6128 "util/configparser.c" break; - case 491: - #line 2411 "./util/configparser.y" - case 413: -#line 2039 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 492: ++#line 2412 "./util/configparser.y" + { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 6130 "util/configparser.c" -#line 4862 "util/configparser.c" /* yacc.c:1646 */ ++#line 6139 "util/configparser.c" break; - case 492: - #line 2419 "./util/configparser.y" - { - OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->ip_ratelimit_slabs = atoi((yyvsp[0].str)); - if(!is_pow2(cfg_parser->cfg->ip_ratelimit_slabs)) - yyerror("must be a power of 2"); - } - free((yyvsp[0].str)); - } - #line 6146 "util/configparser.c" - case 414: -#line 2047 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 493: ++#line 2420 "./util/configparser.y" ++{ + OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) + yyerror("number expected"); + else { + cfg_parser->cfg->ip_ratelimit_slabs = atoi((yyvsp[0].str)); + if(!is_pow2(cfg_parser->cfg->ip_ratelimit_slabs)) + yyerror("must be a power of 2"); + } + free((yyvsp[0].str)); + } -#line 4878 "util/configparser.c" /* yacc.c:1646 */ ++#line 6155 "util/configparser.c" break; - case 493: - #line 2432 "./util/configparser.y" - case 415: -#line 2060 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 494: ++#line 2433 "./util/configparser.y" + { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -6158,12 -4890,12 +6167,12 @@@ } free((yyvsp[0].str)); } - #line 6162 "util/configparser.c" -#line 4894 "util/configparser.c" /* yacc.c:1646 */ ++#line 6171 "util/configparser.c" break; - case 494: - #line 2445 "./util/configparser.y" - case 416: -#line 2073 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 495: ++#line 2446 "./util/configparser.y" + { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { yyerror("number expected"); @@@ -6176,12 -4908,12 +6185,12 @@@ "ratelimit-for-domain"); } } - #line 6180 "util/configparser.c" -#line 4912 "util/configparser.c" /* yacc.c:1646 */ ++#line 6189 "util/configparser.c" break; - case 495: - #line 2460 "./util/configparser.y" - case 417: -#line 2088 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 496: ++#line 2461 "./util/configparser.y" + { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { yyerror("number expected"); @@@ -6194,69 -4926,81 +6203,81 @@@ "ratelimit-below-domain"); } } - #line 6198 "util/configparser.c" -#line 4930 "util/configparser.c" /* yacc.c:1646 */ ++#line 6207 "util/configparser.c" break; - case 496: - #line 2475 "./util/configparser.y" - { - OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); - case 418: -#line 2103 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 497: ++#line 2476 "./util/configparser.y" ++ { + OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } - #line 6210 "util/configparser.c" -#line 4942 "util/configparser.c" /* yacc.c:1646 */ ++#line 6219 "util/configparser.c" break; - case 497: - #line 2484 "./util/configparser.y" - { - OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); - case 419: -#line 2112 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 498: ++#line 2485 "./util/configparser.y" ++ { + OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 6222 "util/configparser.c" -#line 4954 "util/configparser.c" /* yacc.c:1646 */ ++#line 6231 "util/configparser.c" break; - case 498: - #line 2493 "./util/configparser.y" - { - case 420: -#line 2121 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 499: ++#line 2494 "./util/configparser.y" ++{ + OUTYY(("P(server_outbound_msg_retry:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->outbound_msg_retry = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } -#line 4966 "util/configparser.c" /* yacc.c:1646 */ ++#line 6243 "util/configparser.c" + break; + - case 421: -#line 2130 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 500: ++#line 2503 "./util/configparser.y" ++ { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } - #line 6231 "util/configparser.c" -#line 4975 "util/configparser.c" /* yacc.c:1646 */ ++#line 6252 "util/configparser.c" break; - case 499: - #line 2499 "./util/configparser.y" - { - OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); - case 422: -#line 2136 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 501: ++#line 2509 "./util/configparser.y" ++ { + OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) yyerror("number expected"); else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 6243 "util/configparser.c" -#line 4987 "util/configparser.c" /* yacc.c:1646 */ ++#line 6264 "util/configparser.c" break; - case 500: - #line 2508 "./util/configparser.y" - { - OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); - case 423: -#line 2145 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 502: ++#line 2518 "./util/configparser.y" ++ { + OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 6255 "util/configparser.c" -#line 4999 "util/configparser.c" /* yacc.c:1646 */ ++#line 6276 "util/configparser.c" break; - case 501: - #line 2517 "./util/configparser.y" - case 424: -#line 2154 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 503: ++#line 2527 "./util/configparser.y" + { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6264,12 -5008,12 +6285,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6268 "util/configparser.c" -#line 5012 "util/configparser.c" /* yacc.c:1646 */ ++#line 6289 "util/configparser.c" break; - case 502: - #line 2527 "./util/configparser.y" - case 425: -#line 2164 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 504: ++#line 2537 "./util/configparser.y" + { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6277,62 -5021,12 +6298,62 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6281 "util/configparser.c" -#line 5025 "util/configparser.c" /* yacc.c:1646 */ ++#line 6302 "util/configparser.c" break; - case 503: - #line 2537 "./util/configparser.y" - case 426: -#line 2174 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 505: ++#line 2547 "./util/configparser.y" + { + OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->pad_responses = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 6294 "util/configparser.c" ++#line 6315 "util/configparser.c" + break; + - case 504: - #line 2547 "./util/configparser.y" ++ case 506: ++#line 2557 "./util/configparser.y" + { + OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) + yyerror("number expected"); + else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } - #line 6306 "util/configparser.c" ++#line 6327 "util/configparser.c" + break; + - case 505: - #line 2556 "./util/configparser.y" ++ case 507: ++#line 2566 "./util/configparser.y" + { + OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->pad_queries = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 6319 "util/configparser.c" ++#line 6340 "util/configparser.c" + break; + - case 506: - #line 2566 "./util/configparser.y" ++ case 508: ++#line 2576 "./util/configparser.y" + { + OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) + yyerror("number expected"); + else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } - #line 6331 "util/configparser.c" ++#line 6352 "util/configparser.c" + break; + - case 507: - #line 2575 "./util/configparser.y" ++ case 509: ++#line 2585 "./util/configparser.y" + { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@@ -6343,12 -5037,12 +6364,12 @@@ #endif free((yyvsp[0].str)); } - #line 6347 "util/configparser.c" -#line 5041 "util/configparser.c" /* yacc.c:1646 */ ++#line 6368 "util/configparser.c" break; - case 508: - #line 2588 "./util/configparser.y" - case 427: -#line 2187 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 510: ++#line 2598 "./util/configparser.y" + { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@@ -6359,12 -5053,12 +6380,12 @@@ #endif free((yyvsp[0].str)); } - #line 6363 "util/configparser.c" -#line 5057 "util/configparser.c" /* yacc.c:1646 */ ++#line 6384 "util/configparser.c" break; - case 509: - #line 2601 "./util/configparser.y" - case 428: -#line 2200 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 511: ++#line 2611 "./util/configparser.y" + { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ipsecmod_hook); @@@ -6374,12 -5068,12 +6395,12 @@@ free((yyvsp[0].str)); #endif } - #line 6378 "util/configparser.c" -#line 5072 "util/configparser.c" /* yacc.c:1646 */ ++#line 6399 "util/configparser.c" break; - case 510: - #line 2613 "./util/configparser.y" - case 429: -#line 2212 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 512: ++#line 2623 "./util/configparser.y" + { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@@ -6391,12 -5085,12 +6412,12 @@@ free((yyvsp[0].str)); #endif } - #line 6395 "util/configparser.c" -#line 5089 "util/configparser.c" /* yacc.c:1646 */ ++#line 6416 "util/configparser.c" break; - case 511: - #line 2627 "./util/configparser.y" - case 430: -#line 2226 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 513: ++#line 2637 "./util/configparser.y" + { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[0].str))) @@@ -6406,12 -5100,12 +6427,12 @@@ free((yyvsp[0].str)); #endif } - #line 6410 "util/configparser.c" -#line 5104 "util/configparser.c" /* yacc.c:1646 */ ++#line 6431 "util/configparser.c" break; - case 512: - #line 2639 "./util/configparser.y" - case 431: -#line 2238 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 514: ++#line 2649 "./util/configparser.y" + { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@@ -6423,39 -5117,12 +6444,39 @@@ free((yyvsp[0].str)); #endif } - #line 6427 "util/configparser.c" -#line 5121 "util/configparser.c" /* yacc.c:1646 */ ++#line 6448 "util/configparser.c" break; - case 513: - #line 2653 "./util/configparser.y" - case 432: -#line 2252 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 515: ++#line 2663 "./util/configparser.y" + { + OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); + if(!cfg_str2list_insert( + &cfg_parser->cfg->edns_client_strings, (yyvsp[-1].str), (yyvsp[0].str))) + fatal_exit("out of memory adding " + "edns-client-string"); + } - #line 6439 "util/configparser.c" ++#line 6460 "util/configparser.c" + break; + - case 514: - #line 2662 "./util/configparser.y" ++ case 516: ++#line 2672 "./util/configparser.y" + { + OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("option code expected"); + else if(atoi((yyvsp[0].str)) > 65535 || atoi((yyvsp[0].str)) < 0) + yyerror("option code must be in interval [0, 65535]"); + else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + + } - #line 6454 "util/configparser.c" ++#line 6475 "util/configparser.c" + break; + - case 515: - #line 2674 "./util/configparser.y" ++ case 517: ++#line 2684 "./util/configparser.y" + { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) yyerror("stub name override, there must be one name " @@@ -6463,56 -5130,56 +6484,56 @@@ free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } - #line 6467 "util/configparser.c" -#line 5134 "util/configparser.c" /* yacc.c:1646 */ ++#line 6488 "util/configparser.c" break; - case 516: - #line 2684 "./util/configparser.y" - case 433: -#line 2262 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 518: ++#line 2694 "./util/configparser.y" + { OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) yyerror("out of memory"); } - #line 6477 "util/configparser.c" -#line 5144 "util/configparser.c" /* yacc.c:1646 */ ++#line 6498 "util/configparser.c" break; - case 517: - #line 2691 "./util/configparser.y" - case 434: -#line 2269 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 519: ++#line 2701 "./util/configparser.y" + { OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) yyerror("out of memory"); } - #line 6487 "util/configparser.c" -#line 5154 "util/configparser.c" /* yacc.c:1646 */ ++#line 6508 "util/configparser.c" break; - case 518: - #line 2698 "./util/configparser.y" - case 435: -#line 2276 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 520: ++#line 2708 "./util/configparser.y" + { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6499 "util/configparser.c" -#line 5166 "util/configparser.c" /* yacc.c:1646 */ ++#line 6520 "util/configparser.c" break; - case 519: - #line 2707 "./util/configparser.y" - case 436: -#line 2285 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 521: ++#line 2717 "./util/configparser.y" + { OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6511 "util/configparser.c" -#line 5178 "util/configparser.c" /* yacc.c:1646 */ ++#line 6532 "util/configparser.c" break; - case 520: - #line 2716 "./util/configparser.y" - case 437: -#line 2294 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 522: ++#line 2726 "./util/configparser.y" + { OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6520,25 -5187,12 +6541,25 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6524 "util/configparser.c" -#line 5191 "util/configparser.c" /* yacc.c:1646 */ ++#line 6545 "util/configparser.c" break; - case 521: - #line 2726 "./util/configparser.y" - case 438: -#line 2304 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 523: ++#line 2736 "./util/configparser.y" + { + OUTYY(("P(stub-tcp-upstream:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->stubs->tcp_upstream = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 6537 "util/configparser.c" ++#line 6558 "util/configparser.c" + break; + - case 522: - #line 2736 "./util/configparser.y" ++ case 524: ++#line 2746 "./util/configparser.y" + { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6546,12 -5200,12 +6567,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6550 "util/configparser.c" -#line 5204 "util/configparser.c" /* yacc.c:1646 */ ++#line 6571 "util/configparser.c" break; - case 523: - #line 2746 "./util/configparser.y" - case 439: -#line 2314 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 525: ++#line 2756 "./util/configparser.y" + { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) yyerror("forward name override, there must be one " @@@ -6559,56 -5213,56 +6580,56 @@@ free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } - #line 6563 "util/configparser.c" -#line 5217 "util/configparser.c" /* yacc.c:1646 */ ++#line 6584 "util/configparser.c" break; - case 524: - #line 2756 "./util/configparser.y" - case 440: -#line 2324 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 526: ++#line 2766 "./util/configparser.y" + { OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) yyerror("out of memory"); } - #line 6573 "util/configparser.c" -#line 5227 "util/configparser.c" /* yacc.c:1646 */ ++#line 6594 "util/configparser.c" break; - case 525: - #line 2763 "./util/configparser.y" - case 441: -#line 2331 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 527: ++#line 2773 "./util/configparser.y" + { OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) yyerror("out of memory"); } - #line 6583 "util/configparser.c" -#line 5237 "util/configparser.c" /* yacc.c:1646 */ ++#line 6604 "util/configparser.c" break; - case 526: - #line 2770 "./util/configparser.y" - case 442: -#line 2338 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 528: ++#line 2780 "./util/configparser.y" + { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6595 "util/configparser.c" -#line 5249 "util/configparser.c" /* yacc.c:1646 */ ++#line 6616 "util/configparser.c" break; - case 527: - #line 2779 "./util/configparser.y" - case 443: -#line 2347 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 529: ++#line 2789 "./util/configparser.y" + { OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6607 "util/configparser.c" -#line 5261 "util/configparser.c" /* yacc.c:1646 */ ++#line 6628 "util/configparser.c" break; - case 528: - #line 2788 "./util/configparser.y" - case 444: -#line 2356 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 530: ++#line 2798 "./util/configparser.y" + { OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6616,25 -5270,12 +6637,25 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6620 "util/configparser.c" -#line 5274 "util/configparser.c" /* yacc.c:1646 */ ++#line 6641 "util/configparser.c" break; - case 529: - #line 2798 "./util/configparser.y" - case 445: -#line 2366 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 531: ++#line 2808 "./util/configparser.y" + { + OUTYY(("P(forward-tcp-upstream:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->forwards->tcp_upstream = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 6633 "util/configparser.c" ++#line 6654 "util/configparser.c" + break; + - case 530: - #line 2808 "./util/configparser.y" ++ case 532: ++#line 2818 "./util/configparser.y" + { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) yyerror("auth name override, there must be one name " @@@ -6642,79 -5283,53 +6663,79 @@@ free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } - #line 6646 "util/configparser.c" -#line 5287 "util/configparser.c" /* yacc.c:1646 */ ++#line 6667 "util/configparser.c" break; - case 531: - #line 2818 "./util/configparser.y" - case 446: -#line 2376 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 533: ++#line 2828 "./util/configparser.y" + { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } - #line 6656 "util/configparser.c" -#line 5297 "util/configparser.c" /* yacc.c:1646 */ ++#line 6677 "util/configparser.c" break; - case 532: - #line 2825 "./util/configparser.y" - case 447: -#line 2383 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 534: ++#line 2835 "./util/configparser.y" + { OUTYY(("P(master:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } - #line 6666 "util/configparser.c" -#line 5307 "util/configparser.c" /* yacc.c:1646 */ ++#line 6687 "util/configparser.c" break; - case 533: - #line 2832 "./util/configparser.y" - case 448: -#line 2390 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 535: ++#line 2842 "./util/configparser.y" + { OUTYY(("P(url:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } - #line 6676 "util/configparser.c" -#line 5317 "util/configparser.c" /* yacc.c:1646 */ ++#line 6697 "util/configparser.c" break; - case 534: - #line 2839 "./util/configparser.y" - case 449: -#line 2397 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 536: ++#line 2849 "./util/configparser.y" + { OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, (yyvsp[0].str))) yyerror("out of memory"); } - #line 6687 "util/configparser.c" -#line 5328 "util/configparser.c" /* yacc.c:1646 */ ++#line 6708 "util/configparser.c" break; - case 535: - #line 2847 "./util/configparser.y" - case 450: -#line 2405 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 537: ++#line 2857 "./util/configparser.y" + { + OUTYY(("P(zonemd-check:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->auths->zonemd_check = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 6700 "util/configparser.c" ++#line 6721 "util/configparser.c" + break; + - case 536: - #line 2857 "./util/configparser.y" ++ case 538: ++#line 2867 "./util/configparser.y" + { + OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->auths->zonemd_reject_absence = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 6713 "util/configparser.c" ++#line 6734 "util/configparser.c" + break; + - case 537: - #line 2867 "./util/configparser.y" ++ case 539: ++#line 2877 "./util/configparser.y" + { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6722,12 -5337,12 +6743,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6726 "util/configparser.c" -#line 5341 "util/configparser.c" /* yacc.c:1646 */ ++#line 6747 "util/configparser.c" break; - case 538: - #line 2877 "./util/configparser.y" - case 451: -#line 2415 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 540: ++#line 2887 "./util/configparser.y" + { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6735,12 -5350,12 +6756,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6739 "util/configparser.c" -#line 5354 "util/configparser.c" /* yacc.c:1646 */ ++#line 6760 "util/configparser.c" break; - case 539: - #line 2887 "./util/configparser.y" - case 452: -#line 2425 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 541: ++#line 2897 "./util/configparser.y" + { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6748,12 -5363,12 +6769,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6752 "util/configparser.c" -#line 5367 "util/configparser.c" /* yacc.c:1646 */ ++#line 6773 "util/configparser.c" break; - case 540: - #line 2897 "./util/configparser.y" - case 453: -#line 2435 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 542: ++#line 2907 "./util/configparser.y" + { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) yyerror("view name override, there must be one " @@@ -6761,12 -5376,12 +6782,12 @@@ free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } - #line 6765 "util/configparser.c" -#line 5380 "util/configparser.c" /* yacc.c:1646 */ ++#line 6786 "util/configparser.c" break; - - case 454: -#line 2445 "./util/configparser.y" /* yacc.c:1646 */ - { + - case 541: - #line 2907 "./util/configparser.y" ++ case 543: ++#line 2917 "./util/configparser.y" + { OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 && @@@ -6796,26 -5404,19 +6817,26 @@@ local_zones_nodefault, (yyvsp[-1].str))) fatal_exit("out of memory adding local-zone"); free((yyvsp[0].str)); +#ifdef USE_IPSET + } else if(strcmp((yyvsp[0].str), "ipset")==0) { + if(!cfg_strlist_insert(&cfg_parser->cfg->views-> + local_zones_ipset, (yyvsp[-1].str))) + fatal_exit("out of memory adding local-zone"); + free((yyvsp[0].str)); +#endif } else { if(!cfg_str2list_insert( - &cfg_parser->cfg->views->local_zones, + &cfg_parser->cfg->views->local_zones, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding local-zone"); } } - #line 6814 "util/configparser.c" -#line 5415 "util/configparser.c" /* yacc.c:1646 */ ++#line 6835 "util/configparser.c" break; - case 542: - #line 2953 "./util/configparser.y" - case 455: -#line 2477 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 544: ++#line 2963 "./util/configparser.y" + { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); if(!cfg_str2list_insert( @@@ -6823,34 -5424,34 +6844,34 @@@ fatal_exit("out of memory adding per-view " "response-ip action"); } - #line 6827 "util/configparser.c" -#line 5428 "util/configparser.c" /* yacc.c:1646 */ ++#line 6848 "util/configparser.c" break; - case 543: - #line 2963 "./util/configparser.y" - case 456: -#line 2487 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 545: ++#line 2973 "./util/configparser.y" + { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } - #line 6838 "util/configparser.c" -#line 5439 "util/configparser.c" /* yacc.c:1646 */ ++#line 6859 "util/configparser.c" break; - case 544: - #line 2971 "./util/configparser.y" - case 457: -#line 2495 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 546: ++#line 2981 "./util/configparser.y" + { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { fatal_exit("out of memory adding local-data"); } } - #line 6849 "util/configparser.c" -#line 5450 "util/configparser.c" /* yacc.c:1646 */ ++#line 6870 "util/configparser.c" break; - case 545: - #line 2979 "./util/configparser.y" - case 458: -#line 2503 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 547: ++#line 2989 "./util/configparser.y" + { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); ptr = cfg_ptr_reverse((yyvsp[0].str)); @@@ -6863,32 -5464,32 +6884,32 @@@ yyerror("local-data-ptr could not be reversed"); } } - #line 6867 "util/configparser.c" -#line 5468 "util/configparser.c" /* yacc.c:1646 */ ++#line 6888 "util/configparser.c" break; - case 546: - #line 2994 "./util/configparser.y" - case 459: -#line 2518 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 548: ++#line 3004 "./util/configparser.y" + { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6879 "util/configparser.c" -#line 5480 "util/configparser.c" /* yacc.c:1646 */ ++#line 6900 "util/configparser.c" break; - case 547: - #line 3003 "./util/configparser.y" - { - OUTYY(("\nP(remote-control:)\n")); - case 460: -#line 2527 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 549: ++#line 3013 "./util/configparser.y" ++ { + OUTYY(("\nP(remote-control:)\n")); } - #line 6887 "util/configparser.c" -#line 5488 "util/configparser.c" /* yacc.c:1646 */ ++#line 6908 "util/configparser.c" break; - case 558: - #line 3014 "./util/configparser.y" - case 471: -#line 2538 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 560: ++#line 3024 "./util/configparser.y" + { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6896,233 -5497,158 +6917,233 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6900 "util/configparser.c" -#line 5501 "util/configparser.c" /* yacc.c:1646 */ ++#line 6921 "util/configparser.c" break; - case 559: - #line 3024 "./util/configparser.y" - case 472: -#line 2548 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 561: ++#line 3034 "./util/configparser.y" + { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("control port number expected"); else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 6912 "util/configparser.c" -#line 5513 "util/configparser.c" /* yacc.c:1646 */ ++#line 6933 "util/configparser.c" break; - case 560: - #line 3033 "./util/configparser.y" - case 473: -#line 2557 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 562: ++#line 3043 "./util/configparser.y" + { OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } - #line 6922 "util/configparser.c" -#line 5523 "util/configparser.c" /* yacc.c:1646 */ ++#line 6943 "util/configparser.c" break; - case 561: - #line 3040 "./util/configparser.y" - case 474: -#line 2564 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 563: ++#line 3050 "./util/configparser.y" + { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6932 "util/configparser.c" -#line 5533 "util/configparser.c" /* yacc.c:1646 */ ++#line 6953 "util/configparser.c" break; - case 562: - #line 3047 "./util/configparser.y" - case 475: -#line 2571 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 564: ++#line 3057 "./util/configparser.y" + { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_key_file); cfg_parser->cfg->server_key_file = (yyvsp[0].str); } - #line 6942 "util/configparser.c" -#line 5543 "util/configparser.c" /* yacc.c:1646 */ ++#line 6963 "util/configparser.c" break; - case 563: - #line 3054 "./util/configparser.y" - case 476: -#line 2578 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 565: ++#line 3064 "./util/configparser.y" + { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_cert_file); cfg_parser->cfg->server_cert_file = (yyvsp[0].str); } - #line 6952 "util/configparser.c" -#line 5553 "util/configparser.c" /* yacc.c:1646 */ ++#line 6973 "util/configparser.c" break; - case 564: - #line 3061 "./util/configparser.y" - case 477: -#line 2585 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 566: ++#line 3071 "./util/configparser.y" + { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_key_file); cfg_parser->cfg->control_key_file = (yyvsp[0].str); } - #line 6962 "util/configparser.c" -#line 5563 "util/configparser.c" /* yacc.c:1646 */ ++#line 6983 "util/configparser.c" break; - case 565: - #line 3068 "./util/configparser.y" - case 478: -#line 2592 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 567: ++#line 3078 "./util/configparser.y" + { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_cert_file); cfg_parser->cfg->control_cert_file = (yyvsp[0].str); } - #line 6972 "util/configparser.c" -#line 5573 "util/configparser.c" /* yacc.c:1646 */ ++#line 6993 "util/configparser.c" break; - case 566: - #line 3075 "./util/configparser.y" - case 479: -#line 2599 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 568: ++#line 3085 "./util/configparser.y" + { OUTYY(("\nP(dnstap:)\n")); } - #line 6980 "util/configparser.c" -#line 5581 "util/configparser.c" /* yacc.c:1646 */ ++#line 7001 "util/configparser.c" break; - case 588: - #line 3095 "./util/configparser.y" - case 494: -#line 2616 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 590: ++#line 3105 "./util/configparser.y" + { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6992 "util/configparser.c" -#line 5593 "util/configparser.c" /* yacc.c:1646 */ ++#line 7013 "util/configparser.c" break; - case 589: - #line 3104 "./util/configparser.y" - case 495: -#line 2625 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 591: ++#line 3114 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->dnstap_bidirectional = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 7005 "util/configparser.c" ++#line 7026 "util/configparser.c" + break; + - case 590: - #line 3114 "./util/configparser.y" ++ case 592: ++#line 3124 "./util/configparser.y" + { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_socket_path); cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); } - #line 7015 "util/configparser.c" -#line 5603 "util/configparser.c" /* yacc.c:1646 */ ++#line 7036 "util/configparser.c" break; - case 591: - #line 3121 "./util/configparser.y" - case 496: -#line 2632 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 593: ++#line 3131 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str))); + free(cfg_parser->cfg->dnstap_ip); + cfg_parser->cfg->dnstap_ip = (yyvsp[0].str); + } - #line 7025 "util/configparser.c" ++#line 7046 "util/configparser.c" + break; + - case 592: - #line 3128 "./util/configparser.y" ++ case 594: ++#line 3138 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } - #line 7037 "util/configparser.c" ++#line 7058 "util/configparser.c" + break; + - case 593: - #line 3137 "./util/configparser.y" ++ case 595: ++#line 3147 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str))); + free(cfg_parser->cfg->dnstap_tls_server_name); + cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str); + } - #line 7047 "util/configparser.c" ++#line 7068 "util/configparser.c" + break; + - case 594: - #line 3144 "./util/configparser.y" ++ case 596: ++#line 3154 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str))); + free(cfg_parser->cfg->dnstap_tls_cert_bundle); + cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str); + } - #line 7057 "util/configparser.c" ++#line 7078 "util/configparser.c" + break; + - case 595: - #line 3151 "./util/configparser.y" ++ case 597: ++#line 3161 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str))); + free(cfg_parser->cfg->dnstap_tls_client_key_file); + cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str); + } - #line 7067 "util/configparser.c" ++#line 7088 "util/configparser.c" + break; + - case 596: - #line 3158 "./util/configparser.y" ++ case 598: ++#line 3168 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str))); + free(cfg_parser->cfg->dnstap_tls_client_cert_file); + cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str); + } - #line 7077 "util/configparser.c" ++#line 7098 "util/configparser.c" + break; + - case 597: - #line 3165 "./util/configparser.y" ++ case 599: ++#line 3175 "./util/configparser.y" + { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 7089 "util/configparser.c" -#line 5615 "util/configparser.c" /* yacc.c:1646 */ ++#line 7110 "util/configparser.c" break; - case 598: - #line 3174 "./util/configparser.y" - case 497: -#line 2641 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 600: ++#line 3184 "./util/configparser.y" + { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 7101 "util/configparser.c" -#line 5627 "util/configparser.c" /* yacc.c:1646 */ ++#line 7122 "util/configparser.c" break; - case 599: - #line 3183 "./util/configparser.y" - case 498: -#line 2650 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 601: ++#line 3193 "./util/configparser.y" + { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } - #line 7111 "util/configparser.c" -#line 5637 "util/configparser.c" /* yacc.c:1646 */ ++#line 7132 "util/configparser.c" break; - case 600: - #line 3190 "./util/configparser.y" - case 499: -#line 2657 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 602: ++#line 3200 "./util/configparser.y" + { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } - #line 7121 "util/configparser.c" -#line 5647 "util/configparser.c" /* yacc.c:1646 */ ++#line 7142 "util/configparser.c" break; - case 601: - #line 3197 "./util/configparser.y" - case 500: -#line 2664 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 603: ++#line 3207 "./util/configparser.y" + { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -7130,12 -5656,12 +7151,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 7134 "util/configparser.c" -#line 5660 "util/configparser.c" /* yacc.c:1646 */ ++#line 7155 "util/configparser.c" break; - case 602: - #line 3207 "./util/configparser.y" - case 501: -#line 2674 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 604: ++#line 3217 "./util/configparser.y" + { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -7143,12 -5669,12 +7164,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 7147 "util/configparser.c" -#line 5673 "util/configparser.c" /* yacc.c:1646 */ ++#line 7168 "util/configparser.c" break; - case 603: - #line 3217 "./util/configparser.y" - case 502: -#line 2684 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 605: ++#line 3227 "./util/configparser.y" + { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -7156,12 -5682,12 +7177,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 7160 "util/configparser.c" -#line 5686 "util/configparser.c" /* yacc.c:1646 */ ++#line 7181 "util/configparser.c" break; - case 604: - #line 3227 "./util/configparser.y" - case 503: -#line 2694 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 606: ++#line 3237 "./util/configparser.y" + { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -7169,12 -5695,12 +7190,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 7173 "util/configparser.c" -#line 5699 "util/configparser.c" /* yacc.c:1646 */ ++#line 7194 "util/configparser.c" break; - case 605: - #line 3237 "./util/configparser.y" - case 504: -#line 2704 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 607: ++#line 3247 "./util/configparser.y" + { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -7182,12 -5708,12 +7203,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 7186 "util/configparser.c" -#line 5712 "util/configparser.c" /* yacc.c:1646 */ ++#line 7207 "util/configparser.c" break; - case 606: - #line 3247 "./util/configparser.y" - case 505: -#line 2714 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 608: ++#line 3257 "./util/configparser.y" + { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -7195,48 -5721,30 +7216,48 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 7199 "util/configparser.c" -#line 5725 "util/configparser.c" /* yacc.c:1646 */ ++#line 7220 "util/configparser.c" break; - case 607: - #line 3257 "./util/configparser.y" - { - OUTYY(("\nP(python:)\n")); - case 506: -#line 2724 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 609: ++#line 3267 "./util/configparser.y" ++ { + OUTYY(("\nP(python:)\n")); } - #line 7207 "util/configparser.c" -#line 5733 "util/configparser.c" /* yacc.c:1646 */ ++#line 7228 "util/configparser.c" break; - case 611: - #line 3266 "./util/configparser.y" - case 510: -#line 2733 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 613: ++#line 3276 "./util/configparser.y" + { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->python_script); - cfg_parser->cfg->python_script = (yyvsp[0].str); + if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str))) + yyerror("out of memory"); } - #line 7217 "util/configparser.c" -#line 5743 "util/configparser.c" /* yacc.c:1646 */ ++#line 7238 "util/configparser.c" break; - case 612: - #line 3272 "./util/configparser.y" - case 511: -#line 2739 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 614: ++#line 3282 "./util/configparser.y" + { + OUTYY(("\nP(dynlib:)\n")); + } - #line 7225 "util/configparser.c" ++#line 7246 "util/configparser.c" + break; + - case 616: - #line 3281 "./util/configparser.y" ++ case 618: ++#line 3291 "./util/configparser.y" + { + OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str))) + yyerror("out of memory"); + } - #line 7235 "util/configparser.c" ++#line 7256 "util/configparser.c" + break; + - case 617: - #line 3287 "./util/configparser.y" ++ case 619: ++#line 3297 "./util/configparser.y" + { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -7244,185 -5752,188 +7265,185 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 7248 "util/configparser.c" -#line 5756 "util/configparser.c" /* yacc.c:1646 */ ++#line 7269 "util/configparser.c" break; - case 618: - #line 3297 "./util/configparser.y" - case 512: -#line 2749 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 620: ++#line 3307 "./util/configparser.y" + { OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); cfg_parser->cfg->log_identity = (yyvsp[0].str); } - #line 7258 "util/configparser.c" -#line 5766 "util/configparser.c" /* yacc.c:1646 */ ++#line 7279 "util/configparser.c" break; - case 619: - #line 3304 "./util/configparser.y" - case 513: -#line 2756 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 621: ++#line 3314 "./util/configparser.y" + { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_actions, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } - #line 7270 "util/configparser.c" -#line 5778 "util/configparser.c" /* yacc.c:1646 */ ++#line 7291 "util/configparser.c" break; - case 620: - #line 3313 "./util/configparser.y" - case 514: -#line 2765 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 622: ++#line 3323 "./util/configparser.y" + { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } - #line 7281 "util/configparser.c" -#line 5789 "util/configparser.c" /* yacc.c:1646 */ ++#line 7302 "util/configparser.c" break; - case 621: - #line 3321 "./util/configparser.y" - case 515: -#line 2773 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 623: ++#line 3331 "./util/configparser.y" + { OUTYY(("\nP(dnscrypt:)\n")); } - #line 7289 "util/configparser.c" -#line 5797 "util/configparser.c" /* yacc.c:1646 */ ++#line 7310 "util/configparser.c" break; - case 634: - #line 3337 "./util/configparser.y" - case 528: -#line 2789 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 636: ++#line 3347 "./util/configparser.y" + { OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 7301 "util/configparser.c" -#line 5809 "util/configparser.c" /* yacc.c:1646 */ ++#line 7322 "util/configparser.c" break; - case 635: - #line 3347 "./util/configparser.y" - case 529: -#line 2799 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 637: ++#line 3357 "./util/configparser.y" + { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("port number expected"); else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 7313 "util/configparser.c" -#line 5821 "util/configparser.c" /* yacc.c:1646 */ ++#line 7334 "util/configparser.c" break; - case 636: - #line 3356 "./util/configparser.y" - case 530: -#line 2808 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 638: ++#line 3366 "./util/configparser.y" + { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } - #line 7323 "util/configparser.c" -#line 5831 "util/configparser.c" /* yacc.c:1646 */ ++#line 7344 "util/configparser.c" break; - case 637: - #line 3363 "./util/configparser.y" - case 531: -#line 2815 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 639: ++#line 3373 "./util/configparser.y" + { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) log_warn("dnscrypt-provider-cert %s is a duplicate", (yyvsp[0].str)); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } - #line 7335 "util/configparser.c" -#line 5843 "util/configparser.c" /* yacc.c:1646 */ ++#line 7356 "util/configparser.c" break; - case 638: - #line 3372 "./util/configparser.y" - case 532: -#line 2824 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 640: ++#line 3382 "./util/configparser.y" + { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } - #line 7345 "util/configparser.c" -#line 5853 "util/configparser.c" /* yacc.c:1646 */ ++#line 7366 "util/configparser.c" break; - case 639: - #line 3379 "./util/configparser.y" - case 533: -#line 2831 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 641: ++#line 3389 "./util/configparser.y" + { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) log_warn("dnscrypt-secret-key: %s is a duplicate", (yyvsp[0].str)); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } - #line 7357 "util/configparser.c" -#line 5865 "util/configparser.c" /* yacc.c:1646 */ ++#line 7378 "util/configparser.c" break; - case 640: - #line 3388 "./util/configparser.y" - case 534: -#line 2840 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 642: ++#line 3398 "./util/configparser.y" + { - OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) - yyerror("memory size expected"); - free((yyvsp[0].str)); + OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) + yyerror("memory size expected"); + free((yyvsp[0].str)); } - #line 7368 "util/configparser.c" -#line 5876 "util/configparser.c" /* yacc.c:1646 */ ++#line 7389 "util/configparser.c" break; - case 641: - #line 3396 "./util/configparser.y" - case 535: -#line 2848 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 643: ++#line 3406 "./util/configparser.y" + { - OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi((yyvsp[0].str)); - if(!is_pow2(cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs)) - yyerror("must be a power of 2"); - } - free((yyvsp[0].str)); + OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) + yyerror("number expected"); + else { + cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi((yyvsp[0].str)); + if(!is_pow2(cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs)) + yyerror("must be a power of 2"); + } + free((yyvsp[0].str)); } - #line 7384 "util/configparser.c" -#line 5892 "util/configparser.c" /* yacc.c:1646 */ ++#line 7405 "util/configparser.c" break; - case 642: - #line 3409 "./util/configparser.y" - case 536: -#line 2861 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 644: ++#line 3419 "./util/configparser.y" + { - OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) - yyerror("memory size expected"); - free((yyvsp[0].str)); + OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) + yyerror("memory size expected"); + free((yyvsp[0].str)); } - #line 7395 "util/configparser.c" -#line 5903 "util/configparser.c" /* yacc.c:1646 */ ++#line 7416 "util/configparser.c" break; - case 643: - #line 3417 "./util/configparser.y" - case 537: -#line 2869 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 645: ++#line 3427 "./util/configparser.y" + { - OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi((yyvsp[0].str)); - if(!is_pow2(cfg_parser->cfg->dnscrypt_nonce_cache_slabs)) - yyerror("must be a power of 2"); - } - free((yyvsp[0].str)); + OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) + yyerror("number expected"); + else { + cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi((yyvsp[0].str)); + if(!is_pow2(cfg_parser->cfg->dnscrypt_nonce_cache_slabs)) + yyerror("must be a power of 2"); + } + free((yyvsp[0].str)); } - #line 7411 "util/configparser.c" -#line 5919 "util/configparser.c" /* yacc.c:1646 */ ++#line 7432 "util/configparser.c" break; - case 644: - #line 3430 "./util/configparser.y" - case 538: -#line 2882 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 646: ++#line 3440 "./util/configparser.y" + { OUTYY(("\nP(cachedb:)\n")); } - #line 7419 "util/configparser.c" -#line 5927 "util/configparser.c" /* yacc.c:1646 */ ++#line 7440 "util/configparser.c" break; - case 653: - #line 3441 "./util/configparser.y" - case 546: -#line 2892 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 655: ++#line 3451 "./util/configparser.y" + { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); - if(cfg_parser->cfg->cachedb_backend) - yyerror("cachedb backend override, there must be one " - "backend"); free(cfg_parser->cfg->cachedb_backend); cfg_parser->cfg->cachedb_backend = (yyvsp[0].str); #else @@@ -7430,14 -5941,17 +7451,14 @@@ free((yyvsp[0].str)); #endif } - #line 7434 "util/configparser.c" -#line 5945 "util/configparser.c" /* yacc.c:1646 */ ++#line 7455 "util/configparser.c" break; - case 654: - #line 3453 "./util/configparser.y" - case 547: -#line 2907 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 656: ++#line 3463 "./util/configparser.y" + { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); - if(cfg_parser->cfg->cachedb_secret) - yyerror("cachedb secret-seed override, there must be " - "only one secret"); free(cfg_parser->cfg->cachedb_secret); cfg_parser->cfg->cachedb_secret = (yyvsp[0].str); #else @@@ -7445,12 -5959,12 +7466,12 @@@ free((yyvsp[0].str)); #endif } - #line 7449 "util/configparser.c" -#line 5963 "util/configparser.c" /* yacc.c:1646 */ ++#line 7470 "util/configparser.c" break; - case 655: - #line 3465 "./util/configparser.y" - case 548: -#line 2922 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 657: ++#line 3475 "./util/configparser.y" + { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->redis_server_host); @@@ -7460,12 -5974,12 +7481,12 @@@ free((yyvsp[0].str)); #endif } - #line 7464 "util/configparser.c" -#line 5978 "util/configparser.c" /* yacc.c:1646 */ ++#line 7485 "util/configparser.c" break; - case 656: - #line 3477 "./util/configparser.y" - case 549: -#line 2934 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 658: ++#line 3487 "./util/configparser.y" + { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; OUTYY(("P(redis_server_port:%s)\n", (yyvsp[0].str))); @@@ -7478,12 -5992,12 +7499,12 @@@ #endif free((yyvsp[0].str)); } - #line 7482 "util/configparser.c" -#line 5996 "util/configparser.c" /* yacc.c:1646 */ ++#line 7503 "util/configparser.c" break; - case 657: - #line 3492 "./util/configparser.y" - case 550: -#line 2949 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 659: ++#line 3502 "./util/configparser.y" + { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@@ -7494,28 -6008,12 +7515,28 @@@ #endif free((yyvsp[0].str)); } - #line 7498 "util/configparser.c" -#line 6012 "util/configparser.c" /* yacc.c:1646 */ ++#line 7519 "util/configparser.c" break; - case 658: - #line 3505 "./util/configparser.y" - case 551: -#line 2962 "./util/configparser.y" /* yacc.c:1646 */ - { ++ case 660: ++#line 3515 "./util/configparser.y" + { + #if defined(USE_CACHEDB) && defined(USE_REDIS) + OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->redis_expire_records = (strcmp((yyvsp[0].str), "yes")==0); + #else + OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); + #endif + free((yyvsp[0].str)); + } - #line 7514 "util/configparser.c" ++#line 7535 "util/configparser.c" + break; + - case 659: - #line 3518 "./util/configparser.y" ++ case 661: ++#line 3528 "./util/configparser.y" + { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) yyerror("positive number expected"); @@@ -7524,56 -6022,11 +7545,56 @@@ fatal_exit("out of memory adding tcp connection limit"); } } - #line 7528 "util/configparser.c" -#line 6026 "util/configparser.c" /* yacc.c:1646 */ ++#line 7549 "util/configparser.c" + break; + - case 660: - #line 3529 "./util/configparser.y" ++ case 662: ++#line 3539 "./util/configparser.y" + { + OUTYY(("\nP(ipset:)\n")); + } - #line 7536 "util/configparser.c" ++#line 7557 "util/configparser.c" + break; + - case 665: - #line 3538 "./util/configparser.y" ++ case 667: ++#line 3548 "./util/configparser.y" + { + #ifdef USE_IPSET + OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); + if(cfg_parser->cfg->ipset_name_v4) + yyerror("ipset name v4 override, there must be one " + "name for ip v4"); + free(cfg_parser->cfg->ipset_name_v4); + cfg_parser->cfg->ipset_name_v4 = (yyvsp[0].str); + #else + OUTYY(("P(Compiled without ipset, ignoring)\n")); + free((yyvsp[0].str)); + #endif + } - #line 7554 "util/configparser.c" ++#line 7575 "util/configparser.c" + break; + - case 666: - #line 3553 "./util/configparser.y" ++ case 668: ++#line 3563 "./util/configparser.y" + { + #ifdef USE_IPSET + OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); + if(cfg_parser->cfg->ipset_name_v6) + yyerror("ipset name v6 override, there must be one " + "name for ip v6"); + free(cfg_parser->cfg->ipset_name_v6); + cfg_parser->cfg->ipset_name_v6 = (yyvsp[0].str); + #else + OUTYY(("P(Compiled without ipset, ignoring)\n")); + free((yyvsp[0].str)); + #endif + } - #line 7572 "util/configparser.c" ++#line 7593 "util/configparser.c" break; - #line 7576 "util/configparser.c" -#line 6030 "util/configparser.c" /* yacc.c:1646 */ ++#line 7597 "util/configparser.c" + default: break; } /* User semantic actions sometimes alter yychar, and that requires @@@ -7762,11 -6248,13 +7783,11 @@@ yyreturn if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif + return yyresult; } -#line 2972 "./util/configparser.y" /* yacc.c:1906 */ + - #line 3567 "./util/configparser.y" ++#line 3577 "./util/configparser.y" /* parse helper routines could be here */ diff --cc util/configparser.h index 7ce93b1d8,d4c00356c..54a862af3 --- a/util/configparser.h +++ b/util/configparser.h @@@ -50,334 -45,274 +50,335 @@@ extern int yydebug # define YYTOKENTYPE enum yytokentype { - SPACE = 258, - LETTER = 259, - NEWLINE = 260, - COMMENT = 261, - COLON = 262, - ANY = 263, - ZONESTR = 264, - STRING_ARG = 265, - VAR_SERVER = 266, - VAR_VERBOSITY = 267, - VAR_NUM_THREADS = 268, - VAR_PORT = 269, - VAR_OUTGOING_RANGE = 270, - VAR_INTERFACE = 271, - VAR_DO_IP4 = 272, - VAR_DO_IP6 = 273, - VAR_PREFER_IP6 = 274, - VAR_DO_UDP = 275, - VAR_DO_TCP = 276, - VAR_TCP_MSS = 277, - VAR_OUTGOING_TCP_MSS = 278, - VAR_TCP_IDLE_TIMEOUT = 279, - VAR_EDNS_TCP_KEEPALIVE = 280, - VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 281, - VAR_CHROOT = 282, - VAR_USERNAME = 283, - VAR_DIRECTORY = 284, - VAR_LOGFILE = 285, - VAR_PIDFILE = 286, - VAR_MSG_CACHE_SIZE = 287, - VAR_MSG_CACHE_SLABS = 288, - VAR_NUM_QUERIES_PER_THREAD = 289, - VAR_RRSET_CACHE_SIZE = 290, - VAR_RRSET_CACHE_SLABS = 291, - VAR_OUTGOING_NUM_TCP = 292, - VAR_INFRA_HOST_TTL = 293, - VAR_INFRA_LAME_TTL = 294, - VAR_INFRA_CACHE_SLABS = 295, - VAR_INFRA_CACHE_NUMHOSTS = 296, - VAR_INFRA_CACHE_LAME_SIZE = 297, - VAR_NAME = 298, - VAR_STUB_ZONE = 299, - VAR_STUB_HOST = 300, - VAR_STUB_ADDR = 301, - VAR_TARGET_FETCH_POLICY = 302, - VAR_HARDEN_SHORT_BUFSIZE = 303, - VAR_HARDEN_LARGE_QUERIES = 304, - VAR_FORWARD_ZONE = 305, - VAR_FORWARD_HOST = 306, - VAR_FORWARD_ADDR = 307, - VAR_DO_NOT_QUERY_ADDRESS = 308, - VAR_HIDE_IDENTITY = 309, - VAR_HIDE_VERSION = 310, - VAR_IDENTITY = 311, - VAR_VERSION = 312, - VAR_HARDEN_GLUE = 313, - VAR_MODULE_CONF = 314, - VAR_TRUST_ANCHOR_FILE = 315, - VAR_TRUST_ANCHOR = 316, - VAR_VAL_OVERRIDE_DATE = 317, - VAR_BOGUS_TTL = 318, - VAR_VAL_CLEAN_ADDITIONAL = 319, - VAR_VAL_PERMISSIVE_MODE = 320, - VAR_INCOMING_NUM_TCP = 321, - VAR_MSG_BUFFER_SIZE = 322, - VAR_KEY_CACHE_SIZE = 323, - VAR_KEY_CACHE_SLABS = 324, - VAR_TRUSTED_KEYS_FILE = 325, - VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 326, - VAR_USE_SYSLOG = 327, - VAR_OUTGOING_INTERFACE = 328, - VAR_ROOT_HINTS = 329, - VAR_DO_NOT_QUERY_LOCALHOST = 330, - VAR_CACHE_MAX_TTL = 331, - VAR_HARDEN_DNSSEC_STRIPPED = 332, - VAR_ACCESS_CONTROL = 333, - VAR_LOCAL_ZONE = 334, - VAR_LOCAL_DATA = 335, - VAR_INTERFACE_AUTOMATIC = 336, - VAR_STATISTICS_INTERVAL = 337, - VAR_DO_DAEMONIZE = 338, - VAR_USE_CAPS_FOR_ID = 339, - VAR_STATISTICS_CUMULATIVE = 340, - VAR_OUTGOING_PORT_PERMIT = 341, - VAR_OUTGOING_PORT_AVOID = 342, - VAR_DLV_ANCHOR_FILE = 343, - VAR_DLV_ANCHOR = 344, - VAR_NEG_CACHE_SIZE = 345, - VAR_HARDEN_REFERRAL_PATH = 346, - VAR_PRIVATE_ADDRESS = 347, - VAR_PRIVATE_DOMAIN = 348, - VAR_REMOTE_CONTROL = 349, - VAR_CONTROL_ENABLE = 350, - VAR_CONTROL_INTERFACE = 351, - VAR_CONTROL_PORT = 352, - VAR_SERVER_KEY_FILE = 353, - VAR_SERVER_CERT_FILE = 354, - VAR_CONTROL_KEY_FILE = 355, - VAR_CONTROL_CERT_FILE = 356, - VAR_CONTROL_USE_CERT = 357, - VAR_EXTENDED_STATISTICS = 358, - VAR_LOCAL_DATA_PTR = 359, - VAR_JOSTLE_TIMEOUT = 360, - VAR_STUB_PRIME = 361, - VAR_UNWANTED_REPLY_THRESHOLD = 362, - VAR_LOG_TIME_ASCII = 363, - VAR_DOMAIN_INSECURE = 364, - VAR_PYTHON = 365, - VAR_PYTHON_SCRIPT = 366, - VAR_VAL_SIG_SKEW_MIN = 367, - VAR_VAL_SIG_SKEW_MAX = 368, - VAR_CACHE_MIN_TTL = 369, - VAR_VAL_LOG_LEVEL = 370, - VAR_AUTO_TRUST_ANCHOR_FILE = 371, - VAR_KEEP_MISSING = 372, - VAR_ADD_HOLDDOWN = 373, - VAR_DEL_HOLDDOWN = 374, - VAR_SO_RCVBUF = 375, - VAR_EDNS_BUFFER_SIZE = 376, - VAR_PREFETCH = 377, - VAR_PREFETCH_KEY = 378, - VAR_SO_SNDBUF = 379, - VAR_SO_REUSEPORT = 380, - VAR_HARDEN_BELOW_NXDOMAIN = 381, - VAR_IGNORE_CD_FLAG = 382, - VAR_LOG_QUERIES = 383, - VAR_LOG_REPLIES = 384, - VAR_LOG_LOCAL_ACTIONS = 385, - VAR_TCP_UPSTREAM = 386, - VAR_SSL_UPSTREAM = 387, - VAR_SSL_SERVICE_KEY = 388, - VAR_SSL_SERVICE_PEM = 389, - VAR_SSL_PORT = 390, - VAR_FORWARD_FIRST = 391, - VAR_STUB_SSL_UPSTREAM = 392, - VAR_FORWARD_SSL_UPSTREAM = 393, - VAR_TLS_CERT_BUNDLE = 394, - VAR_STUB_FIRST = 395, - VAR_MINIMAL_RESPONSES = 396, - VAR_RRSET_ROUNDROBIN = 397, - VAR_MAX_UDP_SIZE = 398, - VAR_DELAY_CLOSE = 399, - VAR_UNBLOCK_LAN_ZONES = 400, - VAR_INSECURE_LAN_ZONES = 401, - VAR_INFRA_CACHE_MIN_RTT = 402, - VAR_DNS64_PREFIX = 403, - VAR_DNS64_SYNTHALL = 404, - VAR_DNS64_IGNORE_AAAA = 405, - VAR_DNSTAP = 406, - VAR_DNSTAP_ENABLE = 407, - VAR_DNSTAP_SOCKET_PATH = 408, - VAR_DNSTAP_SEND_IDENTITY = 409, - VAR_DNSTAP_SEND_VERSION = 410, - VAR_DNSTAP_IDENTITY = 411, - VAR_DNSTAP_VERSION = 412, - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 413, - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 414, - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 415, - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 416, - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 417, - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 418, - VAR_RESPONSE_IP_TAG = 419, - VAR_RESPONSE_IP = 420, - VAR_RESPONSE_IP_DATA = 421, - VAR_HARDEN_ALGO_DOWNGRADE = 422, - VAR_IP_TRANSPARENT = 423, - VAR_DISABLE_DNSSEC_LAME_CHECK = 424, - VAR_IP_RATELIMIT = 425, - VAR_IP_RATELIMIT_SLABS = 426, - VAR_IP_RATELIMIT_SIZE = 427, - VAR_RATELIMIT = 428, - VAR_RATELIMIT_SLABS = 429, - VAR_RATELIMIT_SIZE = 430, - VAR_OUTBOUND_MSG_RETRY = 431, - VAR_RATELIMIT_FOR_DOMAIN = 432, - VAR_RATELIMIT_BELOW_DOMAIN = 433, - VAR_IP_RATELIMIT_FACTOR = 434, - VAR_RATELIMIT_FACTOR = 435, - VAR_SEND_CLIENT_SUBNET = 436, - VAR_CLIENT_SUBNET_ZONE = 437, - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 438, - VAR_CLIENT_SUBNET_OPCODE = 439, - VAR_MAX_CLIENT_SUBNET_IPV4 = 440, - VAR_MAX_CLIENT_SUBNET_IPV6 = 441, - VAR_MIN_CLIENT_SUBNET_IPV4 = 442, - VAR_MIN_CLIENT_SUBNET_IPV6 = 443, - VAR_MAX_ECS_TREE_SIZE_IPV4 = 444, - VAR_MAX_ECS_TREE_SIZE_IPV6 = 445, - VAR_CAPS_WHITELIST = 446, - VAR_CACHE_MAX_NEGATIVE_TTL = 447, - VAR_PERMIT_SMALL_HOLDDOWN = 448, - VAR_QNAME_MINIMISATION = 449, - VAR_QNAME_MINIMISATION_STRICT = 450, - VAR_IP_FREEBIND = 451, - VAR_DEFINE_TAG = 452, - VAR_LOCAL_ZONE_TAG = 453, - VAR_ACCESS_CONTROL_TAG = 454, - VAR_LOCAL_ZONE_OVERRIDE = 455, - VAR_ACCESS_CONTROL_TAG_ACTION = 456, - VAR_ACCESS_CONTROL_TAG_DATA = 457, - VAR_VIEW = 458, - VAR_ACCESS_CONTROL_VIEW = 459, - VAR_VIEW_FIRST = 460, - VAR_SERVE_EXPIRED = 461, - VAR_SERVE_EXPIRED_TTL = 462, - VAR_SERVE_EXPIRED_TTL_RESET = 463, - VAR_FAKE_DSA = 464, - VAR_FAKE_SHA1 = 465, - VAR_LOG_IDENTITY = 466, - VAR_HIDE_TRUSTANCHOR = 467, - VAR_TRUST_ANCHOR_SIGNALING = 468, - VAR_AGGRESSIVE_NSEC = 469, - VAR_USE_SYSTEMD = 470, - VAR_SHM_ENABLE = 471, - VAR_SHM_KEY = 472, - VAR_ROOT_KEY_SENTINEL = 473, - VAR_DNSCRYPT = 474, - VAR_DNSCRYPT_ENABLE = 475, - VAR_DNSCRYPT_PORT = 476, - VAR_DNSCRYPT_PROVIDER = 477, - VAR_DNSCRYPT_SECRET_KEY = 478, - VAR_DNSCRYPT_PROVIDER_CERT = 479, - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 480, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 481, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 482, - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 483, - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 484, - VAR_IPSECMOD_ENABLED = 485, - VAR_IPSECMOD_HOOK = 486, - VAR_IPSECMOD_IGNORE_BOGUS = 487, - VAR_IPSECMOD_MAX_TTL = 488, - VAR_IPSECMOD_WHITELIST = 489, - VAR_IPSECMOD_STRICT = 490, - VAR_CACHEDB = 491, - VAR_CACHEDB_BACKEND = 492, - VAR_CACHEDB_SECRETSEED = 493, - VAR_CACHEDB_REDISHOST = 494, - VAR_CACHEDB_REDISPORT = 495, - VAR_CACHEDB_REDISTIMEOUT = 496, - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 497, - VAR_FOR_UPSTREAM = 498, - VAR_AUTH_ZONE = 499, - VAR_ZONEFILE = 500, - VAR_MASTER = 501, - VAR_URL = 502, - VAR_FOR_DOWNSTREAM = 503, - VAR_FALLBACK_ENABLED = 504, - VAR_TLS_ADDITIONAL_PORT = 505, - VAR_LOW_RTT = 506, - VAR_LOW_RTT_PERMIL = 507, - VAR_FAST_SERVER_PERMIL = 508, - VAR_FAST_SERVER_NUM = 509, - VAR_ALLOW_NOTIFY = 510, - VAR_TLS_WIN_CERT = 511, - VAR_TCP_CONNECTION_LIMIT = 512, - VAR_FORWARD_NO_CACHE = 513, - VAR_STUB_NO_CACHE = 514, - VAR_LOG_SERVFAIL = 515, - VAR_DENY_ANY = 516, - VAR_UNKNOWN_SERVER_TIME_LIMIT = 517, - VAR_LOG_TAG_QUERYREPLY = 518, - VAR_STREAM_WAIT_SIZE = 519, - VAR_TLS_CIPHERS = 520, - VAR_TLS_CIPHERSUITES = 521, - VAR_TLS_SESSION_TICKET_KEYS = 522 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + SPACE = 258, /* SPACE */ + LETTER = 259, /* LETTER */ + NEWLINE = 260, /* NEWLINE */ + COMMENT = 261, /* COMMENT */ + COLON = 262, /* COLON */ + ANY = 263, /* ANY */ + ZONESTR = 264, /* ZONESTR */ + STRING_ARG = 265, /* STRING_ARG */ + VAR_FORCE_TOPLEVEL = 266, /* VAR_FORCE_TOPLEVEL */ + VAR_SERVER = 267, /* VAR_SERVER */ + VAR_VERBOSITY = 268, /* VAR_VERBOSITY */ + VAR_NUM_THREADS = 269, /* VAR_NUM_THREADS */ + VAR_PORT = 270, /* VAR_PORT */ + VAR_OUTGOING_RANGE = 271, /* VAR_OUTGOING_RANGE */ + VAR_INTERFACE = 272, /* VAR_INTERFACE */ + VAR_PREFER_IP4 = 273, /* VAR_PREFER_IP4 */ + VAR_DO_IP4 = 274, /* VAR_DO_IP4 */ + VAR_DO_IP6 = 275, /* VAR_DO_IP6 */ + VAR_PREFER_IP6 = 276, /* VAR_PREFER_IP6 */ + VAR_DO_UDP = 277, /* VAR_DO_UDP */ + VAR_DO_TCP = 278, /* VAR_DO_TCP */ + VAR_TCP_MSS = 279, /* VAR_TCP_MSS */ + VAR_OUTGOING_TCP_MSS = 280, /* VAR_OUTGOING_TCP_MSS */ + VAR_TCP_IDLE_TIMEOUT = 281, /* VAR_TCP_IDLE_TIMEOUT */ + VAR_EDNS_TCP_KEEPALIVE = 282, /* VAR_EDNS_TCP_KEEPALIVE */ + VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ + VAR_CHROOT = 284, /* VAR_CHROOT */ + VAR_USERNAME = 285, /* VAR_USERNAME */ + VAR_DIRECTORY = 286, /* VAR_DIRECTORY */ + VAR_LOGFILE = 287, /* VAR_LOGFILE */ + VAR_PIDFILE = 288, /* VAR_PIDFILE */ + VAR_MSG_CACHE_SIZE = 289, /* VAR_MSG_CACHE_SIZE */ + VAR_MSG_CACHE_SLABS = 290, /* VAR_MSG_CACHE_SLABS */ + VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD */ + VAR_RRSET_CACHE_SIZE = 292, /* VAR_RRSET_CACHE_SIZE */ + VAR_RRSET_CACHE_SLABS = 293, /* VAR_RRSET_CACHE_SLABS */ + VAR_OUTGOING_NUM_TCP = 294, /* VAR_OUTGOING_NUM_TCP */ + VAR_INFRA_HOST_TTL = 295, /* VAR_INFRA_HOST_TTL */ + VAR_INFRA_LAME_TTL = 296, /* VAR_INFRA_LAME_TTL */ + VAR_INFRA_CACHE_SLABS = 297, /* VAR_INFRA_CACHE_SLABS */ + VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS */ + VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE */ + VAR_NAME = 300, /* VAR_NAME */ + VAR_STUB_ZONE = 301, /* VAR_STUB_ZONE */ + VAR_STUB_HOST = 302, /* VAR_STUB_HOST */ + VAR_STUB_ADDR = 303, /* VAR_STUB_ADDR */ + VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY */ + VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE */ + VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES */ + VAR_FORWARD_ZONE = 307, /* VAR_FORWARD_ZONE */ + VAR_FORWARD_HOST = 308, /* VAR_FORWARD_HOST */ + VAR_FORWARD_ADDR = 309, /* VAR_FORWARD_ADDR */ + VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS */ + VAR_HIDE_IDENTITY = 311, /* VAR_HIDE_IDENTITY */ + VAR_HIDE_VERSION = 312, /* VAR_HIDE_VERSION */ + VAR_IDENTITY = 313, /* VAR_IDENTITY */ + VAR_VERSION = 314, /* VAR_VERSION */ + VAR_HARDEN_GLUE = 315, /* VAR_HARDEN_GLUE */ + VAR_MODULE_CONF = 316, /* VAR_MODULE_CONF */ + VAR_TRUST_ANCHOR_FILE = 317, /* VAR_TRUST_ANCHOR_FILE */ + VAR_TRUST_ANCHOR = 318, /* VAR_TRUST_ANCHOR */ + VAR_VAL_OVERRIDE_DATE = 319, /* VAR_VAL_OVERRIDE_DATE */ + VAR_BOGUS_TTL = 320, /* VAR_BOGUS_TTL */ + VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL */ + VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE */ + VAR_INCOMING_NUM_TCP = 323, /* VAR_INCOMING_NUM_TCP */ + VAR_MSG_BUFFER_SIZE = 324, /* VAR_MSG_BUFFER_SIZE */ + VAR_KEY_CACHE_SIZE = 325, /* VAR_KEY_CACHE_SIZE */ + VAR_KEY_CACHE_SLABS = 326, /* VAR_KEY_CACHE_SLABS */ + VAR_TRUSTED_KEYS_FILE = 327, /* VAR_TRUSTED_KEYS_FILE */ + VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ + VAR_USE_SYSLOG = 329, /* VAR_USE_SYSLOG */ + VAR_OUTGOING_INTERFACE = 330, /* VAR_OUTGOING_INTERFACE */ + VAR_ROOT_HINTS = 331, /* VAR_ROOT_HINTS */ + VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST */ + VAR_CACHE_MAX_TTL = 333, /* VAR_CACHE_MAX_TTL */ + VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED */ + VAR_ACCESS_CONTROL = 335, /* VAR_ACCESS_CONTROL */ + VAR_LOCAL_ZONE = 336, /* VAR_LOCAL_ZONE */ + VAR_LOCAL_DATA = 337, /* VAR_LOCAL_DATA */ + VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC */ + VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL */ + VAR_DO_DAEMONIZE = 340, /* VAR_DO_DAEMONIZE */ + VAR_USE_CAPS_FOR_ID = 341, /* VAR_USE_CAPS_FOR_ID */ + VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE */ + VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT */ + VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID */ + VAR_DLV_ANCHOR_FILE = 345, /* VAR_DLV_ANCHOR_FILE */ + VAR_DLV_ANCHOR = 346, /* VAR_DLV_ANCHOR */ + VAR_NEG_CACHE_SIZE = 347, /* VAR_NEG_CACHE_SIZE */ + VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH */ + VAR_PRIVATE_ADDRESS = 349, /* VAR_PRIVATE_ADDRESS */ + VAR_PRIVATE_DOMAIN = 350, /* VAR_PRIVATE_DOMAIN */ + VAR_REMOTE_CONTROL = 351, /* VAR_REMOTE_CONTROL */ + VAR_CONTROL_ENABLE = 352, /* VAR_CONTROL_ENABLE */ + VAR_CONTROL_INTERFACE = 353, /* VAR_CONTROL_INTERFACE */ + VAR_CONTROL_PORT = 354, /* VAR_CONTROL_PORT */ + VAR_SERVER_KEY_FILE = 355, /* VAR_SERVER_KEY_FILE */ + VAR_SERVER_CERT_FILE = 356, /* VAR_SERVER_CERT_FILE */ + VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */ + VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */ + VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */ + VAR_TCP_REUSE_TIMEOUT = 360, /* VAR_TCP_REUSE_TIMEOUT */ + VAR_MAX_REUSE_TCP_QUERIES = 361, /* VAR_MAX_REUSE_TCP_QUERIES */ + VAR_EXTENDED_STATISTICS = 362, /* VAR_EXTENDED_STATISTICS */ + VAR_LOCAL_DATA_PTR = 363, /* VAR_LOCAL_DATA_PTR */ + VAR_JOSTLE_TIMEOUT = 364, /* VAR_JOSTLE_TIMEOUT */ + VAR_STUB_PRIME = 365, /* VAR_STUB_PRIME */ + VAR_UNWANTED_REPLY_THRESHOLD = 366, /* VAR_UNWANTED_REPLY_THRESHOLD */ + VAR_LOG_TIME_ASCII = 367, /* VAR_LOG_TIME_ASCII */ + VAR_DOMAIN_INSECURE = 368, /* VAR_DOMAIN_INSECURE */ + VAR_PYTHON = 369, /* VAR_PYTHON */ + VAR_PYTHON_SCRIPT = 370, /* VAR_PYTHON_SCRIPT */ + VAR_VAL_SIG_SKEW_MIN = 371, /* VAR_VAL_SIG_SKEW_MIN */ + VAR_VAL_SIG_SKEW_MAX = 372, /* VAR_VAL_SIG_SKEW_MAX */ + VAR_VAL_MAX_RESTART = 373, /* VAR_VAL_MAX_RESTART */ + VAR_CACHE_MIN_TTL = 374, /* VAR_CACHE_MIN_TTL */ + VAR_VAL_LOG_LEVEL = 375, /* VAR_VAL_LOG_LEVEL */ + VAR_AUTO_TRUST_ANCHOR_FILE = 376, /* VAR_AUTO_TRUST_ANCHOR_FILE */ + VAR_KEEP_MISSING = 377, /* VAR_KEEP_MISSING */ + VAR_ADD_HOLDDOWN = 378, /* VAR_ADD_HOLDDOWN */ + VAR_DEL_HOLDDOWN = 379, /* VAR_DEL_HOLDDOWN */ + VAR_SO_RCVBUF = 380, /* VAR_SO_RCVBUF */ + VAR_EDNS_BUFFER_SIZE = 381, /* VAR_EDNS_BUFFER_SIZE */ + VAR_PREFETCH = 382, /* VAR_PREFETCH */ + VAR_PREFETCH_KEY = 383, /* VAR_PREFETCH_KEY */ + VAR_SO_SNDBUF = 384, /* VAR_SO_SNDBUF */ + VAR_SO_REUSEPORT = 385, /* VAR_SO_REUSEPORT */ + VAR_HARDEN_BELOW_NXDOMAIN = 386, /* VAR_HARDEN_BELOW_NXDOMAIN */ + VAR_IGNORE_CD_FLAG = 387, /* VAR_IGNORE_CD_FLAG */ + VAR_LOG_QUERIES = 388, /* VAR_LOG_QUERIES */ + VAR_LOG_REPLIES = 389, /* VAR_LOG_REPLIES */ + VAR_LOG_LOCAL_ACTIONS = 390, /* VAR_LOG_LOCAL_ACTIONS */ + VAR_TCP_UPSTREAM = 391, /* VAR_TCP_UPSTREAM */ + VAR_SSL_UPSTREAM = 392, /* VAR_SSL_UPSTREAM */ + VAR_TCP_AUTH_QUERY_TIMEOUT = 393, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ + VAR_SSL_SERVICE_KEY = 394, /* VAR_SSL_SERVICE_KEY */ + VAR_SSL_SERVICE_PEM = 395, /* VAR_SSL_SERVICE_PEM */ + VAR_SSL_PORT = 396, /* VAR_SSL_PORT */ + VAR_FORWARD_FIRST = 397, /* VAR_FORWARD_FIRST */ + VAR_STUB_SSL_UPSTREAM = 398, /* VAR_STUB_SSL_UPSTREAM */ + VAR_FORWARD_SSL_UPSTREAM = 399, /* VAR_FORWARD_SSL_UPSTREAM */ + VAR_TLS_CERT_BUNDLE = 400, /* VAR_TLS_CERT_BUNDLE */ + VAR_STUB_TCP_UPSTREAM = 401, /* VAR_STUB_TCP_UPSTREAM */ + VAR_FORWARD_TCP_UPSTREAM = 402, /* VAR_FORWARD_TCP_UPSTREAM */ + VAR_HTTPS_PORT = 403, /* VAR_HTTPS_PORT */ + VAR_HTTP_ENDPOINT = 404, /* VAR_HTTP_ENDPOINT */ + VAR_HTTP_MAX_STREAMS = 405, /* VAR_HTTP_MAX_STREAMS */ + VAR_HTTP_QUERY_BUFFER_SIZE = 406, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + VAR_HTTP_RESPONSE_BUFFER_SIZE = 407, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + VAR_HTTP_NODELAY = 408, /* VAR_HTTP_NODELAY */ + VAR_HTTP_NOTLS_DOWNSTREAM = 409, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + VAR_STUB_FIRST = 410, /* VAR_STUB_FIRST */ + VAR_MINIMAL_RESPONSES = 411, /* VAR_MINIMAL_RESPONSES */ + VAR_RRSET_ROUNDROBIN = 412, /* VAR_RRSET_ROUNDROBIN */ + VAR_MAX_UDP_SIZE = 413, /* VAR_MAX_UDP_SIZE */ + VAR_DELAY_CLOSE = 414, /* VAR_DELAY_CLOSE */ + VAR_UDP_CONNECT = 415, /* VAR_UDP_CONNECT */ + VAR_UNBLOCK_LAN_ZONES = 416, /* VAR_UNBLOCK_LAN_ZONES */ + VAR_INSECURE_LAN_ZONES = 417, /* VAR_INSECURE_LAN_ZONES */ + VAR_INFRA_CACHE_MIN_RTT = 418, /* VAR_INFRA_CACHE_MIN_RTT */ + VAR_INFRA_KEEP_PROBING = 419, /* VAR_INFRA_KEEP_PROBING */ + VAR_DNS64_PREFIX = 420, /* VAR_DNS64_PREFIX */ + VAR_DNS64_SYNTHALL = 421, /* VAR_DNS64_SYNTHALL */ + VAR_DNS64_IGNORE_AAAA = 422, /* VAR_DNS64_IGNORE_AAAA */ + VAR_DNSTAP = 423, /* VAR_DNSTAP */ + VAR_DNSTAP_ENABLE = 424, /* VAR_DNSTAP_ENABLE */ + VAR_DNSTAP_SOCKET_PATH = 425, /* VAR_DNSTAP_SOCKET_PATH */ + VAR_DNSTAP_IP = 426, /* VAR_DNSTAP_IP */ + VAR_DNSTAP_TLS = 427, /* VAR_DNSTAP_TLS */ + VAR_DNSTAP_TLS_SERVER_NAME = 428, /* VAR_DNSTAP_TLS_SERVER_NAME */ + VAR_DNSTAP_TLS_CERT_BUNDLE = 429, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 430, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 431, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + VAR_DNSTAP_SEND_IDENTITY = 432, /* VAR_DNSTAP_SEND_IDENTITY */ + VAR_DNSTAP_SEND_VERSION = 433, /* VAR_DNSTAP_SEND_VERSION */ + VAR_DNSTAP_BIDIRECTIONAL = 434, /* VAR_DNSTAP_BIDIRECTIONAL */ + VAR_DNSTAP_IDENTITY = 435, /* VAR_DNSTAP_IDENTITY */ + VAR_DNSTAP_VERSION = 436, /* VAR_DNSTAP_VERSION */ + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 437, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 438, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 439, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 440, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 441, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 442, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + VAR_RESPONSE_IP_TAG = 443, /* VAR_RESPONSE_IP_TAG */ + VAR_RESPONSE_IP = 444, /* VAR_RESPONSE_IP */ + VAR_RESPONSE_IP_DATA = 445, /* VAR_RESPONSE_IP_DATA */ + VAR_HARDEN_ALGO_DOWNGRADE = 446, /* VAR_HARDEN_ALGO_DOWNGRADE */ + VAR_IP_TRANSPARENT = 447, /* VAR_IP_TRANSPARENT */ + VAR_IP_DSCP = 448, /* VAR_IP_DSCP */ + VAR_DISABLE_DNSSEC_LAME_CHECK = 449, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + VAR_IP_RATELIMIT = 450, /* VAR_IP_RATELIMIT */ + VAR_IP_RATELIMIT_SLABS = 451, /* VAR_IP_RATELIMIT_SLABS */ + VAR_IP_RATELIMIT_SIZE = 452, /* VAR_IP_RATELIMIT_SIZE */ + VAR_RATELIMIT = 453, /* VAR_RATELIMIT */ + VAR_RATELIMIT_SLABS = 454, /* VAR_RATELIMIT_SLABS */ + VAR_RATELIMIT_SIZE = 455, /* VAR_RATELIMIT_SIZE */ - VAR_RATELIMIT_FOR_DOMAIN = 456, /* VAR_RATELIMIT_FOR_DOMAIN */ - VAR_RATELIMIT_BELOW_DOMAIN = 457, /* VAR_RATELIMIT_BELOW_DOMAIN */ - VAR_IP_RATELIMIT_FACTOR = 458, /* VAR_IP_RATELIMIT_FACTOR */ - VAR_RATELIMIT_FACTOR = 459, /* VAR_RATELIMIT_FACTOR */ - VAR_SEND_CLIENT_SUBNET = 460, /* VAR_SEND_CLIENT_SUBNET */ - VAR_CLIENT_SUBNET_ZONE = 461, /* VAR_CLIENT_SUBNET_ZONE */ - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 462, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - VAR_CLIENT_SUBNET_OPCODE = 463, /* VAR_CLIENT_SUBNET_OPCODE */ - VAR_MAX_CLIENT_SUBNET_IPV4 = 464, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - VAR_MAX_CLIENT_SUBNET_IPV6 = 465, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - VAR_MIN_CLIENT_SUBNET_IPV4 = 466, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - VAR_MIN_CLIENT_SUBNET_IPV6 = 467, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - VAR_MAX_ECS_TREE_SIZE_IPV4 = 468, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - VAR_MAX_ECS_TREE_SIZE_IPV6 = 469, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - VAR_CAPS_WHITELIST = 470, /* VAR_CAPS_WHITELIST */ - VAR_CACHE_MAX_NEGATIVE_TTL = 471, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - VAR_PERMIT_SMALL_HOLDDOWN = 472, /* VAR_PERMIT_SMALL_HOLDDOWN */ - VAR_QNAME_MINIMISATION = 473, /* VAR_QNAME_MINIMISATION */ - VAR_QNAME_MINIMISATION_STRICT = 474, /* VAR_QNAME_MINIMISATION_STRICT */ - VAR_IP_FREEBIND = 475, /* VAR_IP_FREEBIND */ - VAR_DEFINE_TAG = 476, /* VAR_DEFINE_TAG */ - VAR_LOCAL_ZONE_TAG = 477, /* VAR_LOCAL_ZONE_TAG */ - VAR_ACCESS_CONTROL_TAG = 478, /* VAR_ACCESS_CONTROL_TAG */ - VAR_LOCAL_ZONE_OVERRIDE = 479, /* VAR_LOCAL_ZONE_OVERRIDE */ - VAR_ACCESS_CONTROL_TAG_ACTION = 480, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - VAR_ACCESS_CONTROL_TAG_DATA = 481, /* VAR_ACCESS_CONTROL_TAG_DATA */ - VAR_VIEW = 482, /* VAR_VIEW */ - VAR_ACCESS_CONTROL_VIEW = 483, /* VAR_ACCESS_CONTROL_VIEW */ - VAR_VIEW_FIRST = 484, /* VAR_VIEW_FIRST */ - VAR_SERVE_EXPIRED = 485, /* VAR_SERVE_EXPIRED */ - VAR_SERVE_EXPIRED_TTL = 486, /* VAR_SERVE_EXPIRED_TTL */ - VAR_SERVE_EXPIRED_TTL_RESET = 487, /* VAR_SERVE_EXPIRED_TTL_RESET */ - VAR_SERVE_EXPIRED_REPLY_TTL = 488, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 489, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - VAR_SERVE_ORIGINAL_TTL = 490, /* VAR_SERVE_ORIGINAL_TTL */ - VAR_FAKE_DSA = 491, /* VAR_FAKE_DSA */ - VAR_FAKE_SHA1 = 492, /* VAR_FAKE_SHA1 */ - VAR_LOG_IDENTITY = 493, /* VAR_LOG_IDENTITY */ - VAR_HIDE_TRUSTANCHOR = 494, /* VAR_HIDE_TRUSTANCHOR */ - VAR_HIDE_HTTP_USER_AGENT = 495, /* VAR_HIDE_HTTP_USER_AGENT */ - VAR_HTTP_USER_AGENT = 496, /* VAR_HTTP_USER_AGENT */ - VAR_TRUST_ANCHOR_SIGNALING = 497, /* VAR_TRUST_ANCHOR_SIGNALING */ - VAR_AGGRESSIVE_NSEC = 498, /* VAR_AGGRESSIVE_NSEC */ - VAR_USE_SYSTEMD = 499, /* VAR_USE_SYSTEMD */ - VAR_SHM_ENABLE = 500, /* VAR_SHM_ENABLE */ - VAR_SHM_KEY = 501, /* VAR_SHM_KEY */ - VAR_ROOT_KEY_SENTINEL = 502, /* VAR_ROOT_KEY_SENTINEL */ - VAR_DNSCRYPT = 503, /* VAR_DNSCRYPT */ - VAR_DNSCRYPT_ENABLE = 504, /* VAR_DNSCRYPT_ENABLE */ - VAR_DNSCRYPT_PORT = 505, /* VAR_DNSCRYPT_PORT */ - VAR_DNSCRYPT_PROVIDER = 506, /* VAR_DNSCRYPT_PROVIDER */ - VAR_DNSCRYPT_SECRET_KEY = 507, /* VAR_DNSCRYPT_SECRET_KEY */ - VAR_DNSCRYPT_PROVIDER_CERT = 508, /* VAR_DNSCRYPT_PROVIDER_CERT */ - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 509, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 510, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 511, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 512, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 513, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - VAR_PAD_RESPONSES = 514, /* VAR_PAD_RESPONSES */ - VAR_PAD_RESPONSES_BLOCK_SIZE = 515, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - VAR_PAD_QUERIES = 516, /* VAR_PAD_QUERIES */ - VAR_PAD_QUERIES_BLOCK_SIZE = 517, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - VAR_IPSECMOD_ENABLED = 518, /* VAR_IPSECMOD_ENABLED */ - VAR_IPSECMOD_HOOK = 519, /* VAR_IPSECMOD_HOOK */ - VAR_IPSECMOD_IGNORE_BOGUS = 520, /* VAR_IPSECMOD_IGNORE_BOGUS */ - VAR_IPSECMOD_MAX_TTL = 521, /* VAR_IPSECMOD_MAX_TTL */ - VAR_IPSECMOD_WHITELIST = 522, /* VAR_IPSECMOD_WHITELIST */ - VAR_IPSECMOD_STRICT = 523, /* VAR_IPSECMOD_STRICT */ - VAR_CACHEDB = 524, /* VAR_CACHEDB */ - VAR_CACHEDB_BACKEND = 525, /* VAR_CACHEDB_BACKEND */ - VAR_CACHEDB_SECRETSEED = 526, /* VAR_CACHEDB_SECRETSEED */ - VAR_CACHEDB_REDISHOST = 527, /* VAR_CACHEDB_REDISHOST */ - VAR_CACHEDB_REDISPORT = 528, /* VAR_CACHEDB_REDISPORT */ - VAR_CACHEDB_REDISTIMEOUT = 529, /* VAR_CACHEDB_REDISTIMEOUT */ - VAR_CACHEDB_REDISEXPIRERECORDS = 530, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 531, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - VAR_FOR_UPSTREAM = 532, /* VAR_FOR_UPSTREAM */ - VAR_AUTH_ZONE = 533, /* VAR_AUTH_ZONE */ - VAR_ZONEFILE = 534, /* VAR_ZONEFILE */ - VAR_MASTER = 535, /* VAR_MASTER */ - VAR_URL = 536, /* VAR_URL */ - VAR_FOR_DOWNSTREAM = 537, /* VAR_FOR_DOWNSTREAM */ - VAR_FALLBACK_ENABLED = 538, /* VAR_FALLBACK_ENABLED */ - VAR_TLS_ADDITIONAL_PORT = 539, /* VAR_TLS_ADDITIONAL_PORT */ - VAR_LOW_RTT = 540, /* VAR_LOW_RTT */ - VAR_LOW_RTT_PERMIL = 541, /* VAR_LOW_RTT_PERMIL */ - VAR_FAST_SERVER_PERMIL = 542, /* VAR_FAST_SERVER_PERMIL */ - VAR_FAST_SERVER_NUM = 543, /* VAR_FAST_SERVER_NUM */ - VAR_ALLOW_NOTIFY = 544, /* VAR_ALLOW_NOTIFY */ - VAR_TLS_WIN_CERT = 545, /* VAR_TLS_WIN_CERT */ - VAR_TCP_CONNECTION_LIMIT = 546, /* VAR_TCP_CONNECTION_LIMIT */ - VAR_FORWARD_NO_CACHE = 547, /* VAR_FORWARD_NO_CACHE */ - VAR_STUB_NO_CACHE = 548, /* VAR_STUB_NO_CACHE */ - VAR_LOG_SERVFAIL = 549, /* VAR_LOG_SERVFAIL */ - VAR_DENY_ANY = 550, /* VAR_DENY_ANY */ - VAR_UNKNOWN_SERVER_TIME_LIMIT = 551, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - VAR_LOG_TAG_QUERYREPLY = 552, /* VAR_LOG_TAG_QUERYREPLY */ - VAR_STREAM_WAIT_SIZE = 553, /* VAR_STREAM_WAIT_SIZE */ - VAR_TLS_CIPHERS = 554, /* VAR_TLS_CIPHERS */ - VAR_TLS_CIPHERSUITES = 555, /* VAR_TLS_CIPHERSUITES */ - VAR_TLS_USE_SNI = 556, /* VAR_TLS_USE_SNI */ - VAR_IPSET = 557, /* VAR_IPSET */ - VAR_IPSET_NAME_V4 = 558, /* VAR_IPSET_NAME_V4 */ - VAR_IPSET_NAME_V6 = 559, /* VAR_IPSET_NAME_V6 */ - VAR_TLS_SESSION_TICKET_KEYS = 560, /* VAR_TLS_SESSION_TICKET_KEYS */ - VAR_RPZ = 561, /* VAR_RPZ */ - VAR_TAGS = 562, /* VAR_TAGS */ - VAR_RPZ_ACTION_OVERRIDE = 563, /* VAR_RPZ_ACTION_OVERRIDE */ - VAR_RPZ_CNAME_OVERRIDE = 564, /* VAR_RPZ_CNAME_OVERRIDE */ - VAR_RPZ_LOG = 565, /* VAR_RPZ_LOG */ - VAR_RPZ_LOG_NAME = 566, /* VAR_RPZ_LOG_NAME */ - VAR_DYNLIB = 567, /* VAR_DYNLIB */ - VAR_DYNLIB_FILE = 568, /* VAR_DYNLIB_FILE */ - VAR_EDNS_CLIENT_STRING = 569, /* VAR_EDNS_CLIENT_STRING */ - VAR_EDNS_CLIENT_STRING_OPCODE = 570, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - VAR_NSID = 571, /* VAR_NSID */ - VAR_ZONEMD_PERMISSIVE_MODE = 572, /* VAR_ZONEMD_PERMISSIVE_MODE */ - VAR_ZONEMD_CHECK = 573, /* VAR_ZONEMD_CHECK */ - VAR_ZONEMD_REJECT_ABSENCE = 574 /* VAR_ZONEMD_REJECT_ABSENCE */ ++ VAR_OUTBOUND_MSG_RETRY = 456, /* VAR_OUTBOUND_MSG_RETRY */ ++ VAR_RATELIMIT_FOR_DOMAIN = 457, /* VAR_RATELIMIT_FOR_DOMAIN */ ++ VAR_RATELIMIT_BELOW_DOMAIN = 458, /* VAR_RATELIMIT_BELOW_DOMAIN */ ++ VAR_IP_RATELIMIT_FACTOR = 459, /* VAR_IP_RATELIMIT_FACTOR */ ++ VAR_RATELIMIT_FACTOR = 460, /* VAR_RATELIMIT_FACTOR */ ++ VAR_SEND_CLIENT_SUBNET = 461, /* VAR_SEND_CLIENT_SUBNET */ ++ VAR_CLIENT_SUBNET_ZONE = 462, /* VAR_CLIENT_SUBNET_ZONE */ ++ VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 463, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ ++ VAR_CLIENT_SUBNET_OPCODE = 464, /* VAR_CLIENT_SUBNET_OPCODE */ ++ VAR_MAX_CLIENT_SUBNET_IPV4 = 465, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ ++ VAR_MAX_CLIENT_SUBNET_IPV6 = 466, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ ++ VAR_MIN_CLIENT_SUBNET_IPV4 = 467, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ ++ VAR_MIN_CLIENT_SUBNET_IPV6 = 468, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ ++ VAR_MAX_ECS_TREE_SIZE_IPV4 = 469, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ ++ VAR_MAX_ECS_TREE_SIZE_IPV6 = 470, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ ++ VAR_CAPS_WHITELIST = 471, /* VAR_CAPS_WHITELIST */ ++ VAR_CACHE_MAX_NEGATIVE_TTL = 472, /* VAR_CACHE_MAX_NEGATIVE_TTL */ ++ VAR_PERMIT_SMALL_HOLDDOWN = 473, /* VAR_PERMIT_SMALL_HOLDDOWN */ ++ VAR_QNAME_MINIMISATION = 474, /* VAR_QNAME_MINIMISATION */ ++ VAR_QNAME_MINIMISATION_STRICT = 475, /* VAR_QNAME_MINIMISATION_STRICT */ ++ VAR_IP_FREEBIND = 476, /* VAR_IP_FREEBIND */ ++ VAR_DEFINE_TAG = 477, /* VAR_DEFINE_TAG */ ++ VAR_LOCAL_ZONE_TAG = 478, /* VAR_LOCAL_ZONE_TAG */ ++ VAR_ACCESS_CONTROL_TAG = 479, /* VAR_ACCESS_CONTROL_TAG */ ++ VAR_LOCAL_ZONE_OVERRIDE = 480, /* VAR_LOCAL_ZONE_OVERRIDE */ ++ VAR_ACCESS_CONTROL_TAG_ACTION = 481, /* VAR_ACCESS_CONTROL_TAG_ACTION */ ++ VAR_ACCESS_CONTROL_TAG_DATA = 482, /* VAR_ACCESS_CONTROL_TAG_DATA */ ++ VAR_VIEW = 483, /* VAR_VIEW */ ++ VAR_ACCESS_CONTROL_VIEW = 484, /* VAR_ACCESS_CONTROL_VIEW */ ++ VAR_VIEW_FIRST = 485, /* VAR_VIEW_FIRST */ ++ VAR_SERVE_EXPIRED = 486, /* VAR_SERVE_EXPIRED */ ++ VAR_SERVE_EXPIRED_TTL = 487, /* VAR_SERVE_EXPIRED_TTL */ ++ VAR_SERVE_EXPIRED_TTL_RESET = 488, /* VAR_SERVE_EXPIRED_TTL_RESET */ ++ VAR_SERVE_EXPIRED_REPLY_TTL = 489, /* VAR_SERVE_EXPIRED_REPLY_TTL */ ++ VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 490, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ ++ VAR_SERVE_ORIGINAL_TTL = 491, /* VAR_SERVE_ORIGINAL_TTL */ ++ VAR_FAKE_DSA = 492, /* VAR_FAKE_DSA */ ++ VAR_FAKE_SHA1 = 493, /* VAR_FAKE_SHA1 */ ++ VAR_LOG_IDENTITY = 494, /* VAR_LOG_IDENTITY */ ++ VAR_HIDE_TRUSTANCHOR = 495, /* VAR_HIDE_TRUSTANCHOR */ ++ VAR_HIDE_HTTP_USER_AGENT = 496, /* VAR_HIDE_HTTP_USER_AGENT */ ++ VAR_HTTP_USER_AGENT = 497, /* VAR_HTTP_USER_AGENT */ ++ VAR_TRUST_ANCHOR_SIGNALING = 498, /* VAR_TRUST_ANCHOR_SIGNALING */ ++ VAR_AGGRESSIVE_NSEC = 499, /* VAR_AGGRESSIVE_NSEC */ ++ VAR_USE_SYSTEMD = 500, /* VAR_USE_SYSTEMD */ ++ VAR_SHM_ENABLE = 501, /* VAR_SHM_ENABLE */ ++ VAR_SHM_KEY = 502, /* VAR_SHM_KEY */ ++ VAR_ROOT_KEY_SENTINEL = 503, /* VAR_ROOT_KEY_SENTINEL */ ++ VAR_DNSCRYPT = 504, /* VAR_DNSCRYPT */ ++ VAR_DNSCRYPT_ENABLE = 505, /* VAR_DNSCRYPT_ENABLE */ ++ VAR_DNSCRYPT_PORT = 506, /* VAR_DNSCRYPT_PORT */ ++ VAR_DNSCRYPT_PROVIDER = 507, /* VAR_DNSCRYPT_PROVIDER */ ++ VAR_DNSCRYPT_SECRET_KEY = 508, /* VAR_DNSCRYPT_SECRET_KEY */ ++ VAR_DNSCRYPT_PROVIDER_CERT = 509, /* VAR_DNSCRYPT_PROVIDER_CERT */ ++ VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 510, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ ++ VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 511, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ ++ VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 512, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ ++ VAR_DNSCRYPT_NONCE_CACHE_SIZE = 513, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ ++ VAR_DNSCRYPT_NONCE_CACHE_SLABS = 514, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ ++ VAR_PAD_RESPONSES = 515, /* VAR_PAD_RESPONSES */ ++ VAR_PAD_RESPONSES_BLOCK_SIZE = 516, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ ++ VAR_PAD_QUERIES = 517, /* VAR_PAD_QUERIES */ ++ VAR_PAD_QUERIES_BLOCK_SIZE = 518, /* VAR_PAD_QUERIES_BLOCK_SIZE */ ++ VAR_IPSECMOD_ENABLED = 519, /* VAR_IPSECMOD_ENABLED */ ++ VAR_IPSECMOD_HOOK = 520, /* VAR_IPSECMOD_HOOK */ ++ VAR_IPSECMOD_IGNORE_BOGUS = 521, /* VAR_IPSECMOD_IGNORE_BOGUS */ ++ VAR_IPSECMOD_MAX_TTL = 522, /* VAR_IPSECMOD_MAX_TTL */ ++ VAR_IPSECMOD_WHITELIST = 523, /* VAR_IPSECMOD_WHITELIST */ ++ VAR_IPSECMOD_STRICT = 524, /* VAR_IPSECMOD_STRICT */ ++ VAR_CACHEDB = 525, /* VAR_CACHEDB */ ++ VAR_CACHEDB_BACKEND = 526, /* VAR_CACHEDB_BACKEND */ ++ VAR_CACHEDB_SECRETSEED = 527, /* VAR_CACHEDB_SECRETSEED */ ++ VAR_CACHEDB_REDISHOST = 528, /* VAR_CACHEDB_REDISHOST */ ++ VAR_CACHEDB_REDISPORT = 529, /* VAR_CACHEDB_REDISPORT */ ++ VAR_CACHEDB_REDISTIMEOUT = 530, /* VAR_CACHEDB_REDISTIMEOUT */ ++ VAR_CACHEDB_REDISEXPIRERECORDS = 531, /* VAR_CACHEDB_REDISEXPIRERECORDS */ ++ VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 532, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ ++ VAR_FOR_UPSTREAM = 533, /* VAR_FOR_UPSTREAM */ ++ VAR_AUTH_ZONE = 534, /* VAR_AUTH_ZONE */ ++ VAR_ZONEFILE = 535, /* VAR_ZONEFILE */ ++ VAR_MASTER = 536, /* VAR_MASTER */ ++ VAR_URL = 537, /* VAR_URL */ ++ VAR_FOR_DOWNSTREAM = 538, /* VAR_FOR_DOWNSTREAM */ ++ VAR_FALLBACK_ENABLED = 539, /* VAR_FALLBACK_ENABLED */ ++ VAR_TLS_ADDITIONAL_PORT = 540, /* VAR_TLS_ADDITIONAL_PORT */ ++ VAR_LOW_RTT = 541, /* VAR_LOW_RTT */ ++ VAR_LOW_RTT_PERMIL = 542, /* VAR_LOW_RTT_PERMIL */ ++ VAR_FAST_SERVER_PERMIL = 543, /* VAR_FAST_SERVER_PERMIL */ ++ VAR_FAST_SERVER_NUM = 544, /* VAR_FAST_SERVER_NUM */ ++ VAR_ALLOW_NOTIFY = 545, /* VAR_ALLOW_NOTIFY */ ++ VAR_TLS_WIN_CERT = 546, /* VAR_TLS_WIN_CERT */ ++ VAR_TCP_CONNECTION_LIMIT = 547, /* VAR_TCP_CONNECTION_LIMIT */ ++ VAR_FORWARD_NO_CACHE = 548, /* VAR_FORWARD_NO_CACHE */ ++ VAR_STUB_NO_CACHE = 549, /* VAR_STUB_NO_CACHE */ ++ VAR_LOG_SERVFAIL = 550, /* VAR_LOG_SERVFAIL */ ++ VAR_DENY_ANY = 551, /* VAR_DENY_ANY */ ++ VAR_UNKNOWN_SERVER_TIME_LIMIT = 552, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ ++ VAR_LOG_TAG_QUERYREPLY = 553, /* VAR_LOG_TAG_QUERYREPLY */ ++ VAR_STREAM_WAIT_SIZE = 554, /* VAR_STREAM_WAIT_SIZE */ ++ VAR_TLS_CIPHERS = 555, /* VAR_TLS_CIPHERS */ ++ VAR_TLS_CIPHERSUITES = 556, /* VAR_TLS_CIPHERSUITES */ ++ VAR_TLS_USE_SNI = 557, /* VAR_TLS_USE_SNI */ ++ VAR_IPSET = 558, /* VAR_IPSET */ ++ VAR_IPSET_NAME_V4 = 559, /* VAR_IPSET_NAME_V4 */ ++ VAR_IPSET_NAME_V6 = 560, /* VAR_IPSET_NAME_V6 */ ++ VAR_TLS_SESSION_TICKET_KEYS = 561, /* VAR_TLS_SESSION_TICKET_KEYS */ ++ VAR_RPZ = 562, /* VAR_RPZ */ ++ VAR_TAGS = 563, /* VAR_TAGS */ ++ VAR_RPZ_ACTION_OVERRIDE = 564, /* VAR_RPZ_ACTION_OVERRIDE */ ++ VAR_RPZ_CNAME_OVERRIDE = 565, /* VAR_RPZ_CNAME_OVERRIDE */ ++ VAR_RPZ_LOG = 566, /* VAR_RPZ_LOG */ ++ VAR_RPZ_LOG_NAME = 567, /* VAR_RPZ_LOG_NAME */ ++ VAR_DYNLIB = 568, /* VAR_DYNLIB */ ++ VAR_DYNLIB_FILE = 569, /* VAR_DYNLIB_FILE */ ++ VAR_EDNS_CLIENT_STRING = 570, /* VAR_EDNS_CLIENT_STRING */ ++ VAR_EDNS_CLIENT_STRING_OPCODE = 571, /* VAR_EDNS_CLIENT_STRING_OPCODE */ ++ VAR_NSID = 572, /* VAR_NSID */ ++ VAR_ZONEMD_PERMISSIVE_MODE = 573, /* VAR_ZONEMD_PERMISSIVE_MODE */ ++ VAR_ZONEMD_CHECK = 574, /* VAR_ZONEMD_CHECK */ ++ VAR_ZONEMD_REJECT_ABSENCE = 575 /* VAR_ZONEMD_REJECT_ABSENCE */ }; + typedef enum yytokentype yytoken_kind_t; #endif -/* Tokens. */ +/* Token kinds. */ +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 #define SPACE 258 #define LETTER 259 #define NEWLINE 260 @@@ -386,315 -321,263 +387,316 @@@ #define ANY 263 #define ZONESTR 264 #define STRING_ARG 265 -#define VAR_SERVER 266 -#define VAR_VERBOSITY 267 -#define VAR_NUM_THREADS 268 -#define VAR_PORT 269 -#define VAR_OUTGOING_RANGE 270 -#define VAR_INTERFACE 271 -#define VAR_DO_IP4 272 -#define VAR_DO_IP6 273 -#define VAR_PREFER_IP6 274 -#define VAR_DO_UDP 275 -#define VAR_DO_TCP 276 -#define VAR_TCP_MSS 277 -#define VAR_OUTGOING_TCP_MSS 278 -#define VAR_TCP_IDLE_TIMEOUT 279 -#define VAR_EDNS_TCP_KEEPALIVE 280 -#define VAR_EDNS_TCP_KEEPALIVE_TIMEOUT 281 -#define VAR_CHROOT 282 -#define VAR_USERNAME 283 -#define VAR_DIRECTORY 284 -#define VAR_LOGFILE 285 -#define VAR_PIDFILE 286 -#define VAR_MSG_CACHE_SIZE 287 -#define VAR_MSG_CACHE_SLABS 288 -#define VAR_NUM_QUERIES_PER_THREAD 289 -#define VAR_RRSET_CACHE_SIZE 290 -#define VAR_RRSET_CACHE_SLABS 291 -#define VAR_OUTGOING_NUM_TCP 292 -#define VAR_INFRA_HOST_TTL 293 -#define VAR_INFRA_LAME_TTL 294 -#define VAR_INFRA_CACHE_SLABS 295 -#define VAR_INFRA_CACHE_NUMHOSTS 296 -#define VAR_INFRA_CACHE_LAME_SIZE 297 -#define VAR_NAME 298 -#define VAR_STUB_ZONE 299 -#define VAR_STUB_HOST 300 -#define VAR_STUB_ADDR 301 -#define VAR_TARGET_FETCH_POLICY 302 -#define VAR_HARDEN_SHORT_BUFSIZE 303 -#define VAR_HARDEN_LARGE_QUERIES 304 -#define VAR_FORWARD_ZONE 305 -#define VAR_FORWARD_HOST 306 -#define VAR_FORWARD_ADDR 307 -#define VAR_DO_NOT_QUERY_ADDRESS 308 -#define VAR_HIDE_IDENTITY 309 -#define VAR_HIDE_VERSION 310 -#define VAR_IDENTITY 311 -#define VAR_VERSION 312 -#define VAR_HARDEN_GLUE 313 -#define VAR_MODULE_CONF 314 -#define VAR_TRUST_ANCHOR_FILE 315 -#define VAR_TRUST_ANCHOR 316 -#define VAR_VAL_OVERRIDE_DATE 317 -#define VAR_BOGUS_TTL 318 -#define VAR_VAL_CLEAN_ADDITIONAL 319 -#define VAR_VAL_PERMISSIVE_MODE 320 -#define VAR_INCOMING_NUM_TCP 321 -#define VAR_MSG_BUFFER_SIZE 322 -#define VAR_KEY_CACHE_SIZE 323 -#define VAR_KEY_CACHE_SLABS 324 -#define VAR_TRUSTED_KEYS_FILE 325 -#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 326 -#define VAR_USE_SYSLOG 327 -#define VAR_OUTGOING_INTERFACE 328 -#define VAR_ROOT_HINTS 329 -#define VAR_DO_NOT_QUERY_LOCALHOST 330 -#define VAR_CACHE_MAX_TTL 331 -#define VAR_HARDEN_DNSSEC_STRIPPED 332 -#define VAR_ACCESS_CONTROL 333 -#define VAR_LOCAL_ZONE 334 -#define VAR_LOCAL_DATA 335 -#define VAR_INTERFACE_AUTOMATIC 336 -#define VAR_STATISTICS_INTERVAL 337 -#define VAR_DO_DAEMONIZE 338 -#define VAR_USE_CAPS_FOR_ID 339 -#define VAR_STATISTICS_CUMULATIVE 340 -#define VAR_OUTGOING_PORT_PERMIT 341 -#define VAR_OUTGOING_PORT_AVOID 342 -#define VAR_DLV_ANCHOR_FILE 343 -#define VAR_DLV_ANCHOR 344 -#define VAR_NEG_CACHE_SIZE 345 -#define VAR_HARDEN_REFERRAL_PATH 346 -#define VAR_PRIVATE_ADDRESS 347 -#define VAR_PRIVATE_DOMAIN 348 -#define VAR_REMOTE_CONTROL 349 -#define VAR_CONTROL_ENABLE 350 -#define VAR_CONTROL_INTERFACE 351 -#define VAR_CONTROL_PORT 352 -#define VAR_SERVER_KEY_FILE 353 -#define VAR_SERVER_CERT_FILE 354 -#define VAR_CONTROL_KEY_FILE 355 -#define VAR_CONTROL_CERT_FILE 356 -#define VAR_CONTROL_USE_CERT 357 -#define VAR_EXTENDED_STATISTICS 358 -#define VAR_LOCAL_DATA_PTR 359 -#define VAR_JOSTLE_TIMEOUT 360 -#define VAR_STUB_PRIME 361 -#define VAR_UNWANTED_REPLY_THRESHOLD 362 -#define VAR_LOG_TIME_ASCII 363 -#define VAR_DOMAIN_INSECURE 364 -#define VAR_PYTHON 365 -#define VAR_PYTHON_SCRIPT 366 -#define VAR_VAL_SIG_SKEW_MIN 367 -#define VAR_VAL_SIG_SKEW_MAX 368 -#define VAR_CACHE_MIN_TTL 369 -#define VAR_VAL_LOG_LEVEL 370 -#define VAR_AUTO_TRUST_ANCHOR_FILE 371 -#define VAR_KEEP_MISSING 372 -#define VAR_ADD_HOLDDOWN 373 -#define VAR_DEL_HOLDDOWN 374 -#define VAR_SO_RCVBUF 375 -#define VAR_EDNS_BUFFER_SIZE 376 -#define VAR_PREFETCH 377 -#define VAR_PREFETCH_KEY 378 -#define VAR_SO_SNDBUF 379 -#define VAR_SO_REUSEPORT 380 -#define VAR_HARDEN_BELOW_NXDOMAIN 381 -#define VAR_IGNORE_CD_FLAG 382 -#define VAR_LOG_QUERIES 383 -#define VAR_LOG_REPLIES 384 -#define VAR_LOG_LOCAL_ACTIONS 385 -#define VAR_TCP_UPSTREAM 386 -#define VAR_SSL_UPSTREAM 387 -#define VAR_SSL_SERVICE_KEY 388 -#define VAR_SSL_SERVICE_PEM 389 -#define VAR_SSL_PORT 390 -#define VAR_FORWARD_FIRST 391 -#define VAR_STUB_SSL_UPSTREAM 392 -#define VAR_FORWARD_SSL_UPSTREAM 393 -#define VAR_TLS_CERT_BUNDLE 394 -#define VAR_STUB_FIRST 395 -#define VAR_MINIMAL_RESPONSES 396 -#define VAR_RRSET_ROUNDROBIN 397 -#define VAR_MAX_UDP_SIZE 398 -#define VAR_DELAY_CLOSE 399 -#define VAR_UNBLOCK_LAN_ZONES 400 -#define VAR_INSECURE_LAN_ZONES 401 -#define VAR_INFRA_CACHE_MIN_RTT 402 -#define VAR_DNS64_PREFIX 403 -#define VAR_DNS64_SYNTHALL 404 -#define VAR_DNS64_IGNORE_AAAA 405 -#define VAR_DNSTAP 406 -#define VAR_DNSTAP_ENABLE 407 -#define VAR_DNSTAP_SOCKET_PATH 408 -#define VAR_DNSTAP_SEND_IDENTITY 409 -#define VAR_DNSTAP_SEND_VERSION 410 -#define VAR_DNSTAP_IDENTITY 411 -#define VAR_DNSTAP_VERSION 412 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 413 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 414 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 415 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 416 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 417 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 418 -#define VAR_RESPONSE_IP_TAG 419 -#define VAR_RESPONSE_IP 420 -#define VAR_RESPONSE_IP_DATA 421 -#define VAR_HARDEN_ALGO_DOWNGRADE 422 -#define VAR_IP_TRANSPARENT 423 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 424 -#define VAR_IP_RATELIMIT 425 -#define VAR_IP_RATELIMIT_SLABS 426 -#define VAR_IP_RATELIMIT_SIZE 427 -#define VAR_RATELIMIT 428 -#define VAR_RATELIMIT_SLABS 429 -#define VAR_RATELIMIT_SIZE 430 -#define VAR_OUTBOUND_MSG_RETRY 431 -#define VAR_RATELIMIT_FOR_DOMAIN 432 -#define VAR_RATELIMIT_BELOW_DOMAIN 433 -#define VAR_IP_RATELIMIT_FACTOR 434 -#define VAR_RATELIMIT_FACTOR 435 -#define VAR_SEND_CLIENT_SUBNET 436 -#define VAR_CLIENT_SUBNET_ZONE 437 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 438 -#define VAR_CLIENT_SUBNET_OPCODE 439 -#define VAR_MAX_CLIENT_SUBNET_IPV4 440 -#define VAR_MAX_CLIENT_SUBNET_IPV6 441 -#define VAR_MIN_CLIENT_SUBNET_IPV4 442 -#define VAR_MIN_CLIENT_SUBNET_IPV6 443 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 444 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 445 -#define VAR_CAPS_WHITELIST 446 -#define VAR_CACHE_MAX_NEGATIVE_TTL 447 -#define VAR_PERMIT_SMALL_HOLDDOWN 448 -#define VAR_QNAME_MINIMISATION 449 -#define VAR_QNAME_MINIMISATION_STRICT 450 -#define VAR_IP_FREEBIND 451 -#define VAR_DEFINE_TAG 452 -#define VAR_LOCAL_ZONE_TAG 453 -#define VAR_ACCESS_CONTROL_TAG 454 -#define VAR_LOCAL_ZONE_OVERRIDE 455 -#define VAR_ACCESS_CONTROL_TAG_ACTION 456 -#define VAR_ACCESS_CONTROL_TAG_DATA 457 -#define VAR_VIEW 458 -#define VAR_ACCESS_CONTROL_VIEW 459 -#define VAR_VIEW_FIRST 460 -#define VAR_SERVE_EXPIRED 461 -#define VAR_SERVE_EXPIRED_TTL 462 -#define VAR_SERVE_EXPIRED_TTL_RESET 463 -#define VAR_FAKE_DSA 464 -#define VAR_FAKE_SHA1 465 -#define VAR_LOG_IDENTITY 466 -#define VAR_HIDE_TRUSTANCHOR 467 -#define VAR_TRUST_ANCHOR_SIGNALING 468 -#define VAR_AGGRESSIVE_NSEC 469 -#define VAR_USE_SYSTEMD 470 -#define VAR_SHM_ENABLE 471 -#define VAR_SHM_KEY 472 -#define VAR_ROOT_KEY_SENTINEL 473 -#define VAR_DNSCRYPT 474 -#define VAR_DNSCRYPT_ENABLE 475 -#define VAR_DNSCRYPT_PORT 476 -#define VAR_DNSCRYPT_PROVIDER 477 -#define VAR_DNSCRYPT_SECRET_KEY 478 -#define VAR_DNSCRYPT_PROVIDER_CERT 479 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 480 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 481 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 482 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 483 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 484 -#define VAR_IPSECMOD_ENABLED 485 -#define VAR_IPSECMOD_HOOK 486 -#define VAR_IPSECMOD_IGNORE_BOGUS 487 -#define VAR_IPSECMOD_MAX_TTL 488 -#define VAR_IPSECMOD_WHITELIST 489 -#define VAR_IPSECMOD_STRICT 490 -#define VAR_CACHEDB 491 -#define VAR_CACHEDB_BACKEND 492 -#define VAR_CACHEDB_SECRETSEED 493 -#define VAR_CACHEDB_REDISHOST 494 -#define VAR_CACHEDB_REDISPORT 495 -#define VAR_CACHEDB_REDISTIMEOUT 496 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 497 -#define VAR_FOR_UPSTREAM 498 -#define VAR_AUTH_ZONE 499 -#define VAR_ZONEFILE 500 -#define VAR_MASTER 501 -#define VAR_URL 502 -#define VAR_FOR_DOWNSTREAM 503 -#define VAR_FALLBACK_ENABLED 504 -#define VAR_TLS_ADDITIONAL_PORT 505 -#define VAR_LOW_RTT 506 -#define VAR_LOW_RTT_PERMIL 507 -#define VAR_FAST_SERVER_PERMIL 508 -#define VAR_FAST_SERVER_NUM 509 -#define VAR_ALLOW_NOTIFY 510 -#define VAR_TLS_WIN_CERT 511 -#define VAR_TCP_CONNECTION_LIMIT 512 -#define VAR_FORWARD_NO_CACHE 513 -#define VAR_STUB_NO_CACHE 514 -#define VAR_LOG_SERVFAIL 515 -#define VAR_DENY_ANY 516 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 517 -#define VAR_LOG_TAG_QUERYREPLY 518 -#define VAR_STREAM_WAIT_SIZE 519 -#define VAR_TLS_CIPHERS 520 -#define VAR_TLS_CIPHERSUITES 521 -#define VAR_TLS_SESSION_TICKET_KEYS 522 +#define VAR_FORCE_TOPLEVEL 266 +#define VAR_SERVER 267 +#define VAR_VERBOSITY 268 +#define VAR_NUM_THREADS 269 +#define VAR_PORT 270 +#define VAR_OUTGOING_RANGE 271 +#define VAR_INTERFACE 272 +#define VAR_PREFER_IP4 273 +#define VAR_DO_IP4 274 +#define VAR_DO_IP6 275 +#define VAR_PREFER_IP6 276 +#define VAR_DO_UDP 277 +#define VAR_DO_TCP 278 +#define VAR_TCP_MSS 279 +#define VAR_OUTGOING_TCP_MSS 280 +#define VAR_TCP_IDLE_TIMEOUT 281 +#define VAR_EDNS_TCP_KEEPALIVE 282 +#define VAR_EDNS_TCP_KEEPALIVE_TIMEOUT 283 +#define VAR_CHROOT 284 +#define VAR_USERNAME 285 +#define VAR_DIRECTORY 286 +#define VAR_LOGFILE 287 +#define VAR_PIDFILE 288 +#define VAR_MSG_CACHE_SIZE 289 +#define VAR_MSG_CACHE_SLABS 290 +#define VAR_NUM_QUERIES_PER_THREAD 291 +#define VAR_RRSET_CACHE_SIZE 292 +#define VAR_RRSET_CACHE_SLABS 293 +#define VAR_OUTGOING_NUM_TCP 294 +#define VAR_INFRA_HOST_TTL 295 +#define VAR_INFRA_LAME_TTL 296 +#define VAR_INFRA_CACHE_SLABS 297 +#define VAR_INFRA_CACHE_NUMHOSTS 298 +#define VAR_INFRA_CACHE_LAME_SIZE 299 +#define VAR_NAME 300 +#define VAR_STUB_ZONE 301 +#define VAR_STUB_HOST 302 +#define VAR_STUB_ADDR 303 +#define VAR_TARGET_FETCH_POLICY 304 +#define VAR_HARDEN_SHORT_BUFSIZE 305 +#define VAR_HARDEN_LARGE_QUERIES 306 +#define VAR_FORWARD_ZONE 307 +#define VAR_FORWARD_HOST 308 +#define VAR_FORWARD_ADDR 309 +#define VAR_DO_NOT_QUERY_ADDRESS 310 +#define VAR_HIDE_IDENTITY 311 +#define VAR_HIDE_VERSION 312 +#define VAR_IDENTITY 313 +#define VAR_VERSION 314 +#define VAR_HARDEN_GLUE 315 +#define VAR_MODULE_CONF 316 +#define VAR_TRUST_ANCHOR_FILE 317 +#define VAR_TRUST_ANCHOR 318 +#define VAR_VAL_OVERRIDE_DATE 319 +#define VAR_BOGUS_TTL 320 +#define VAR_VAL_CLEAN_ADDITIONAL 321 +#define VAR_VAL_PERMISSIVE_MODE 322 +#define VAR_INCOMING_NUM_TCP 323 +#define VAR_MSG_BUFFER_SIZE 324 +#define VAR_KEY_CACHE_SIZE 325 +#define VAR_KEY_CACHE_SLABS 326 +#define VAR_TRUSTED_KEYS_FILE 327 +#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 328 +#define VAR_USE_SYSLOG 329 +#define VAR_OUTGOING_INTERFACE 330 +#define VAR_ROOT_HINTS 331 +#define VAR_DO_NOT_QUERY_LOCALHOST 332 +#define VAR_CACHE_MAX_TTL 333 +#define VAR_HARDEN_DNSSEC_STRIPPED 334 +#define VAR_ACCESS_CONTROL 335 +#define VAR_LOCAL_ZONE 336 +#define VAR_LOCAL_DATA 337 +#define VAR_INTERFACE_AUTOMATIC 338 +#define VAR_STATISTICS_INTERVAL 339 +#define VAR_DO_DAEMONIZE 340 +#define VAR_USE_CAPS_FOR_ID 341 +#define VAR_STATISTICS_CUMULATIVE 342 +#define VAR_OUTGOING_PORT_PERMIT 343 +#define VAR_OUTGOING_PORT_AVOID 344 +#define VAR_DLV_ANCHOR_FILE 345 +#define VAR_DLV_ANCHOR 346 +#define VAR_NEG_CACHE_SIZE 347 +#define VAR_HARDEN_REFERRAL_PATH 348 +#define VAR_PRIVATE_ADDRESS 349 +#define VAR_PRIVATE_DOMAIN 350 +#define VAR_REMOTE_CONTROL 351 +#define VAR_CONTROL_ENABLE 352 +#define VAR_CONTROL_INTERFACE 353 +#define VAR_CONTROL_PORT 354 +#define VAR_SERVER_KEY_FILE 355 +#define VAR_SERVER_CERT_FILE 356 +#define VAR_CONTROL_KEY_FILE 357 +#define VAR_CONTROL_CERT_FILE 358 +#define VAR_CONTROL_USE_CERT 359 +#define VAR_TCP_REUSE_TIMEOUT 360 +#define VAR_MAX_REUSE_TCP_QUERIES 361 +#define VAR_EXTENDED_STATISTICS 362 +#define VAR_LOCAL_DATA_PTR 363 +#define VAR_JOSTLE_TIMEOUT 364 +#define VAR_STUB_PRIME 365 +#define VAR_UNWANTED_REPLY_THRESHOLD 366 +#define VAR_LOG_TIME_ASCII 367 +#define VAR_DOMAIN_INSECURE 368 +#define VAR_PYTHON 369 +#define VAR_PYTHON_SCRIPT 370 +#define VAR_VAL_SIG_SKEW_MIN 371 +#define VAR_VAL_SIG_SKEW_MAX 372 +#define VAR_VAL_MAX_RESTART 373 +#define VAR_CACHE_MIN_TTL 374 +#define VAR_VAL_LOG_LEVEL 375 +#define VAR_AUTO_TRUST_ANCHOR_FILE 376 +#define VAR_KEEP_MISSING 377 +#define VAR_ADD_HOLDDOWN 378 +#define VAR_DEL_HOLDDOWN 379 +#define VAR_SO_RCVBUF 380 +#define VAR_EDNS_BUFFER_SIZE 381 +#define VAR_PREFETCH 382 +#define VAR_PREFETCH_KEY 383 +#define VAR_SO_SNDBUF 384 +#define VAR_SO_REUSEPORT 385 +#define VAR_HARDEN_BELOW_NXDOMAIN 386 +#define VAR_IGNORE_CD_FLAG 387 +#define VAR_LOG_QUERIES 388 +#define VAR_LOG_REPLIES 389 +#define VAR_LOG_LOCAL_ACTIONS 390 +#define VAR_TCP_UPSTREAM 391 +#define VAR_SSL_UPSTREAM 392 +#define VAR_TCP_AUTH_QUERY_TIMEOUT 393 +#define VAR_SSL_SERVICE_KEY 394 +#define VAR_SSL_SERVICE_PEM 395 +#define VAR_SSL_PORT 396 +#define VAR_FORWARD_FIRST 397 +#define VAR_STUB_SSL_UPSTREAM 398 +#define VAR_FORWARD_SSL_UPSTREAM 399 +#define VAR_TLS_CERT_BUNDLE 400 +#define VAR_STUB_TCP_UPSTREAM 401 +#define VAR_FORWARD_TCP_UPSTREAM 402 +#define VAR_HTTPS_PORT 403 +#define VAR_HTTP_ENDPOINT 404 +#define VAR_HTTP_MAX_STREAMS 405 +#define VAR_HTTP_QUERY_BUFFER_SIZE 406 +#define VAR_HTTP_RESPONSE_BUFFER_SIZE 407 +#define VAR_HTTP_NODELAY 408 +#define VAR_HTTP_NOTLS_DOWNSTREAM 409 +#define VAR_STUB_FIRST 410 +#define VAR_MINIMAL_RESPONSES 411 +#define VAR_RRSET_ROUNDROBIN 412 +#define VAR_MAX_UDP_SIZE 413 +#define VAR_DELAY_CLOSE 414 +#define VAR_UDP_CONNECT 415 +#define VAR_UNBLOCK_LAN_ZONES 416 +#define VAR_INSECURE_LAN_ZONES 417 +#define VAR_INFRA_CACHE_MIN_RTT 418 +#define VAR_INFRA_KEEP_PROBING 419 +#define VAR_DNS64_PREFIX 420 +#define VAR_DNS64_SYNTHALL 421 +#define VAR_DNS64_IGNORE_AAAA 422 +#define VAR_DNSTAP 423 +#define VAR_DNSTAP_ENABLE 424 +#define VAR_DNSTAP_SOCKET_PATH 425 +#define VAR_DNSTAP_IP 426 +#define VAR_DNSTAP_TLS 427 +#define VAR_DNSTAP_TLS_SERVER_NAME 428 +#define VAR_DNSTAP_TLS_CERT_BUNDLE 429 +#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 430 +#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 431 +#define VAR_DNSTAP_SEND_IDENTITY 432 +#define VAR_DNSTAP_SEND_VERSION 433 +#define VAR_DNSTAP_BIDIRECTIONAL 434 +#define VAR_DNSTAP_IDENTITY 435 +#define VAR_DNSTAP_VERSION 436 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 437 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 438 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 439 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 440 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 441 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 442 +#define VAR_RESPONSE_IP_TAG 443 +#define VAR_RESPONSE_IP 444 +#define VAR_RESPONSE_IP_DATA 445 +#define VAR_HARDEN_ALGO_DOWNGRADE 446 +#define VAR_IP_TRANSPARENT 447 +#define VAR_IP_DSCP 448 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 449 +#define VAR_IP_RATELIMIT 450 +#define VAR_IP_RATELIMIT_SLABS 451 +#define VAR_IP_RATELIMIT_SIZE 452 +#define VAR_RATELIMIT 453 +#define VAR_RATELIMIT_SLABS 454 +#define VAR_RATELIMIT_SIZE 455 - #define VAR_RATELIMIT_FOR_DOMAIN 456 - #define VAR_RATELIMIT_BELOW_DOMAIN 457 - #define VAR_IP_RATELIMIT_FACTOR 458 - #define VAR_RATELIMIT_FACTOR 459 - #define VAR_SEND_CLIENT_SUBNET 460 - #define VAR_CLIENT_SUBNET_ZONE 461 - #define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 462 - #define VAR_CLIENT_SUBNET_OPCODE 463 - #define VAR_MAX_CLIENT_SUBNET_IPV4 464 - #define VAR_MAX_CLIENT_SUBNET_IPV6 465 - #define VAR_MIN_CLIENT_SUBNET_IPV4 466 - #define VAR_MIN_CLIENT_SUBNET_IPV6 467 - #define VAR_MAX_ECS_TREE_SIZE_IPV4 468 - #define VAR_MAX_ECS_TREE_SIZE_IPV6 469 - #define VAR_CAPS_WHITELIST 470 - #define VAR_CACHE_MAX_NEGATIVE_TTL 471 - #define VAR_PERMIT_SMALL_HOLDDOWN 472 - #define VAR_QNAME_MINIMISATION 473 - #define VAR_QNAME_MINIMISATION_STRICT 474 - #define VAR_IP_FREEBIND 475 - #define VAR_DEFINE_TAG 476 - #define VAR_LOCAL_ZONE_TAG 477 - #define VAR_ACCESS_CONTROL_TAG 478 - #define VAR_LOCAL_ZONE_OVERRIDE 479 - #define VAR_ACCESS_CONTROL_TAG_ACTION 480 - #define VAR_ACCESS_CONTROL_TAG_DATA 481 - #define VAR_VIEW 482 - #define VAR_ACCESS_CONTROL_VIEW 483 - #define VAR_VIEW_FIRST 484 - #define VAR_SERVE_EXPIRED 485 - #define VAR_SERVE_EXPIRED_TTL 486 - #define VAR_SERVE_EXPIRED_TTL_RESET 487 - #define VAR_SERVE_EXPIRED_REPLY_TTL 488 - #define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 489 - #define VAR_SERVE_ORIGINAL_TTL 490 - #define VAR_FAKE_DSA 491 - #define VAR_FAKE_SHA1 492 - #define VAR_LOG_IDENTITY 493 - #define VAR_HIDE_TRUSTANCHOR 494 - #define VAR_HIDE_HTTP_USER_AGENT 495 - #define VAR_HTTP_USER_AGENT 496 - #define VAR_TRUST_ANCHOR_SIGNALING 497 - #define VAR_AGGRESSIVE_NSEC 498 - #define VAR_USE_SYSTEMD 499 - #define VAR_SHM_ENABLE 500 - #define VAR_SHM_KEY 501 - #define VAR_ROOT_KEY_SENTINEL 502 - #define VAR_DNSCRYPT 503 - #define VAR_DNSCRYPT_ENABLE 504 - #define VAR_DNSCRYPT_PORT 505 - #define VAR_DNSCRYPT_PROVIDER 506 - #define VAR_DNSCRYPT_SECRET_KEY 507 - #define VAR_DNSCRYPT_PROVIDER_CERT 508 - #define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 509 - #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 510 - #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 511 - #define VAR_DNSCRYPT_NONCE_CACHE_SIZE 512 - #define VAR_DNSCRYPT_NONCE_CACHE_SLABS 513 - #define VAR_PAD_RESPONSES 514 - #define VAR_PAD_RESPONSES_BLOCK_SIZE 515 - #define VAR_PAD_QUERIES 516 - #define VAR_PAD_QUERIES_BLOCK_SIZE 517 - #define VAR_IPSECMOD_ENABLED 518 - #define VAR_IPSECMOD_HOOK 519 - #define VAR_IPSECMOD_IGNORE_BOGUS 520 - #define VAR_IPSECMOD_MAX_TTL 521 - #define VAR_IPSECMOD_WHITELIST 522 - #define VAR_IPSECMOD_STRICT 523 - #define VAR_CACHEDB 524 - #define VAR_CACHEDB_BACKEND 525 - #define VAR_CACHEDB_SECRETSEED 526 - #define VAR_CACHEDB_REDISHOST 527 - #define VAR_CACHEDB_REDISPORT 528 - #define VAR_CACHEDB_REDISTIMEOUT 529 - #define VAR_CACHEDB_REDISEXPIRERECORDS 530 - #define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 531 - #define VAR_FOR_UPSTREAM 532 - #define VAR_AUTH_ZONE 533 - #define VAR_ZONEFILE 534 - #define VAR_MASTER 535 - #define VAR_URL 536 - #define VAR_FOR_DOWNSTREAM 537 - #define VAR_FALLBACK_ENABLED 538 - #define VAR_TLS_ADDITIONAL_PORT 539 - #define VAR_LOW_RTT 540 - #define VAR_LOW_RTT_PERMIL 541 - #define VAR_FAST_SERVER_PERMIL 542 - #define VAR_FAST_SERVER_NUM 543 - #define VAR_ALLOW_NOTIFY 544 - #define VAR_TLS_WIN_CERT 545 - #define VAR_TCP_CONNECTION_LIMIT 546 - #define VAR_FORWARD_NO_CACHE 547 - #define VAR_STUB_NO_CACHE 548 - #define VAR_LOG_SERVFAIL 549 - #define VAR_DENY_ANY 550 - #define VAR_UNKNOWN_SERVER_TIME_LIMIT 551 - #define VAR_LOG_TAG_QUERYREPLY 552 - #define VAR_STREAM_WAIT_SIZE 553 - #define VAR_TLS_CIPHERS 554 - #define VAR_TLS_CIPHERSUITES 555 - #define VAR_TLS_USE_SNI 556 - #define VAR_IPSET 557 - #define VAR_IPSET_NAME_V4 558 - #define VAR_IPSET_NAME_V6 559 - #define VAR_TLS_SESSION_TICKET_KEYS 560 - #define VAR_RPZ 561 - #define VAR_TAGS 562 - #define VAR_RPZ_ACTION_OVERRIDE 563 - #define VAR_RPZ_CNAME_OVERRIDE 564 - #define VAR_RPZ_LOG 565 - #define VAR_RPZ_LOG_NAME 566 - #define VAR_DYNLIB 567 - #define VAR_DYNLIB_FILE 568 - #define VAR_EDNS_CLIENT_STRING 569 - #define VAR_EDNS_CLIENT_STRING_OPCODE 570 - #define VAR_NSID 571 - #define VAR_ZONEMD_PERMISSIVE_MODE 572 - #define VAR_ZONEMD_CHECK 573 - #define VAR_ZONEMD_REJECT_ABSENCE 574 ++#define VAR_OUTBOUND_MSG_RETRY 456 ++#define VAR_RATELIMIT_FOR_DOMAIN 457 ++#define VAR_RATELIMIT_BELOW_DOMAIN 458 ++#define VAR_IP_RATELIMIT_FACTOR 459 ++#define VAR_RATELIMIT_FACTOR 460 ++#define VAR_SEND_CLIENT_SUBNET 461 ++#define VAR_CLIENT_SUBNET_ZONE 462 ++#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 463 ++#define VAR_CLIENT_SUBNET_OPCODE 464 ++#define VAR_MAX_CLIENT_SUBNET_IPV4 465 ++#define VAR_MAX_CLIENT_SUBNET_IPV6 466 ++#define VAR_MIN_CLIENT_SUBNET_IPV4 467 ++#define VAR_MIN_CLIENT_SUBNET_IPV6 468 ++#define VAR_MAX_ECS_TREE_SIZE_IPV4 469 ++#define VAR_MAX_ECS_TREE_SIZE_IPV6 470 ++#define VAR_CAPS_WHITELIST 471 ++#define VAR_CACHE_MAX_NEGATIVE_TTL 472 ++#define VAR_PERMIT_SMALL_HOLDDOWN 473 ++#define VAR_QNAME_MINIMISATION 474 ++#define VAR_QNAME_MINIMISATION_STRICT 475 ++#define VAR_IP_FREEBIND 476 ++#define VAR_DEFINE_TAG 477 ++#define VAR_LOCAL_ZONE_TAG 478 ++#define VAR_ACCESS_CONTROL_TAG 479 ++#define VAR_LOCAL_ZONE_OVERRIDE 480 ++#define VAR_ACCESS_CONTROL_TAG_ACTION 481 ++#define VAR_ACCESS_CONTROL_TAG_DATA 482 ++#define VAR_VIEW 483 ++#define VAR_ACCESS_CONTROL_VIEW 484 ++#define VAR_VIEW_FIRST 485 ++#define VAR_SERVE_EXPIRED 486 ++#define VAR_SERVE_EXPIRED_TTL 487 ++#define VAR_SERVE_EXPIRED_TTL_RESET 488 ++#define VAR_SERVE_EXPIRED_REPLY_TTL 489 ++#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 490 ++#define VAR_SERVE_ORIGINAL_TTL 491 ++#define VAR_FAKE_DSA 492 ++#define VAR_FAKE_SHA1 493 ++#define VAR_LOG_IDENTITY 494 ++#define VAR_HIDE_TRUSTANCHOR 495 ++#define VAR_HIDE_HTTP_USER_AGENT 496 ++#define VAR_HTTP_USER_AGENT 497 ++#define VAR_TRUST_ANCHOR_SIGNALING 498 ++#define VAR_AGGRESSIVE_NSEC 499 ++#define VAR_USE_SYSTEMD 500 ++#define VAR_SHM_ENABLE 501 ++#define VAR_SHM_KEY 502 ++#define VAR_ROOT_KEY_SENTINEL 503 ++#define VAR_DNSCRYPT 504 ++#define VAR_DNSCRYPT_ENABLE 505 ++#define VAR_DNSCRYPT_PORT 506 ++#define VAR_DNSCRYPT_PROVIDER 507 ++#define VAR_DNSCRYPT_SECRET_KEY 508 ++#define VAR_DNSCRYPT_PROVIDER_CERT 509 ++#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 510 ++#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 511 ++#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 512 ++#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 513 ++#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 514 ++#define VAR_PAD_RESPONSES 515 ++#define VAR_PAD_RESPONSES_BLOCK_SIZE 516 ++#define VAR_PAD_QUERIES 517 ++#define VAR_PAD_QUERIES_BLOCK_SIZE 518 ++#define VAR_IPSECMOD_ENABLED 519 ++#define VAR_IPSECMOD_HOOK 520 ++#define VAR_IPSECMOD_IGNORE_BOGUS 521 ++#define VAR_IPSECMOD_MAX_TTL 522 ++#define VAR_IPSECMOD_WHITELIST 523 ++#define VAR_IPSECMOD_STRICT 524 ++#define VAR_CACHEDB 525 ++#define VAR_CACHEDB_BACKEND 526 ++#define VAR_CACHEDB_SECRETSEED 527 ++#define VAR_CACHEDB_REDISHOST 528 ++#define VAR_CACHEDB_REDISPORT 529 ++#define VAR_CACHEDB_REDISTIMEOUT 530 ++#define VAR_CACHEDB_REDISEXPIRERECORDS 531 ++#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 532 ++#define VAR_FOR_UPSTREAM 533 ++#define VAR_AUTH_ZONE 534 ++#define VAR_ZONEFILE 535 ++#define VAR_MASTER 536 ++#define VAR_URL 537 ++#define VAR_FOR_DOWNSTREAM 538 ++#define VAR_FALLBACK_ENABLED 539 ++#define VAR_TLS_ADDITIONAL_PORT 540 ++#define VAR_LOW_RTT 541 ++#define VAR_LOW_RTT_PERMIL 542 ++#define VAR_FAST_SERVER_PERMIL 543 ++#define VAR_FAST_SERVER_NUM 544 ++#define VAR_ALLOW_NOTIFY 545 ++#define VAR_TLS_WIN_CERT 546 ++#define VAR_TCP_CONNECTION_LIMIT 547 ++#define VAR_FORWARD_NO_CACHE 548 ++#define VAR_STUB_NO_CACHE 549 ++#define VAR_LOG_SERVFAIL 550 ++#define VAR_DENY_ANY 551 ++#define VAR_UNKNOWN_SERVER_TIME_LIMIT 552 ++#define VAR_LOG_TAG_QUERYREPLY 553 ++#define VAR_STREAM_WAIT_SIZE 554 ++#define VAR_TLS_CIPHERS 555 ++#define VAR_TLS_CIPHERSUITES 556 ++#define VAR_TLS_USE_SNI 557 ++#define VAR_IPSET 558 ++#define VAR_IPSET_NAME_V4 559 ++#define VAR_IPSET_NAME_V6 560 ++#define VAR_TLS_SESSION_TICKET_KEYS 561 ++#define VAR_RPZ 562 ++#define VAR_TAGS 563 ++#define VAR_RPZ_ACTION_OVERRIDE 564 ++#define VAR_RPZ_CNAME_OVERRIDE 565 ++#define VAR_RPZ_LOG 566 ++#define VAR_RPZ_LOG_NAME 567 ++#define VAR_DYNLIB 568 ++#define VAR_DYNLIB_FILE 569 ++#define VAR_EDNS_CLIENT_STRING 570 ++#define VAR_EDNS_CLIENT_STRING_OPCODE 571 ++#define VAR_NSID 572 ++#define VAR_ZONEMD_PERMISSIVE_MODE 573 ++#define VAR_ZONEMD_CHECK 574 ++#define VAR_ZONEMD_REJECT_ABSENCE 575 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@@ -704,9 -588,9 +706,9 @@@ union YYSTYP char* str; - #line 708 "util/configparser.h" -#line 592 "util/configparser.h" /* yacc.c:1909 */ -}; ++#line 710 "util/configparser.h" +}; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 diff --cc util/configparser.y index be8fe2dac,2681e76b5..b2df7a5d3 --- a/util/configparser.y +++ b/util/configparser.y @@@ -190,21 -172,15 +191,21 @@@ extern struct config_parser_state* cfg_ %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; toplevelvar: serverstart contents_server | stubstart contents_stub | - forwardstart contents_forward | pythonstart contents_py | + forwardstart contents_forward | pythonstart contents_py | rcstart contents_rc | dtstart contents_dt | viewstart contents_view | dnscstart contents_dnsc | cachedbstart contents_cachedb | - authstart contents_auth + ipsetstart contents_ipset | authstart contents_auth | + rpzstart contents_rpz | dynlibstart contents_dl | + force_toplevel + ; +force_toplevel: VAR_FORCE_TOPLEVEL + { + OUTYY(("\nP(force-toplevel)\n")); + } ; - /* server: declaration */ serverstart: VAR_SERVER - { + { OUTYY(("\nP(server:)\n")); } ; @@@ -243,13 -218,12 +244,13 @@@ content_server: server_num_threads | se server_outgoing_port_permit | server_outgoing_port_avoid | server_dlv_anchor_file | server_dlv_anchor | server_neg_cache_size | server_harden_referral_path | server_private_address | - server_private_domain | server_extended_statistics | - server_local_data_ptr | server_jostle_timeout | - server_unwanted_reply_threshold | server_log_time_ascii | - server_domain_insecure | server_val_sig_skew_min | + server_private_domain | server_extended_statistics | + server_local_data_ptr | server_jostle_timeout | + server_unwanted_reply_threshold | server_log_time_ascii | + server_domain_insecure | server_val_sig_skew_min | - server_val_sig_skew_max | server_cache_min_ttl | server_val_log_level | - server_auto_trust_anchor_file | server_add_holddown | + server_val_sig_skew_max | server_val_max_restart | + server_cache_min_ttl | server_val_log_level | + server_auto_trust_anchor_file | server_add_holddown | server_del_holddown | server_keep_missing | server_so_rcvbuf | server_edns_buffer_size | server_prefetch | server_prefetch_key | server_so_sndbuf | server_harden_below_nxdomain | server_ignore_cd_flag | @@@ -322,10 -282,10 +323,10 @@@ stubstart: VAR_STUB_ZON yyerror("out of memory"); } ; - contents_stub: contents_stub content_stub + contents_stub: contents_stub content_stub | ; content_stub: stub_name | stub_host | stub_addr | stub_prime | stub_first | - stub_no_cache | stub_ssl_upstream + stub_no_cache | stub_ssl_upstream | stub_tcp_upstream ; forwardstart: VAR_FORWARD_ZONE { @@@ -339,10 -299,10 +340,10 @@@ yyerror("out of memory"); } ; - contents_forward: contents_forward content_forward + contents_forward: contents_forward content_forward | ; content_forward: forward_name | forward_host | forward_addr | forward_first | - forward_no_cache | forward_ssl_upstream + forward_no_cache | forward_ssl_upstream | forward_tcp_upstream ; viewstart: VAR_VIEW { @@@ -375,10 -335,7 +376,10 @@@ authstart: VAR_AUTH_ZON s->for_downstream = 1; s->for_upstream = 1; s->fallback_enabled = 0; + s->zonemd_check = 0; + s->zonemd_reject_absence = 0; + s->isrpz = 0; - } else + } else yyerror("out of memory"); } ; @@@ -386,97 -343,11 +387,97 @@@ contents_auth: contents_auth content_au | ; content_auth: auth_name | auth_zonefile | auth_master | auth_url | auth_for_downstream | auth_for_upstream | auth_fallback_enabled | - auth_allow_notify + auth_allow_notify | auth_zonemd_check | auth_zonemd_reject_absence + ; + +rpz_tag: VAR_TAGS STRING_ARG + { + uint8_t* bitlist; + size_t len = 0; + OUTYY(("P(server_local_zone_tag:%s)\n", $2)); + bitlist = config_parse_taglist(cfg_parser->cfg, $2, + &len); + free($2); + if(!bitlist) { + yyerror("could not parse tags, (define-tag them first)"); + } + if(bitlist) { + cfg_parser->cfg->auths->rpz_taglist = bitlist; + cfg_parser->cfg->auths->rpz_taglistlen = len; + + } + } + ; + +rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG + { + OUTYY(("P(rpz_action_override:%s)\n", $2)); + if(strcmp($2, "nxdomain")!=0 && strcmp($2, "nodata")!=0 && + strcmp($2, "passthru")!=0 && strcmp($2, "drop")!=0 && + strcmp($2, "cname")!=0 && strcmp($2, "disabled")!=0) { + yyerror("rpz-action-override action: expected nxdomain, " + "nodata, passthru, drop, cname or disabled"); + free($2); + cfg_parser->cfg->auths->rpz_action_override = NULL; + } + else { + cfg_parser->cfg->auths->rpz_action_override = $2; + } + } + ; + +rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG + { + OUTYY(("P(rpz_cname_override:%s)\n", $2)); + free(cfg_parser->cfg->auths->rpz_cname); + cfg_parser->cfg->auths->rpz_cname = $2; + } + ; + +rpz_log: VAR_RPZ_LOG STRING_ARG + { + OUTYY(("P(rpz_log:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->auths->rpz_log = (strcmp($2, "yes")==0); + free($2); + } + ; + +rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG + { + OUTYY(("P(rpz_log_name:%s)\n", $2)); + free(cfg_parser->cfg->auths->rpz_log_name); + cfg_parser->cfg->auths->rpz_log_name = $2; + } + ; + +rpzstart: VAR_RPZ + { + struct config_auth* s; + OUTYY(("\nP(rpz:)\n")); + s = (struct config_auth*)calloc(1, sizeof(struct config_auth)); + if(s) { + s->next = cfg_parser->cfg->auths; + cfg_parser->cfg->auths = s; + /* defaults for RPZ auth zone */ + s->for_downstream = 0; + s->for_upstream = 0; + s->fallback_enabled = 0; + s->isrpz = 1; + } else + yyerror("out of memory"); + } + ; +contents_rpz: contents_rpz content_rpz + | ; +content_rpz: auth_name | auth_zonefile | rpz_tag | auth_master | auth_url | + auth_allow_notify | rpz_action_override | rpz_cname_override | + rpz_log | rpz_log_name ; - server_num_threads: VAR_NUM_THREADS STRING_ARG - { - OUTYY(("P(server_num_threads:%s)\n", $2)); + server_num_threads: VAR_NUM_THREADS STRING_ARG + { + OUTYY(("P(server_num_threads:%s)\n", $2)); if(atoi($2) == 0 && strcmp($2, "0") != 0) yyerror("number expected"); else cfg_parser->cfg->num_threads = atoi($2); @@@ -1403,49 -1125,35 +1404,49 @@@ server_so_sndbuf: VAR_SO_SNDBUF STRING_ } ; server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG - { - OUTYY(("P(server_so_reuseport:%s)\n", $2)); - if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->so_reuseport = - (strcmp($2, "yes")==0); - free($2); - } - ; + { + OUTYY(("P(server_so_reuseport:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->so_reuseport = + (strcmp($2, "yes")==0); + free($2); + } + ; server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG - { - OUTYY(("P(server_ip_transparent:%s)\n", $2)); - if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ip_transparent = - (strcmp($2, "yes")==0); - free($2); - } - ; + { + OUTYY(("P(server_ip_transparent:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->ip_transparent = + (strcmp($2, "yes")==0); + free($2); + } + ; server_ip_freebind: VAR_IP_FREEBIND STRING_ARG - { - OUTYY(("P(server_ip_freebind:%s)\n", $2)); - if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ip_freebind = - (strcmp($2, "yes")==0); - free($2); - } - ; + { + OUTYY(("P(server_ip_freebind:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->ip_freebind = + (strcmp($2, "yes")==0); + free($2); + } + ; +server_ip_dscp: VAR_IP_DSCP STRING_ARG + { + OUTYY(("P(server_ip_dscp:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("number expected"); + else if (atoi($2) > 63) + yyerror("value too large (max 63)"); + else if (atoi($2) < 0) + yyerror("value too small (min 0)"); + else + cfg_parser->cfg->ip_dscp = atoi($2); + free($2); + } + ; server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG { OUTYY(("P(server_stream_wait_size:%s)\n", $2)); @@@ -2164,15 -1799,8 +2165,15 @@@ server_local_zone: VAR_LOCAL_ZONE STRIN local_zones_nodefault, $2)) fatal_exit("out of memory adding local-zone"); free($3); +#ifdef USE_IPSET + } else if(strcmp($3, "ipset")==0) { + if(!cfg_strlist_insert(&cfg_parser->cfg-> + local_zones_ipset, $2)) + fatal_exit("out of memory adding local-zone"); + free($3); +#endif } else { - if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones, + if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones, $2, $3)) fatal_exit("out of memory adding local-zone"); } @@@ -2934,16 -2465,9 +2944,16 @@@ view_local_zone: VAR_LOCAL_ZONE STRING_ local_zones_nodefault, $2)) fatal_exit("out of memory adding local-zone"); free($3); +#ifdef USE_IPSET + } else if(strcmp($3, "ipset")==0) { + if(!cfg_strlist_insert(&cfg_parser->cfg->views-> + local_zones_ipset, $2)) + fatal_exit("out of memory adding local-zone"); + free($3); +#endif } else { if(!cfg_str2list_insert( - &cfg_parser->cfg->views->local_zones, + &cfg_parser->cfg->views->local_zones, $2, $3)) fatal_exit("out of memory adding local-zone"); }