]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- disable-dnssec-lame-check config option from Charles Walker.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Tue, 24 May 2016 12:17:42 +0000 (12:17 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Tue, 24 May 2016 12:17:42 +0000 (12:17 +0000)
git-svn-id: file:///svn/unbound/trunk@3725 be551aaa-1e26-0410-a405-d3ace91eadb9

doc/Changelog
doc/example.conf.in
doc/unbound.conf.5.in
iterator/iterator.c
util/config_file.c
util/config_file.h
util/configlexer.c
util/configlexer.lex
util/configparser.c
util/configparser.h
util/configparser.y

index 4f26ea58a57791564afacbbd03a7841a5a2c28ae..64b774072bf534747944acbe4be4cf147a9f7c30 100644 (file)
@@ -1,4 +1,7 @@
-23 May 2016: Ralph
+24 May 2016: Wouter
+       - disable-dnssec-lame-check config option from Charles Walker.
+
+23 May 2016: Wouter
        - Fix #767:  Reference to an expired Internet-Draft in
          harden-below-nxdomain documentation.
 
index bbd65f6b444b66dffd53bd448025b582e1544cd7..179008f45d9ed72c1c8ccae11f4f359a1110c93b 100644 (file)
@@ -369,6 +369,9 @@ server:
        # into response messages when those sections are not required.
        # minimal-responses: no
 
+       # true to disable DNSSEC lameness check in iterator.
+       # disable-dnssec-lame-check: no
+
        # module configuration of the server. A string with identifiers
        # separated by spaces. Syntax: "[dns64] [validator] iterator"
        # module-config: "validator iterator"
index 9f5f00712e3c3cc98731cf8f06e45ca91bbcdb60..41ef66c711e025481bcb8e8fca545611e3abc9b5 100644 (file)
@@ -681,6 +681,13 @@ This may cause a slight speedup.  The default is no, because the DNS
 protocol RFCs mandate these sections, and the additional content could
 be of use and save roundtrips for clients.
 .TP
+.B disable-dnssec-lame-check: \fI<yes or no>
+If true, disables the DNSSEC lameness check in the iterator.  This check
+sees if RRSIGs are present in the answer, when dnssec is expected,
+and retries another authority if RRSIGs are unexpectedly missing.
+The validator will insist in RRSIGs for DNSSEC signed domains regardless
+of this setting, if a trust anchor is loaded.
+.TP
 .B module\-config: \fI<"module names">
 Module configuration, a list of module names separated by spaces, surround
 the string with quotes (""). The modules can be validator, iterator.
index c47ee3754e2d70b9a86563ce15d9e9eea6557abc..465bf654038e577223ffe952e2e4b466509ff214 100644 (file)
@@ -2172,7 +2172,8 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
                 * differently. No queries should be sent elsewhere */
                type = RESPONSE_TYPE_ANSWER;
        }
-       if(iq->dnssec_expected && !iq->dnssec_lame_query &&
+       if(!qstate->env->cfg->disable_dnssec_lame_check && iq->dnssec_expected 
+                && !iq->dnssec_lame_query &&
                !(iq->chase_flags&BIT_RD) 
                && iq->sent_count < DNSSEC_LAME_DETECT_COUNT
                && type != RESPONSE_TYPE_LAME 
@@ -2464,7 +2465,8 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
                verbose(VERB_ALGO, "cleared outbound list for query restart");
                /* go to INIT_REQUEST_STATE for new qname. */
                return next_state(iq, INIT_REQUEST_STATE);
-       } else if(type == RESPONSE_TYPE_LAME) {
+       } else if(!qstate->env->cfg->disable_dnssec_lame_check 
+                      && type == RESPONSE_TYPE_LAME) {
                /* Cache the LAMEness. */
                verbose(VERB_DETAIL, "query response was %sLAME",
                        dnsseclame?"DNSSEC ":"");
index 6004b27fe0421038055313ad25ae22a007d23e45..3e72bcad06b11942cc7d39c9abc3ee899454b55f 100644 (file)
@@ -238,6 +238,7 @@ config_create(void)
        if(!(cfg->dnstap_socket_path = strdup(DNSTAP_SOCKET_PATH)))
                goto error_exit;
 #endif
+       cfg->disable_dnssec_lame_check = 0;
        cfg->ratelimit = 0;
        cfg->ratelimit_slabs = 4;
        cfg->ratelimit_size = 4*1024*1024;
@@ -475,6 +476,7 @@ int config_set_option(struct config_file* cfg, const char* opt,
        else S_STR("control-cert-file:", control_cert_file)
        else S_STR("module-config:", module_conf)
        else S_STR("python-script:", python_script)
+       else S_YNO("disable-dnssec-lame-check:", disable_dnssec_lame_check)
        else if(strcmp(opt, "ratelimit:") == 0) {
            IS_NUMBER_OR_ZERO; cfg->ratelimit = atoi(val);
            infra_dp_ratelimit=cfg->ratelimit;
@@ -770,6 +772,7 @@ config_get_option(struct config_file* cfg, const char* opt,
        else O_YNO(opt, "insecure-lan-zones", insecure_lan_zones)
        else O_DEC(opt, "max-udp-size", max_udp_size)
        else O_STR(opt, "python-script", python_script)
+       else O_YNO(opt, "disable-dnssec-lame-check", disable_dnssec_lame_check)
        else O_DEC(opt, "ratelimit", ratelimit)
        else O_MEM(opt, "ratelimit-size", ratelimit_size)
        else O_DEC(opt, "ratelimit-slabs", ratelimit_slabs)
index 0efbe21e1b616b234dd1ce59895ed0b3a9eb66fb..a51cdb464c0c7282f5ac95f595930236d66020a7 100644 (file)
@@ -367,6 +367,9 @@ struct config_file {
        /** true to log dnstap FORWARDER_RESPONSE message events */
        int dnstap_log_forwarder_response_messages;
 
+       /** true to disable DNSSEC lameness check in iterator */
+       int disable_dnssec_lame_check;
+
        /** ratelimit 0 is off, otherwise qps (unless overridden) */
        int ratelimit;
        /** number of slabs for ratelimit cache */
index cc73478b1a80f022f76e1ed8c85e55e2bbeb6f17..9223aacf7f95c94e21163a5fcf8ff79cb077e180 100644 (file)
@@ -378,8 +378,8 @@ static void yy_fatal_error (yyconst char msg[]  );
        *yy_cp = '\0'; \
        (yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 182
-#define YY_END_OF_BUFFER 183
+#define YY_NUM_RULES 183
+#define YY_END_OF_BUFFER 184
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -387,209 +387,211 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[1823] =
+static yyconst flex_int16_t yy_accept[1847] =
     {   0,
-        1,    1,  164,  164,  168,  168,  172,  172,  176,  176,
-        1,    1,  183,  180,    1,  162,  162,  181,    2,  181,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      164,  165,  165,  166,  181,  168,  169,  169,  170,  181,
-      175,  172,  173,  173,  174,  181,  176,  177,  177,  178,
-      181,  179,  163,    2,  167,  181,  179,  180,    0,    1,
-        2,    2,    2,    2,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  164,    0,  168,    0,
-      175,    0,  172,  176,    0,  179,    0,    2,    2,  179,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  179,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      179,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,   74,  180,
-      180,  180,  180,  180,  180,    7,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  179,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  179,  180,  180,
-      180,  180,  180,   34,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  143,  180,   13,   14,  180,   16,   15,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  134,  180,  180,  180,  180,  180,  180,  180,    3,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  179,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  180,  180,  180,  180,  180,  171,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,   37,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,   38,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,   18,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,   89,  171,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,   88,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,   72,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,   23,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,   35,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  180,  180,  180,  180,  180,   36,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,   25,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  156,  180,  180,  180,  180,  180,
-      180,   29,  180,   30,  180,  180,  180,   75,  180,   76,
-      180,   73,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  180,  180,  180,  180,    6,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  141,  180,  180,  180,   91,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,   26,
-      180,  180,  180,  180,  180,  180,  117,  180,  116,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,   39,  180,  180,  180,  180,  180,
-
-      180,  180,  180,   78,   77,  180,  180,  180,  180,  180,
-      180,  180,  113,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,   57,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,   61,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,   33,  180,  180,  180,  180,  180,  180,  180,  115,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,    5,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  109,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  127,  180,  110,  180,  139,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,   24,  180,  180,  180,
-      180,   80,  180,   81,   79,  180,  180,  180,  180,  180,
-      180,  180,   87,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  111,  180,  180,  180,  180,
-      180,  138,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  180,  180,   71,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-       31,  180,  180,   20,  180,  180,  180,   17,  180,   96,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,   46,   48,  180,  180,  180,  180,
-      180,  180,  180,  180,  144,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,   82,  180,
-      180,  180,  180,  180,  180,   86,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,   90,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  180,  180,  180,  180,  180,  133,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  100,  180,  104,  180,  180,  180,  180,   85,  180,
-      180,   67,  180,  125,  180,  180,  180,  180,  140,  180,
-      180,  180,  180,  180,  180,  180,  149,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  103,  180,
-      180,  180,  180,  180,   49,   50,  180,  180,   32,   56,
-      105,  180,  118,  142,  114,  180,  180,   42,  180,  107,
-      180,  180,  180,  180,  180,    8,  180,  180,  180,   70,
-
-      180,  180,  180,  180,  158,  180,  124,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,   92,  148,  180,  180,  180,  180,
-      180,  180,  180,  180,  135,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      106,  180,   41,   43,  180,  180,  180,  180,  180,  180,
-      180,   69,  180,  180,  180,  180,  157,  180,  180,  180,
-      180,  129,   21,   22,  180,  180,  180,  180,  180,  180,
-      180,   66,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  131,  128,  180,  180,  180,  180,  180,  180,
-      180,  180,   40,  180,  180,  180,  180,  180,  180,  180,
-       12,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-       11,  180,  180,   19,  180,  180,  180,  161,  180,   44,
-      180,  137,  130,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,   99,   98,  180,  180,  132,  126,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,   51,  180,
-      180,  136,  180,  180,  180,  180,  180,  180,  180,  180,
-       45,  180,  180,  180,   93,   95,  119,  180,  180,  180,
-
-       97,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      145,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  120,  180,  180,   27,  180,  180,  180,
-        4,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  147,  180,  180,
-      123,  180,  180,  180,  180,  180,  180,  180,   54,  180,
-       28,  180,   10,  180,  180,  180,  180,  180,  121,   58,
-      180,  180,  180,  102,  180,  180,  180,  180,  180,  180,
-      180,  146,   83,  180,  180,  180,  180,   60,   64,   59,
-      180,   52,  180,    9,  180,  180,  159,  180,  180,  101,
-
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-       65,   63,  180,   53,  180,  112,  180,  122,  180,  180,
-       94,   47,  180,  180,  180,  180,  180,  180,   84,   62,
-       55,  160,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,   68,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  108,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  152,  180,  180,  180,
-
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      150,  180,  153,  154,  180,  180,  180,  180,  180,  151,
-      155,    0
+        1,    1,  165,  165,  169,  169,  173,  173,  177,  177,
+        1,    1,  184,  181,    1,  163,  163,  182,    2,  182,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      165,  166,  166,  167,  182,  169,  170,  170,  171,  182,
+      176,  173,  174,  174,  175,  182,  177,  178,  178,  179,
+      182,  180,  164,    2,  168,  182,  180,  181,    0,    1,
+        2,    2,    2,    2,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  165,    0,  169,    0,
+      176,    0,  173,  177,    0,  180,    0,    2,    2,  180,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+
+      181,  181,  181,  181,  180,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  180,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,   74,  181,  181,  181,  181,  181,  181,    7,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  180,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  180,  181,  181,  181,  181,  181,   34,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  143,  181,
+       13,   14,  181,   16,   15,  181,  181,  181,  181,  181,
+
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  134,  181,  181,  181,
+      181,  181,  181,  181,    3,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  180,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  172,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,   37,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,   38,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,   18,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,   89,  172,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+       88,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,   72,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,   23,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,   35,  181,  181,  181,  181,  181,  181,  181,  181,
+
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,   36,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,   25,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  157,  181,  181,  181,  181,  181,  181,   29,
+      181,   30,  181,  181,  181,   75,  181,   76,  181,   73,
+
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,    6,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  141,
+      181,  181,  181,  181,   91,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,   26,  181,
+      181,  181,  181,  181,  181,  117,  181,  116,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+
+      181,  181,  181,   39,  181,  181,  181,  181,  181,  181,
+      181,  181,   78,   77,  181,  181,  181,  181,  181,  181,
+      181,  113,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,   57,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,   61,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,   33,  181,  181,  181,  181,  181,  181,  181,  115,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,    5,
+
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  109,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  127,  181,  110,  181,  181,  139,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,   24,  181,  181,
+      181,  181,   80,  181,   81,   79,  181,  181,  181,  181,
+      181,  181,  181,   87,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  111,  181,  181,  181,
+
+      181,  181,  138,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,   71,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,   31,  181,  181,   20,  181,  181,  181,   17,  181,
+       96,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,   46,   48,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  144,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+       82,  181,  181,  181,  181,  181,  181,   86,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+
+      181,  181,  181,  181,  181,  181,   90,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      133,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  100,  181,  104,  181,  181,  181,  181,
+       85,  181,  181,   67,  181,  125,  181,  181,  181,  181,
+      181,  140,  181,  181,  181,  181,  181,  181,  181,  149,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  103,  181,  181,  181,  181,  181,   49,   50,  181,
+      181,   32,   56,  105,  181,  118,  142,  114,  181,  181,
+
+       42,  181,  107,  181,  181,  181,  181,  181,    8,  181,
+      181,  181,   70,  181,  181,  181,  181,  159,  181,  124,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,   92,  148,
+      181,  181,  181,  181,  181,  181,  181,  181,  135,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  106,  181,   41,   43,  181,  181,
+      181,  181,  181,  181,  181,   69,  181,  181,  181,  181,
+      158,  181,  181,  181,  181,  129,   21,   22,  181,  181,
+
+      181,  181,  181,  181,  181,   66,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  131,  128,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,   40,  181,  181,
+      181,  181,  181,  181,  181,   12,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,   11,  181,  181,   19,  181,
+      181,  181,  162,  181,   44,  181,  137,  130,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,   99,
+       98,  181,  181,  132,  126,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,   51,  181,  181,  136,  181,  181,
+
+      181,  181,  181,  181,  181,  181,   45,  181,  181,  181,
+       93,   95,  119,  181,  181,  181,   97,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  145,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      120,  181,  181,   27,  181,  181,  181,    4,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  147,  181,  181,  123,  181,
+      181,  181,  181,  181,  181,  181,   54,  181,   28,  181,
+       10,  181,  181,  181,  181,  181,  121,   58,  181,  181,
+      181,  102,  181,  181,  181,  181,  181,  181,  181,  181,
+
+      146,   83,  181,  181,  181,  181,   60,   64,   59,  181,
+       52,  181,    9,  181,  181,  160,  181,  181,  101,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+       65,   63,  181,   53,  181,  112,  181,  122,  181,  181,
+       94,   47,  181,  181,  181,  181,  181,  181,  181,   84,
+       62,   55,  161,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,   68,  181,  156,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+
+      181,  108,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      152,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  150,  181,  153,  154,  181,  181,
+      181,  181,  181,  151,  155,    0
     } ;
 
 static yyconst YY_CHAR yy_ec[256] =
@@ -632,419 +634,423 @@ static yyconst YY_CHAR yy_meta[40] =
         1,    1,    1,    1,    1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_uint16_t yy_base[1837] =
+static yyconst flex_uint16_t yy_base[1861] =
     {   0,
         0,    0,   37,   40,   44,   51,   63,   75,   56,   68,
-       87,  108, 2104, 2061,   50, 3611, 3611, 3611,  129,   94,
+       87,  108, 2620, 2459,   50, 3655, 3655, 3655,  129,   94,
        70,  104,  130,   90,   92,  115,  127,   95,   84,  111,
       137,  148,   50,  170,  122,  150,  157,  160,  140,  166,
-     2050, 3611, 3611, 3611,   70, 1861, 3611, 3611, 3611,   42,
-     1698, 1594, 3611, 3611, 3611,  192, 1291, 3611, 3611, 3611,
-      141, 1261, 3611,  198, 3611,  202,  197, 1251,  210,  120,
+     2191, 3655, 3655, 3655,   70, 2071, 3655, 3655, 3655,   42,
+     2030, 1970, 3655, 3655, 3655,  192, 1217, 3655, 3655, 3655,
+      141, 1000, 3655,  198, 3655,  202,  197,  956,  210,  120,
         0,  223,    0,    0,  103,  203,  180,  205,  164,  206,
-      213,  210,  125,  216,  229,  218,  226,  227,  230,  233,
-      231,  238,  241,  239,  240,  249,  250,  243,  251,  258,
-
-      256,  255,  264,  266,  269,  270,  272,  273,  275,  277,
-      173,  278,  281,  285,  282,  286,  292,  283,  302,  290,
-      293,  296,  305,  306,  310,  312,  947,  322,  893,  324,
-      656,  335,  512,  382,  328,  299,  342,  346,    0,  339,
-      316,  348,  332,  341,  325,  345,  350,  352,  356,  353,
-      359,  364,  385,  365,  355,  363,   49,  367,  372,  369,
-      373,  375,  378,  376,  386,  392,  380,  379,  402,  403,
-      413,  414,  401,  407,  416,  415,  422,  423,  424,  421,
-      426,  425,  427,  429,  430,  435,  436,  437,  439,  442,
-      440,  446,  449,  443,  453,  450,  461,  454,  458,  466,
-
-      474,  476,  475,  460,  468,  478,  484,  480,  488,  481,
-      482,  489,  490,  491,  499,  504,  509,  507,  510,  497,
-      512,  514,  515,  520,  523,  521,  524,  526,  533,  522,
-      530,  532,  534,  536,  538,  539,  540,  543,  545,  546,
-      554,  552,  550,  551,  556,  559,  560,  564,  567,  575,
-      578,  566,  572,  579,  582,  585,  589,  592,  590,  595,
-      596,  577,  603,  599,  601,  604,  602,  610,  611,  617,
-      613,  614,  621,  615,  622,  625,  623,  645,  624,  633,
-      632,  643,  634,  638,  651,  640,  650,  652,  666,  654,
-      673,  655,  665,  677,  674,  676,  685,  678,  680,  684,
-
-      687,  493,  688,  686,  689,  693,  697,  694,  691,  705,
-      712,  708,  710,  709,  717,  718,  720,  711,  726,  728,
-      721,  730,  731,  732,  733,  735,  737,  744, 3611,  746,
-      738,  741,  748,  750,  751, 3611,  752,  753,  754,  760,
-      756,  761,  767,  769,  762,  771,  774,  777,  776,  778,
-      782,  784,  804,  779,  787,  785,  797,  786,  788,  813,
-      790,  816,  794,  807,  796,  818,  800,  821,  823,  824,
-      825,  827,  833,  829,  834,  835,  836,  839,  842,  850,
-      846,  853,  847,  857,  849,  864,  861,  867,  870,  876,
-      873,  878,  880,  879,  881,  851,  887,  884,  885,  883,
-
-      894,  891,  892,  899,  895,  897,  901,  904,  908,  910,
-      912,  914,  916,  918,  915,  924,  925,  926,  932,  930,
-      931,  937,  939,  933,  935,  948,  945,  952,  953,  961,
-      946,  954,  962,  963,  965,  971,  973,  969,  974,  964,
-      977,  978,  979,  980,  981,  985,  986,  987,  994,  991,
-      992, 1005, 1003,  998,  996, 1008,  993, 1013, 1014, 1015,
-     1016, 1017, 1025, 1018, 1027, 1019, 1029, 1032, 1035, 1040,
-     1031, 1041, 1039, 3611, 1051, 1033, 1045, 1047, 1054, 1055,
-     1056, 1057, 1083, 3611, 1058, 3611, 3611, 1060, 3611, 3611,
-     1061, 1062, 1065, 1071, 1106, 1075, 1067, 1064, 1076, 1087,
-
-     1084, 1093, 1081, 1097, 1099, 1100, 1109, 1115, 1101, 1111,
-     1116, 1119, 1121, 1123, 1112, 1128, 1137, 1134, 1144, 1140,
-     1126, 1141, 1142, 1145, 1146, 1147, 1148, 1153, 1156, 1160,
-     1157, 3611, 1159, 1161, 1162, 1158, 1173, 1166, 1175, 3611,
-     1169, 1177, 1171, 1179, 1180, 1183, 1184, 1185, 1187, 1188,
-     1191, 1194, 1195, 1197, 1198, 1206, 1209, 1215, 1212, 1211,
-     1078, 1214, 1213, 1221, 1228, 1224, 1217, 1225, 1231, 1229,
-     1233, 1237, 1239, 1240, 1241, 1242, 1243, 1245, 1267, 1246,
-     1248, 1253, 1250, 1256, 1258, 1255, 1259, 1277, 1264, 1280,
-     1282, 1284, 1286, 1289, 1290, 1297, 1293, 1262, 1300, 1302,
-
-     1306, 1308, 1310, 1304, 1311, 1313, 1321, 1322, 3611, 1328,
-     1314, 1324, 1327, 1334, 1330, 1331, 1333, 1336, 1337, 1338,
-     1339, 1341, 1345, 1347, 1353, 3611, 1349, 1351, 1355, 1358,
-     1360, 1362, 1364, 1371, 1379, 1375, 3611, 1381, 1382, 1384,
-     1377, 1378, 1385, 1389, 1390, 1392, 1394, 1396, 1397, 1395,
-     1402, 1405, 1406, 1407, 1414, 1410, 1412, 1416, 1419, 1418,
-     1421, 3611, 1420, 1424, 1422, 1354, 1434, 1435, 1437, 1440,
-     1441, 1442, 1443, 1448, 1445, 1449, 1446, 1447, 3611,  158,
-     1450, 1451, 1453, 1459, 1462, 1469, 1470, 1467, 1468, 1471,
-     1477, 1461, 1478, 1479, 1483, 1487, 1488, 1484, 1489, 1495,
-
-     1493, 1497, 1491, 1500, 1499, 1501, 1507, 1508, 1511, 1513,
-     1514, 1515, 1519, 1520, 1521, 1525, 1522, 1523, 1529, 1530,
-     1531, 1533, 1539, 3611, 1543, 1526, 1542, 1545, 1549, 1551,
-     1557, 1555, 1558, 1559, 1562, 1561, 1569, 1566, 1568, 1571,
-     1577, 1579, 1580, 1581, 1582, 1589, 1591, 1587, 1590, 1601,
-     1596, 1593, 3611, 1598, 1599, 1605, 1603, 1625, 1608, 1607,
-     1627, 1616, 1611, 1606, 1633, 1613, 1637, 3611, 1638, 1634,
-     1640, 1643, 1644, 1646, 1647, 1649, 1650, 1651, 1653, 1655,
-     1657, 1654, 1662, 1666, 3611, 1674, 1676, 1675, 1682, 1609,
-     1665, 1667, 1686, 1663, 1679, 1692, 1681, 1688, 1691, 1689,
-
-     1693, 1690, 1696, 1697, 1699, 1706, 1700, 1709, 3611, 1717,
-     1711, 1718, 1722, 1713, 1730, 1728, 1729, 1719, 1731, 1733,
-     1734, 1735, 1736, 1737, 1742, 1743, 1744, 1746, 1748, 1745,
-     1747, 1759, 1749, 1750, 1765, 1755, 1767, 1769, 1771, 1777,
-     1780, 1778, 1781, 3611, 1784, 1785, 1786, 1787, 1788, 1791,
-     1798, 1800, 1794, 1796, 1801, 1803, 1805, 1812, 1806, 1809,
-     1814, 1816, 1817, 1808, 1819, 1820, 1823, 1818, 1832, 1836,
-     1838, 1839, 1841, 1843, 3611, 1824, 1847, 1850, 1852, 1853,
-     1863, 3611, 1842, 3611, 1859, 1865, 1872, 3611, 1869, 3611,
-     1871, 3611, 1874, 1875, 1878, 1857, 1880, 1879, 1881, 1886,
-
-     1883, 1887, 1889, 1890, 1891, 1897, 1899, 3611, 1892, 1898,
-     1905, 1902, 1900, 1908, 1909, 1913, 1915, 1914, 1926, 1922,
-     1929, 3611, 1923, 1931, 1932, 3611, 1925, 1934, 1927, 1936,
-     1940, 1950, 1947, 1944, 1954, 1941, 1948, 1960, 1961, 1957,
-     1963, 1964, 1965, 1972, 1968, 1969, 1977, 1973, 1971, 1979,
-     1980, 1981, 1985, 1983, 1992, 1986, 1988, 1990, 1993, 3611,
-     2002, 1998, 1994, 2005, 2007, 2010, 3611, 2011, 3611, 2018,
-     2020, 2022, 2013, 2015, 2021, 2025, 2030, 2033, 2036, 2032,
-     2038, 2041, 2042, 2044, 2043, 2045, 2046, 2047, 2049, 2053,
-     2058, 2066, 2068, 2054, 3611, 2074, 2057, 2076, 2073, 2078,
-
-     2087, 2083, 2085, 3611, 3611, 2084, 2086, 2089, 2090, 2100,
-     2097, 2093, 3611, 2101, 2102, 2103, 2105, 2112, 2114, 2104,
-     2115, 2119, 2120, 2122, 2116, 2124, 2125, 2131, 2133, 2132,
-     2135, 2138, 2139, 2147, 3611, 2140, 2152, 2143, 2148, 2154,
-     2156, 2157, 2159, 2158, 2161, 2160, 2166, 2174, 2162, 2170,
-     2171, 2177, 2173, 2179, 2185, 2182, 2192, 2194, 3611, 2195,
-     2188, 2201, 2198, 2200, 2202, 2209, 2205, 2207, 2208, 2215,
-     2211, 3611, 2212, 2213, 2221, 2214, 2229, 2216, 2232, 3611,
-     2235, 2238, 2239, 2241, 2242, 2243, 2245, 2247, 2249, 3611,
-     2250, 2257, 2256, 2253, 2263, 2264, 2262, 2266, 2268, 2267,
-
-     2270, 2272, 2222, 2274, 2275, 2278, 2280, 2281, 2282, 2285,
-     2290, 2294, 2296, 2303, 2283, 2305, 2311, 2309, 2315, 2318,
-     2298, 2316, 2322, 2320, 2321, 2323, 2326, 2334, 2327, 2336,
-     2330, 3611, 2337, 2338, 2344, 2346, 2333, 2341, 2350, 2348,
-     2352, 3611, 2357, 3611, 2356, 3611, 2358, 2360, 2363, 2364,
-     2366, 2367, 2365, 2371, 2377, 2374, 3611, 2378, 2375, 2380,
-     2382, 3611, 2395, 3611, 3611, 2381, 2385, 2392, 2397, 2400,
-     2286, 2403, 3611, 2398, 2404, 2406, 2408, 2409, 2410, 2411,
-     2413, 2412, 2416, 2415, 2419, 3611, 2421, 2418, 2427, 2429,
-     2428, 3611, 2432, 2434, 2440, 2442, 2441, 2444, 2448, 2450,
-
-     2451, 2457, 2454, 2456, 2455, 3611, 2458, 2460, 2462, 2464,
-     2467, 2470, 2478, 2475, 2479, 2472, 2476, 2487, 2483, 2486,
-     3611, 2491, 2494, 3611, 2493, 2495, 2497, 3611, 2501, 3611,
-     2502, 2503, 2500, 2505, 2510, 2511, 2517, 2504, 2522, 2519,
-     2521, 2528, 2529, 2512, 3611, 3611, 2531, 2533, 2536, 2538,
-     2540, 2541, 2543, 2545, 3611, 2546, 2549, 2547, 2550, 2551,
-     2555, 2553, 2558, 2560, 2561, 2562, 2563, 2566, 3611, 2568,
-     2572, 2574, 2577, 2575, 2578, 3611, 2580, 2581, 2582, 2583,
-     2588, 2602, 2605, 2607, 2594, 2600, 2611, 2615, 2617, 2608,
-     2619, 2621, 2623, 2612, 3611, 2624, 2626, 2628, 2633, 2630,
-
-     2586, 2634, 2635, 2639, 2640, 2641, 2642, 2644, 3611, 2645,
-     2646, 2649, 2650, 2653, 2655, 2658, 2660, 2662, 2666, 2667,
-     2668, 2670, 2671, 2672, 2676, 2677, 2678, 2680, 2682, 2688,
-     2690, 3611, 2685, 3611, 2691, 2697, 2704, 2701, 3611, 2703,
-     2706, 3611, 2707, 3611, 2708, 2709, 2712, 2717, 3611, 2721,
-     2713, 2722, 2724, 2725, 2726, 2728, 3611, 2730, 2735, 2741,
-     2737, 2731, 2733, 2744, 2743, 2749, 2755, 2746, 3611, 2753,
-     2756, 2762, 2758, 2765, 3611, 3611, 2759, 2770, 3611, 3611,
-     3611, 2775, 3611, 3611, 3611, 2772, 2779, 3611, 2781, 3611,
-     2787, 2783, 2760, 2764, 2785, 3611, 2788, 2789, 2792, 3611,
-
-     2793, 2799, 2795, 2796, 3611, 2798, 3611, 2800, 2804, 2803,
-     2809, 2816, 2819, 2821, 2810, 2808, 2812, 2823, 2825, 2827,
-     2828, 2830, 2831, 2833, 2834, 2836, 2838, 2839, 2842, 2841,
-     2845, 2846, 2844, 2856, 3611, 3611, 2847, 2852, 2857, 2858,
-     2864, 2861, 2865, 2868, 3611, 2872, 2866, 2877, 2874, 2876,
-     2880, 2885, 2886, 2888, 2895, 2882, 2891, 2892, 2897, 2893,
-     3611, 2896, 3611, 3611, 2899, 2904, 2909, 2903, 2910, 2917,
-     2920, 3611, 2912, 2921, 2923, 2926, 3611, 2930, 2914, 2932,
-     2935, 3611, 3611, 3611, 2936, 2938, 2940, 2941, 2942, 2943,
-     2944, 3611, 2948, 2945, 2951, 2953, 2955, 2958, 2964, 2961,
-
-     2970, 2972, 3611, 3611, 2978, 2975, 2976, 2965, 2967, 2977,
-     2983, 2980, 3611, 2984, 2986, 2989, 2990, 2991, 2993, 2996,
-     3611, 2995, 2997, 3001, 3007, 3003, 3009, 3011, 3008, 3019,
-     3611, 3012, 3013, 3611, 3023, 3015, 3025, 3611, 3030, 3611,
-     3033, 3611, 3611, 3028, 3034, 3036, 3038, 3042, 3044, 3045,
-     3046, 3052, 3050, 3051, 3611, 3611, 3053, 3061, 3611, 3611,
-     3054, 3057, 3058, 3064, 3065, 3067, 3068, 3069, 3070, 3073,
-     3080, 3075, 3078, 3082, 3085, 3086, 3088, 3090, 3611, 3093,
-     3094, 3611, 3096, 3099, 3100, 3103, 3101, 3106, 3107, 3109,
-     3611, 3113, 3115, 3117, 3611, 3611, 3611, 3119, 3125, 3121,
-
-     3611, 3123, 3129, 3131, 3132, 3134, 3136, 3140, 3133, 3144,
-     3611, 3137, 3145, 3147, 3148, 3141, 3149, 3155, 3159, 3157,
-     3161, 3164, 3166, 3611, 3169, 3170, 3611, 3172, 3173, 3176,
-     3611, 3177, 3180, 3179, 3182, 3184, 3186, 3188, 3189, 3191,
-     3192, 3195, 3197, 3198, 3208, 3196, 3207, 3611, 3211, 3212,
-     3611, 3216, 3218, 3219, 3223, 3226, 3228, 3229, 3611, 3236,
-     3611, 3237, 3611, 3240, 3230, 3233, 3246, 3243, 3611, 3611,
-     3241, 3251, 3247, 3611, 3253, 3254, 3255, 3256, 3257, 3259,
-     3260, 3611, 3611, 3261, 3263, 3268, 3278, 3611, 3611, 3611,
-     3270, 3611, 3279, 3611, 3277, 3271, 3611, 3287, 3284, 3611,
-
-     3288, 3290, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3304,
-     3611, 3611, 3308, 3611, 3311, 3611, 3313, 3611, 3314, 3319,
-     3611, 3611, 3305, 3315, 3322, 3321, 3323, 3328, 3611, 3611,
-     3611, 3611, 3330, 3325, 3324, 3331, 3333, 3332, 3335, 3338,
-     3343, 3346, 3347, 3349, 3336, 3356, 3362, 3358, 3611, 3359,
-     3363, 3369, 3370, 3366, 3368, 3367, 3373, 3375, 3376, 3377,
-     3378, 3379, 3383, 3385, 3391, 3393, 3395, 3396, 3399, 3407,
-     3406, 3403, 3408, 3409, 3416, 3412, 3413, 3611, 3414, 3415,
-     3417, 3420, 3421, 3424, 3423, 3437, 3439, 3425, 3441, 3432,
-     3444, 3445, 3446, 3435, 3450, 3447, 3611, 3456, 3457, 3449,
-
-     3458, 3459, 3463, 3464, 3469, 3472, 3467, 3476, 3479, 3473,
-     3611, 3481, 3611, 3611, 3484, 3485, 3487, 3491, 3493, 3611,
-     3611, 3611, 3519, 3526, 3533, 3540, 3547,   94, 3554, 3561,
-     3568, 3575, 3582, 3589, 3596, 3603
+      213,  210,  125,  216,  231,  218,  227,  224,  230,  233,
+      234,  236,  240,  254,  238,  251,  255,  241,  252,  263,
+
+      261,  264,  271,  269,  253,  270,  275,  272,  280,  274,
+      173,  281,  283,  284,  286,  291,  292,  295,  297,  293,
+      300,  302,  304,  303,  310,  312,  915,  322,  882,  326,
+      690,  337,  508,  321,  333,  245,  343,  347,    0,  340,
+      344,  350,  333,  346,  342,  351,  352,  353,  363,  355,
+      356,  370,  369,  390,  373,  359,  371,   49,  315,  375,
+      368,  377,  381,  379,  383,  386,  400,  385,  387,  407,
+      408,  417,  418,  415,  395,  419,  421,  427,  430,  428,
+      429,  431,  432,  433,  434,  436,  438,  440,  443,  441,
+      448,  446,  447,  454,  450,  455,  460,  464,  462,  463,
+
+      471,  474,  478,  477,  476,  480,  482,  489,  486,  498,
+      485,  483,  384,  487,  494,  502,  504,  507,  512,  510,
+      513,  515,  503,  517,  521,  523,  527,  516,  528,  533,
+      539,  524,  535,  526,  536,  540,  542,  537,  546,  543,
+      548,  551,  557,  556,  558,  554,  560,  562,  564,  567,
+      573,  581,  565,  572,  578,  582,  585,  587,  590,  596,
+      584,  598,  588,  601,  607,  604,  605,  606,  608,  612,
+      614,  618,  615,  616,  619,  617,  626,  627,  634,  649,
+      635,  636,  638,  625,  641,  642,  658,  643,  647,  654,
+      655,  657,  675,  671,  673,  674,  681,  677,  678,  682,
+
+      684,  686,  687,  692,  694,  695,  689,  697,  700,  701,
+      708,  712,  705,  720,  698,  717,  721,  724,  726,  728,
+      718,  734,  737,  730,  736,  738,  739,  740,  742,  744,
+      748, 3655,  752,  746,  754,  755,  756,  757, 3655,  758,
+      759,  760,  766,  763,  768,  775,  782,  770,  771,  780,
+      781,  784,  786,  787,  789,  809,  792,  794,  790,  800,
+      804,  796,  797,  802,  818,  811,  820,  814,  821,  822,
+      823,  824,  830,  831,  834,  841,  839,  837,  843,  842,
+      848,  845,  858,  852,  859,  854,  860,  863,  861,  872,
+      868,  874,  876,  883,  885,  887,  893,  870,  889,  892,
+
+      895,  897,  898,  879,  905,  902,  904,  908,  906,  909,
+      912,  914,  913,  922,  923,  925,  929,  921,  931,  934,
+      935,  936,  942,  940,  938,  947,  949,  943,  945,  957,
+      953,  960,  962,  969,  965,  966,  975,  971,  973,  982,
+      972,  983,  984,  985,  987,  988,  989,  990,  992,  993,
+      995,  996, 1004,  997,  998, 1014, 1006, 1012, 1019, 1018,
+     1020, 1022, 1021, 1025, 1026, 1027, 1031, 1029, 1037, 1040,
+     1038, 1041, 1042, 1050, 1043, 1056, 1051, 3655, 1053, 1055,
+     1058, 1059, 1061, 1068, 1066, 1067, 1069, 1095, 3655, 1072,
+     3655, 3655, 1073, 3655, 3655, 1077, 1070, 1078, 1088, 1118,
+
+     1084, 1080, 1081, 1093, 1092, 1101, 1102, 1097, 1109, 1111,
+     1121, 1123, 1113, 1126, 1127, 1129, 1131, 1132, 1134, 1135,
+     1138, 1141, 1151, 1155, 1154, 1099, 1144, 1156, 1142, 1158,
+     1159, 1161, 1168, 1162, 1174, 1165, 3655, 1172, 1173, 1175,
+     1171, 1176, 1179, 1186, 3655, 1183, 1187, 1188, 1190, 1191,
+     1195, 1193, 1196, 1198, 1199, 1203, 1205, 1201, 1221, 1206,
+     1208, 1228, 1229, 1227, 1211, 1225, 1233, 1214, 1239, 1241,
+     1242, 1232, 1234, 1248, 1244, 1252, 1254, 1246, 1255, 1249,
+     1256, 1257, 1258, 1281, 1262, 1265, 1260, 1266, 1270, 1267,
+     1272, 1273, 1279, 1285, 1283, 1294, 1295, 1296, 1301, 1303,
+
+     1305, 1312, 1313, 1276, 1315, 1304, 1316, 1323, 1325, 1326,
+     1327, 1329, 1332, 1333, 3655, 1340, 1342, 1336, 1338, 1349,
+     1347, 1343, 1350, 1353, 1354, 1346, 1356, 1357, 1358, 1364,
+     1371, 3655, 1360, 1367, 1368, 1370, 1376, 1382, 1380, 1390,
+     1393, 1384, 3655, 1399, 1400, 1392, 1396, 1386, 1402, 1403,
+     1405, 1407, 1409, 1411, 1412, 1413, 1415, 1420, 1422, 1424,
+     1427, 1425, 1426, 1432, 1433, 1434, 1435, 3655, 1436, 1438,
+     1437, 1444, 1455, 1458, 1447, 1460, 1449, 1451, 1457, 1378,
+     1461, 1463, 1464, 1466, 3655,  158, 1467, 1470, 1473, 1476,
+     1480, 1477, 1484, 1474, 1478, 1490, 1486, 1487, 1496, 1494,
+
+     1497, 1499, 1500, 1502, 1504, 1505, 1507, 1512, 1511, 1513,
+     1519, 1515, 1521, 1523, 1524, 1526, 1529, 1532, 1535, 1534,
+     1537, 1538, 1539, 1540, 1541, 1542, 1547, 1546, 1550, 1554,
+     3655, 1569, 1557, 1558, 1555, 1567, 1556, 1578, 1565, 1574,
+     1579, 1576, 1581, 1587, 1585, 1591, 1592, 1593, 1595, 1598,
+     1599, 1583, 1605, 1607, 1606, 1608, 1614, 1609, 1615, 3655,
+     1616, 1618, 1617, 1622, 1641, 1624, 1625, 1619, 1629, 1621,
+     1637, 1646, 1642, 1648, 3655, 1649, 1650, 1651, 1654, 1656,
+     1659, 1660, 1664, 1661, 1666, 1667, 1668, 1677, 1669, 1674,
+     1672, 3655, 1688, 1689, 1685, 1691, 1692, 1693, 1694, 1696,
+
+     1682, 1697, 1703, 1699, 1704, 1706, 1707, 1708, 1710, 1711,
+     1714, 1716, 1723, 1715, 1726, 3655, 1727, 1734, 1728, 1735,
+     1306, 1739, 1745, 1744, 1741, 1742, 1747, 1749, 1750, 1751,
+     1754, 1756, 1757, 1758, 1762, 1763, 1764, 1765, 1766, 1780,
+     1781, 1770, 1759, 1782, 1783, 1772, 1785, 1796, 1799, 1800,
+     1802, 3655, 1805, 1806, 1795, 1807, 1808, 1792, 1819, 1821,
+     1798, 1809, 1815, 1823, 1824, 1831, 1825, 1827, 1829, 1832,
+     1833, 1834, 1835, 1836, 1840, 1845, 1849, 1852, 1853, 1858,
+     1859, 1862, 3655, 1860, 1839, 1865, 1869, 1863, 1876, 3655,
+     1861, 3655, 1877, 1874, 1889, 3655, 1886, 3655, 1888, 3655,
+
+     1890, 1891, 1894, 1878, 1896, 1895, 1897, 1899, 1901, 1904,
+     1902, 1906, 1907, 1908, 1913, 3655, 1914, 1915, 1919, 1923,
+     1916, 1922, 1925, 1926, 1931, 1930, 1943, 1937, 1944, 3655,
+     1940, 1948, 1941, 1945, 3655, 1949, 1952, 1950, 1955, 1958,
+     1968, 1965, 1969, 1966, 1956, 1974, 1972, 1979, 1982, 1983,
+     1984, 1985, 1991, 1987, 1988, 1995, 1992, 1989, 1996, 1998,
+     1999, 2003, 2001, 2011, 2005, 2008, 2009, 2012, 3655, 2020,
+     2017, 2021, 2024, 2026, 2027, 3655, 2029, 3655, 2040, 2034,
+     2041, 2032, 2042, 2044, 2045, 2047, 2055, 2053, 2058, 2059,
+     2061, 2060, 2064, 2065, 2062, 2066, 2067, 2069, 2073, 2070,
+
+     2088, 2081, 2076, 3655, 2091, 2083, 2097, 2096, 2095, 2104,
+     2098, 2105, 3655, 3655, 2109, 2100, 2106, 2107, 2121, 2112,
+     2118, 3655, 2110, 2119, 2120, 2122, 2129, 2131, 2132, 2133,
+     2138, 2135, 2139, 2141, 2142, 2143, 2150, 2144, 2147, 2151,
+     2159, 2160, 2167, 3655, 2164, 2152, 2171, 2168, 2172, 2173,
+     2174, 2175, 2176, 2178, 2179, 2183, 2185, 2193, 2189, 2192,
+     2194, 2196, 2197, 2202, 2204, 2205, 2212, 2213, 3655, 2220,
+     2206, 2223, 2208, 2222, 2225, 2232, 2228, 2219, 2229, 2235,
+     2231, 3655, 2234, 2236, 2238, 2243, 2244, 2246, 2252, 3655,
+     2250, 2255, 2256, 2258, 2261, 2260, 2262, 2264, 2267, 3655,
+
+     2268, 2277, 2274, 2275, 2281, 2284, 2288, 2280, 2289, 2291,
+     2278, 2292, 2293, 2295, 2299, 2300, 2302, 2303, 2305, 2306,
+     2307, 2309, 2310, 2315, 2318, 2319, 2328, 2330, 2332, 2340,
+     2324, 2334, 2341, 2337, 2338, 2343, 2344, 2352, 2345, 2353,
+     2351, 3655, 2354, 2358, 2361, 2365, 2356, 2362, 2366, 2372,
+     2370, 3655, 2375, 3655, 2374, 2373, 3655, 2381, 2383, 2384,
+     2386, 2387, 2388, 2390, 2391, 2397, 2389, 3655, 2398, 2400,
+     2402, 2406, 3655, 2409, 3655, 3655, 2401, 2412, 2419, 1700,
+     2420, 2422, 2428, 3655, 2423, 2413, 2431, 2425, 2417, 2429,
+     2435, 2436, 2437, 2439, 2440, 2442, 3655, 2444, 2443, 2446,
+
+     2450, 2452, 3655, 2451, 2456, 2453, 2466, 2467, 2468, 2470,
+     2458, 2472, 2482, 2478, 2474, 2480, 3655, 2481, 2484, 2486,
+     2489, 2491, 2493, 2499, 2496, 2495, 2502, 2503, 2505, 2508,
+     2504, 3655, 2518, 2519, 3655, 2509, 2510, 2511, 3655, 2520,
+     3655, 2525, 2521, 2528, 2529, 2533, 2534, 2540, 2535, 2537,
+     2542, 2544, 2546, 2548, 2549, 3655, 3655, 2551, 2552, 2559,
+     2562, 2555, 2560, 2570, 2566, 2573, 3655, 2564, 2574, 2568,
+     2575, 2576, 2577, 2580, 2583, 2584, 2585, 2587, 2586, 2594,
+     3655, 2593, 2597, 2598, 2599, 2602, 2601, 3655, 2604, 2605,
+     2606, 2609, 2611, 2625, 2628, 2630, 2618, 2631, 2635, 2637,
+
+     2639, 2632, 2641, 2643, 2646, 2647, 3655, 2610, 2649, 2650,
+     2653, 2654, 2655, 2656, 2657, 2663, 2660, 2665, 2664, 2668,
+     3655, 2670, 2671, 2674, 2677, 2676, 2678, 2685, 2682, 2686,
+     2691, 2692, 2688, 2695, 2696, 2698, 2701, 2699, 2702, 2703,
+     2707, 2710, 2713, 3655, 2715, 3655, 2716, 2722, 2729, 2727,
+     3655, 2718, 2730, 3655, 2726, 3655, 2731, 2732, 2740, 2741,
+     2743, 3655, 2745, 2747, 2748, 2746, 2750, 2751, 2754, 3655,
+     2752, 2759, 2766, 2763, 2757, 2767, 2769, 2771, 2774, 2780,
+     2772, 3655, 2776, 2782, 2788, 2785, 2784, 3655, 3655, 2789,
+     2794, 3655, 3655, 3655, 2797, 3655, 3655, 3655, 2799, 2801,
+
+     3655, 2806, 3655, 2807, 2808, 2798, 2790, 2810, 3655, 2811,
+     2813, 2817, 3655, 2818, 2824, 2820, 2821, 3655, 2823, 3655,
+     2826, 2832, 2828, 2835, 2844, 2846, 2848, 2829, 2833, 2837,
+     2850, 2852, 2853, 2839, 2855, 2856, 2857, 2860, 2861, 2863,
+     2867, 2866, 2868, 2870, 2871, 2873, 2878, 2885, 3655, 3655,
+     2869, 2879, 2882, 2888, 2891, 2892, 2893, 2894, 3655, 2899,
+     2896, 2902, 2901, 2903, 2906, 2907, 2910, 2914, 2920, 2917,
+     2918, 2919, 2922, 2925, 3655, 2928, 3655, 3655, 2926, 2931,
+     2937, 2939, 2930, 2941, 2949, 3655, 2942, 2951, 2944, 2950,
+     3655, 2959, 2952, 2961, 2965, 3655, 3655, 3655, 2966, 2956,
+
+     2968, 2969, 2970, 2962, 2972, 3655, 2973, 2979, 2982, 2976,
+     2986, 2990, 2997, 2993, 2995, 3000, 3655, 3655, 2983, 3006,
+     3003, 3004, 3002, 3005, 3008, 3010, 3012, 3655, 3014, 3013,
+     3019, 3018, 3021, 3022, 3025, 3655, 3026, 3028, 3033, 3036,
+     3037, 3029, 3040, 3041, 3042, 3655, 3044, 3046, 3655, 3050,
+     3043, 3051, 3655, 3060, 3655, 3063, 3655, 3655, 3055, 3064,
+     3067, 3069, 3072, 3074, 3058, 3077, 3083, 3080, 3081, 3655,
+     3655, 3082, 3089, 3655, 3655, 3087, 3086, 3090, 3093, 3094,
+     3096, 3098, 3099, 3100, 3101, 3105, 3112, 3107, 3116, 3102,
+     3109, 3115, 3117, 3119, 3655, 3126, 3127, 3655, 3128, 3132,
+
+     3129, 3134, 3136, 3141, 3142, 3138, 3655, 3144, 3145, 3148,
+     3655, 3655, 3655, 3149, 3158, 3152, 3655, 3160, 3162, 3150,
+     3168, 3156, 3164, 3166, 3172, 3174, 3176, 3655, 3178, 3179,
+     3181, 3182, 3183, 3185, 3187, 3188, 3190, 3189, 3203, 3191,
+     3655, 3205, 3193, 3655, 3208, 3200, 3209, 3655, 3211, 3213,
+     3214, 3217, 3219, 3221, 3222, 3223, 3225, 3226, 3228, 3230,
+     3237, 3231, 3244, 3229, 3252, 3655, 3254, 3241, 3655, 3256,
+     3235, 3257, 3259, 3264, 3266, 3267, 3655, 3269, 3655, 3270,
+     3655, 3274, 3275, 3276, 3278, 3279, 3655, 3655, 3280, 3282,
+     3286, 3655, 3287, 3283, 3290, 3293, 3294, 3296, 3297, 3299,
+
+     3655, 3655, 3300, 3302, 3306, 3303, 3655, 3655, 3655, 3309,
+     3655, 3312, 3655, 3322, 3315, 3655, 3324, 3317, 3655, 3319,
+     3326, 3328, 3330, 3331, 3333, 3334, 3336, 3338, 3339, 3345,
+     3655, 3655, 3347, 3655, 3350, 3655, 3352, 3655, 3342, 3359,
+     3655, 3655, 3361, 3362, 3353, 3363, 3365, 3369, 3366, 3655,
+     3655, 3655, 3655, 3370, 3371, 3372, 3373, 3375, 3377, 3376,
+     3378, 3381, 3380, 3388, 3390, 3393, 3399, 3385, 3400, 3406,
+     3402, 3655, 3405, 3655, 3407, 3413, 3414, 3411, 3417, 3412,
+     3418, 3419, 3421, 3422, 3423, 3424, 3428, 3427, 3436, 3439,
+     3440, 3443, 3441, 3452, 3450, 3451, 3453, 3454, 3461, 3455,
+
+     3457, 3655, 3459, 3462, 3463, 3465, 3466, 3471, 3468, 3479,
+     3483, 3485, 3486, 3469, 3492, 3489, 3494, 3495, 3497, 3498,
+     3655, 3499, 3500, 3503, 3506, 3507, 3509, 3510, 3511, 3516,
+     3513, 3519, 3524, 3526, 3655, 3527, 3655, 3655, 3530, 3521,
+     3531, 3537, 3539, 3655, 3655, 3655, 3563, 3570, 3577, 3584,
+     3591,   94, 3598, 3605, 3612, 3619, 3626, 3633, 3640, 3647
     } ;
 
-static yyconst flex_int16_t yy_def[1837] =
+static yyconst flex_int16_t yy_def[1861] =
     {   0,
-     1822,    1, 1823, 1823, 1824, 1824, 1825, 1825, 1826, 1826,
-     1827, 1827, 1822, 1828, 1822, 1822, 1822, 1822, 1829, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1830, 1822, 1822, 1822, 1830, 1831, 1822, 1822, 1822, 1831,
-     1832, 1822, 1822, 1822, 1822, 1832, 1833, 1822, 1822, 1822,
-     1833, 1834, 1822, 1835, 1822, 1834, 1834, 1828, 1828, 1822,
-     1836, 1829, 1836, 1829, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1830, 1830, 1831, 1831,
-     1832, 1832, 1822, 1833, 1833, 1834, 1834, 1835, 1835, 1834,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-
-     1828, 1828, 1828, 1834, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1834, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828,
-     1828, 1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1834, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1834, 1828, 1828,
-     1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1822, 1828, 1822, 1822, 1828, 1822, 1822,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1834, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1834,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828,
-     1828, 1822, 1828, 1822, 1828, 1828, 1828, 1822, 1828, 1822,
-     1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1822, 1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822,
-     1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828, 1822, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828,
-
-     1828, 1828, 1828, 1822, 1822, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1822, 1828, 1822, 1828, 1822, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828,
-     1828, 1822, 1828, 1822, 1822, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828,
-     1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-
-     1828, 1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1822, 1828, 1828, 1822, 1828, 1828, 1828, 1822, 1828, 1822,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1822, 1822, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828,
-     1828, 1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828,
-
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1822, 1828, 1822, 1828, 1828, 1828, 1828, 1822, 1828,
-     1828, 1822, 1828, 1822, 1828, 1828, 1828, 1828, 1822, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828,
-     1828, 1828, 1828, 1828, 1822, 1822, 1828, 1828, 1822, 1822,
-     1822, 1828, 1822, 1822, 1822, 1828, 1828, 1822, 1828, 1822,
-     1828, 1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828, 1822,
-
-     1828, 1828, 1828, 1828, 1822, 1828, 1822, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1822, 1822, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1822, 1828, 1822, 1822, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1822, 1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828,
-     1828, 1822, 1822, 1822, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-
-     1828, 1828, 1822, 1822, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1822, 1828, 1828, 1822, 1828, 1828, 1828, 1822, 1828, 1822,
-     1828, 1822, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1822, 1822, 1828, 1828, 1822, 1822,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828,
-     1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1822, 1828, 1828, 1828, 1822, 1822, 1822, 1828, 1828, 1828,
-
-     1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1822, 1828, 1828, 1822, 1828, 1828, 1828,
-     1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828, 1828,
-     1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828,
-     1822, 1828, 1822, 1828, 1828, 1828, 1828, 1828, 1822, 1822,
-     1828, 1828, 1828, 1822, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1822, 1822, 1828, 1828, 1828, 1828, 1822, 1822, 1822,
-     1828, 1822, 1828, 1822, 1828, 1828, 1822, 1828, 1828, 1822,
-
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1822, 1822, 1828, 1822, 1828, 1822, 1828, 1822, 1828, 1828,
-     1822, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1822,
-     1822, 1822, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1828, 1828, 1828, 1828, 1828, 1828, 1822, 1828, 1828, 1828,
-
-     1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-     1822, 1828, 1822, 1822, 1828, 1828, 1828, 1828, 1828, 1822,
-     1822,    0, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
-     1822, 1822, 1822, 1822, 1822, 1822
+     1846,    1, 1847, 1847, 1848, 1848, 1849, 1849, 1850, 1850,
+     1851, 1851, 1846, 1852, 1846, 1846, 1846, 1846, 1853, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1854, 1846, 1846, 1846, 1854, 1855, 1846, 1846, 1846, 1855,
+     1856, 1846, 1846, 1846, 1846, 1856, 1857, 1846, 1846, 1846,
+     1857, 1858, 1846, 1859, 1846, 1858, 1858, 1852, 1852, 1846,
+     1860, 1853, 1860, 1853, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1854, 1854, 1855, 1855,
+     1856, 1856, 1846, 1857, 1857, 1858, 1858, 1859, 1859, 1858,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+
+     1852, 1852, 1852, 1852, 1858, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1858, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1858, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1858, 1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852,
+     1846, 1846, 1852, 1846, 1846, 1852, 1852, 1852, 1852, 1852,
+
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1858, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1846, 1858, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1846,
+     1852, 1846, 1852, 1852, 1852, 1846, 1852, 1846, 1852, 1846,
+
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846,
+     1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852,
+     1852, 1852, 1852, 1852, 1852, 1846, 1852, 1846, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+
+     1852, 1852, 1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1846, 1846, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846,
+
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1846, 1852, 1846, 1852, 1852, 1846, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852,
+     1852, 1852, 1846, 1852, 1846, 1846, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852,
+
+     1852, 1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1846, 1852, 1852, 1846, 1852, 1852, 1852, 1846, 1852,
+     1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1846, 1846, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1846, 1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+
+     1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1846, 1852, 1846, 1852, 1852, 1852, 1852,
+     1846, 1852, 1852, 1846, 1852, 1846, 1852, 1852, 1852, 1852,
+     1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1846, 1852, 1852, 1852, 1852, 1852, 1846, 1846, 1852,
+     1852, 1846, 1846, 1846, 1852, 1846, 1846, 1846, 1852, 1852,
+
+     1846, 1852, 1846, 1852, 1852, 1852, 1852, 1852, 1846, 1852,
+     1852, 1852, 1846, 1852, 1852, 1852, 1852, 1846, 1852, 1846,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846, 1846,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1846, 1852, 1846, 1846, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852, 1852,
+     1846, 1852, 1852, 1852, 1852, 1846, 1846, 1846, 1852, 1852,
+
+     1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1846, 1846, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852, 1846, 1852,
+     1852, 1852, 1846, 1852, 1846, 1852, 1846, 1846, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846,
+     1846, 1852, 1852, 1846, 1846, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1846, 1852, 1852, 1846, 1852, 1852,
+
+     1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852, 1852,
+     1846, 1846, 1846, 1852, 1852, 1852, 1846, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1846, 1852, 1852, 1846, 1852, 1852, 1852, 1846, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1846, 1852, 1852, 1846, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1846, 1852, 1846, 1852,
+     1846, 1852, 1852, 1852, 1852, 1852, 1846, 1846, 1852, 1852,
+     1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+
+     1846, 1846, 1852, 1852, 1852, 1852, 1846, 1846, 1846, 1852,
+     1846, 1852, 1846, 1852, 1852, 1846, 1852, 1852, 1846, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1846, 1846, 1852, 1846, 1852, 1846, 1852, 1846, 1852, 1852,
+     1846, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1846,
+     1846, 1846, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1846, 1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+
+     1852, 1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1846, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+     1852, 1852, 1852, 1852, 1846, 1852, 1846, 1846, 1852, 1852,
+     1852, 1852, 1852, 1846, 1846,    0, 1846, 1846, 1846, 1846,
+     1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846
     } ;
 
-static yyconst flex_uint16_t yy_nxt[3651] =
+static yyconst flex_uint16_t yy_nxt[3695] =
     {   0,
        14,   15,   16,   17,   18,   19,   18,   14,   14,   14,
        14,   18,   20,   21,   14,   22,   23,   24,   25,   14,
@@ -1054,7 +1060,7 @@ static yyconst flex_uint16_t yy_nxt[3651] =
        49,   70,   45,   47,   48,   71,   50,   49,   58,   59,
        60,   69,   69,   50,   52,   53,   54,   55,   61,   18,
        58,   59,   60,  127,  127,   56,   52,   53,   54,   55,
-       61,   18,   69,  105,  227,   75,   76,   56,   15,   16,
+       61,   18,   69,  105,  229,   75,   76,   56,   15,   16,
        17,   63,   64,   65,   68,   68,   69,   68,   68,   66,
 
        68,   96,   69,   77,   69,   68,   86,   69,   67,   15,
@@ -1062,394 +1068,400 @@ static yyconst flex_uint16_t yy_nxt[3651] =
        66,   70,   95,   69,   79,   71,   87,   69,   89,   67,
        73,   80,   73,   73,   69,   73,   90,   69,   97,   69,
        73,   74,   69,   91,  134,  134,   92,   81,  111,   69,
-       98,   82,   69,   93,   83,   94,   84,   85,   99,  151,
+       98,   82,   69,   93,   83,   94,   84,   85,   99,  152,
        69,  102,   69,  112,  100,  103,  123,  113,  101,   69,
       137,  124,   69,  120,  116,  121,   69,  114,   69,  125,
-      115,  104,   69,  126,  117,   69,  186,  106,  118,  119,
+      115,  104,   69,  126,  117,   69,  187,  106,  118,  119,
       122,  107,   69,  131,  146,  131,  131,  108,  131,   73,
 
       109,   73,   73,  136,   73,  136,  136,  110,  136,  137,
       139,   68,  143,   68,   68,   69,   68,   69,   69,  142,
       144,   68,   69,  140,   73,   69,   73,   73,   69,   73,
-       69,  148,  147,  145,   73,   74,  153,  149,   69,   69,
-      150,   69,   69,   69,  155,   69,  166,  152,  160,  159,
-       69,   69,   69,   69,  154,   69,  162,  157,  156,  163,
-      158,   69,   69,   69,  161,  170,  168,   69,   69,  171,
-       69,  167,  164,  165,  174,  175,   69,  173,   69,  172,
-      176,   69,   69,  177,   69,   69,  169,   69,  181,   69,
-       69,  178,  183,   69,   69,   69,  184,   69,   69,  192,
-
-      180,  179,   69,  182,   69,   69,  188,  193,   69,  185,
-      187,  137,  189,  190,   69,  194,  191,   69,   69,  199,
-      196,  197,   69,  201,   69,  127,  127,  129,   69,  198,
-      129,  134,  134,  205,  202,  195,  131,   69,  131,  131,
-      200,  131,  203,  136,   69,  136,  136,   73,  136,   73,
-       73,  137,   73,   69,  204,  206,  209,   69,  139,  207,
-       69,  208,   69,  213,   69,   69,  216,   69,   69,  214,
-      215,   69,  210,  212,  217,   69,   69,   69,  224,   69,
-      226,   69,  211,  228,   69,   69,  225,   69,   69,  229,
-       69,   69,   69,  235,  135,  230,  218,   69,   69,  232,
-
-      231,  219,  233,  236,   69,  237,  220,  241,  234,  242,
-      238,  221,  240,   69,   69,   69,  243,  222,  223,   69,
-      244,  246,  247,  249,  239,   69,   69,   69,   69,  251,
-      252,  245,  250,   69,   69,   69,   69,   69,   69,   69,
-      248,   69,   69,  253,  255,  257,  254,   69,   69,   69,
-      259,   69,   69,  261,   69,   69,  268,  256,   69,  264,
-      260,   69,   69,  258,  262,   69,   69,  270,  272,  271,
-       69,  263,  137,   69,  265,  269,  266,  267,   69,  275,
-       69,  276,  274,  278,  281,  273,   69,   69,   69,  279,
-       69,  284,   69,   69,   69,  286,   69,  285,  283,  282,
-
-       69,   69,   69,   69,  277,   69,  280,  394,  287,   69,
-      290,   69,  288,  133,  292,  289,   69,  293,  294,   69,
-      295,   69,   69,  296,   69,  297,   69,   69,  291,  299,
-      302,  300,   69,   69,   69,   69,   69,  304,   69,  298,
-      306,  301,   69,  305,   69,   69,   69,  303,   69,  311,
-       69,   69,   69,  312,  307,   69,  314,   69,   69,  310,
-      308,  318,   69,   69,   69,  309,   69,  319,   69,  313,
-      317,   69,   69,  315,  320,  316,   69,  323,   69,   69,
-      321,  327,  328,  322,   69,  325,  329,   69,  326,   69,
-       69,   69,  324,  330,   69,  331,  336,   69,  332,  333,
-
-      334,   69,   69,  335,   69,  338,  337,   69,   69,  342,
-      343,   69,  340,   69,   69,   69,   69,  339,  345,  346,
-      341,  347,   69,   69,  353,   69,   69,   69,  348,   69,
-      354,  344,  352,   69,   69,   69,   69,   69,  349,  355,
-      360,  350,  358,  351,  137,   69,   69,  356,  359,  362,
-       69,  370,   69,  357,  371,   69,  361,   69,  376,  363,
-      364,  374,   69,   69,   69,  372,   69,   69,  132,  365,
-      375,  366,  367,  368,  373,  377,  369,   69,   69,  379,
-      382,  381,  378,  380,  385,   69,   69,  383,   69,   69,
-       69,  384,   69,  387,  388,  389,   69,   69,   69,   69,
-
-       69,   69,  386,   69,  395,   69,   69,  402,  391,   69,
-      390,  401,  392,  393,  398,  397,  396,   69,  400,  404,
-       69,   69,   69,   69,   69,  407,  403,  399,  406,   69,
-       69,  409,   69,   69,  408,  413,  411,  410,   69,  412,
-       69,  405,   69,   69,   69,   69,  418,   69,  417,   69,
-       69,  415,  419,   69,  414,  416,   69,  421,   69,  422,
-       69,  424,   69,   69,   69,   69,   69,  431,   69,  425,
-      420,  423,   69,   69,   69,  427,  435,  432,  433,   69,
-      430,   69,  426,   69,  428,  429,   69,  434,   69,   69,
-       69,   69,  436,  439,   69,  441,   69,   69,   69,   69,
-
-       69,  454,   69,  440,  452,  437,   69,  438,   69,   69,
-      442,  449,   69,  451,  453,  443,   69,  444,  450,   69,
-      455,  459,  445,  461,  446,   69,  456,  457,   69,  458,
-       69,  460,  447,   69,  463,   69,   69,   69,  464,  137,
-      469,   69,  448,  468,  465,   69,   69,   69,   69,  462,
-      474,   69,  467,  470,   69,  466,  473,  476,   69,   69,
-      472,   69,   69,   69,  471,   69,  475,  494,  478,   69,
-      477,  483,  480,   69,  479,  484,   69,  481,  486,   69,
-      482,  487,   69,  488,  489,   69,  485,  491,   69,  490,
-       69,   69,   69,   69,  495,   69,   69,   69,  493,   69,
-
-      496,  499,  497,   69,   69,  130,   69,   69,  500,   69,
-      506,   69,  492,   69,  502,  498,   69,  510,  501,  503,
-       69,  508,   69,  504,   69,  505,   69,   69,   69,  512,
-       69,  507,  513,  511,  509,  515,   69,   69,   69,  520,
-      516,  517,   69,   69,   69,   69,  522,   69,  521,   69,
-      519,   69,  523,  518,  514,  527,  524,   69,   69,  128,
-       69,  526,  528,  525,   69,   69,   69,  529,  531,  535,
-      530,  533,  532,   69,   69,   69,   69,   69,  539,  534,
-      537,   69,  540,   69,  536,   69,   69,  541,  543,   69,
-       69,   69,   69,   69,  544,  538,  548,   69,   69,   69,
-
-      542,  553,  549,   69,   69,   69,   69,  545,   69,  546,
-       69,  547,  550,  559,  552,   69,  551,   69,  556,  557,
-       69,  558,  554,  555,  561,   69,   69,   69,   69,   69,
-       69,   69,  564,  563,  566,  565,  560,   69,  562,   69,
-      570,   69,  567,   69,  137,   69,  569,   69,  568,  572,
-      573,   69,   69,   69,  576,  571,  574,   69,  579,   69,
-      578,  581,  577,   69,  575,  580,   69,   69,   69,   69,
-       69,  582,   69,   69,   69,  584,   69,   69,  597,   69,
-      595,  596,  594,   69,  583,  592,  585,   69,   69,  593,
-       69,  608,  605,   69,  586,   69,   69,  606,  609,   69,
-
-      587,  607,  669,  610,  588,   69,  611,  589,  612,   69,
-      613,   69,   69,   69,  590,  615,  614,  591,   69,  598,
-      599,   69,  600,   69,   69,  601,  616,   69,   69,  617,
-      602,   69,  618,   69,  622,   69,  603,  604,   69,  621,
-       69,  627,  624,  619,  630,  625,   69,  620,  626,   69,
-      623,  628,   69,   69,   69,  629,   69,   69,   69,   69,
-       69,  631,  632,  634,  637,   69,  635,  639,   69,   69,
-       69,   69,   69,   69,   69,  633,  638,  643,   69,  636,
-      641,   69,  642,   69,  644,   69,  645,   69,  640,   69,
-      647,   69,   69,  646,  650,   69,   69,   69,  648,   69,
-
-       69,  656,  649,   69,  651,  655,   69,   69,  662,   69,
-       69,  652,  659,  661,  653,  654,  665,  657,   69,  658,
-      660,   69,  666,   69,   69,   69,   69,   69,  667,   69,
-      663,  670,  664,   69,  672,  673,   69,   69,  677,  674,
-       69,   69,  668,   69,  679,   69,  671,  675,  680,  137,
-      676,   69,   69,   69,   69,   69,  682,   69,   69,  693,
-       69,  678,   69,   69,  694,   69,  681,   69,   69,  685,
-       69,   69,  683,  137,   69,  698,   69,  686,  684,   69,
-      695,  699,  687,  697,  688,  700,  715,  696,  689,   69,
-      690,  702,   69,  701,   69,  691,   69,  703,   69,  705,
-
-      692,   69,   69,  135,  710,   69,  711,  704,  709,   69,
-      706,  712,   69,  713,   69,  708,   69,  716,   69,  707,
-       69,  719,   69,   69,  721,   69,   69,  720,  717,  727,
-      718,  714,  724,   69,   69,  726,   69,  722,  725,   69,
-       69,  730,   69,   69,  723,   69,   69,  731,   69,   69,
-       69,   69,  729,   69,  733,  728,  737,   69,  735,   69,
-      741,   69,  732,   69,  734,   69,   69,   69,  740,  736,
-       69,  739,   69,  738,   69,  745,   69,  746,  781,  747,
-      742,  743,  744,   69,  749,  748,  750,   69,  752,   69,
-       69,   69,  753,   69,   69,  754,   69,   69,  755,  756,
-
-      751,   69,   69,  757,   69,  761,   69,   69,   69,   69,
-      758,  763,  759,  764,   69,  765,  768,   69,   69,   69,
-      767,  760,   69,  766,   69,  762,   69,  769,   69,  771,
-       69,   69,   69,   69,   69,  776,   69,  770,  777,  779,
-      772,  782,  783,  773,  775,  780,   69,   69,  774,   69,
-      778,  785,   69,   69,   69,   69,  789,   69,   69,   69,
-       69,   69,   69,   69,  784,   69,  797,  788,  787,  798,
-      791,   69,  786,   69,   69,  790,  794,  792,  795,   69,
-       69,   69,   69,   69,  793,  796,  799,  800,  803,   69,
-       69,   69,  805,  801,  802,   69,   69,  806,  809,   69,
-
-       69,   69,  811,   69,  804,   69,  807,   69,  813,   69,
-      814,   69,   69,   69,  808,  817,  815,  816,  810,   69,
-       69,  812,  819,   69,  820,   69,   69,   69,  822,  818,
-      824,   69,   69,   69,   69,   69,  825,   69,   69,  821,
-      828,   69,   69,   69,  823,   69,  826,  827,  833,  829,
-      837,   69,  838,  830,   69,   69,  831,   69,  834,  832,
-      836,   69,  839,   69,  843,  835,  841,   69,  844,   69,
-       69,   69,  847,   69,   69,  842,  850,  840,   69,  851,
-       69,   69,  849,   69,  846,  852,  845,  848,  853,   69,
-      854,   69,   69,   69,   69,  133,  859,  856,  860,   69,
-
-      855,   69,   69,   69,  861,   69,  862,  857,   69,  868,
-       69,   69,  858,   69,  870,   69,  869,   69,   69,   69,
-       69,   69,  863,   69,  873,   69,  871,  864,   69,  865,
-      905,  866,  874,  867,  876,  872,  875,   69,  877,   69,
-      883,  880,  879,  881,  882,   69,   69,  878,  884,   69,
-       69,  886,   69,  885,  888,   69,   69,  890,   69,   69,
-      892,   69,   69,   69,  891,   69,   69,   69,  894,   69,
-      897,  887,  896,  895,   69,   69,  889,   69,   69,   69,
-      899,  901,  893,  902,  898,  900,   69,   69,   69,  904,
-      907,   69,  903,   69,   69,  909,  906,  908,   69,  911,
-
-       69,   69,   69,   69,   69,   69,  917,  912,   69,   69,
-      132,   69,   69,  913,  910,  915,  921,  922,   69,  916,
-      914,   69,  918,   69,  925,   69,  924,  920,  926,   69,
-       69,   69,  927,  919,   69,  923,  929,  931,  928,  930,
-       69,   69,   69,   69,  932,   69,   69,   69,   69,   69,
-      934,  937,  933,  940,   69,   69,   69,   69,   69,   69,
-       69,   69,   69,  936,  947,  938,  949,   69,  939,  935,
-      943,   69,  941,  944,  942,  945,  946,   69,  948,   69,
-      950,   69,  952,   69,  956,  953,  951,  957,  955,   69,
-       69,  958,   69,   69,  959,  960,   69,   69,   69,   69,
-
-       69,  961,  954,   69,  963,  966,   69,  968,   69,  967,
-       69,  969,   69,   69,  964,   69,  962,   69,   69,  975,
-       69,   69,  965,  974,   69,  970,   69,  971,   69,   69,
-       69,   69,   69,  983,  973,   69,   69,  976,  984,  972,
-      977,  981,  985,  980,   69,  978,  982,  979,   69,  986,
-       69,   69,  987,   69,   69,   69,  994,  991,  995,   69,
-      989,  992,   69,  988,   69,   69,  990,  996,  997,   69,
-      999,   69, 1000,  130,  993,   69, 1001,   69, 1002, 1003,
-     1004,   69, 1005,   69,   69,  998,   69,   69, 1007, 1006,
-       69,   69,   69,   69, 1009,   69, 1011, 1013,   69,   69,
-
-     1015,   69,   69,   69,   69, 1008, 1010, 1018, 1012,   69,
-       69,   69,   69, 1017,   69, 1014, 1020,   69, 1023, 1024,
-       69,   69, 1021, 1016, 1022,   69,   69,   69, 1019, 1029,
-     1027, 1030, 1025, 1031,   69,   69, 1033,   69,   69,   69,
-     1026,   69, 1035,   69,   69, 1028,   69, 1038,   69, 1034,
-     1036, 1039,   69,   69, 1032, 1041,   69, 1044, 1042,   69,
-       69, 1037,   69, 1049, 1045, 1046,   69, 1050, 1040,   69,
-     1043, 1047,   69,   69, 1051,   69,   69,   69, 1048, 1056,
-       69,   69, 1055,   69,   69,   69, 1058, 1052, 1059,   69,
-     1060,   69,   69,   69, 1053,   69, 1054,   69,   69, 1067,
-
-       69, 1061,   69, 1057,   69,   69,   69, 1064, 1066, 1065,
-       69, 1062, 1063, 1072,   69, 1073, 1070,   69, 1068,   69,
-     1069, 1074,   69,   69, 1075,   69, 1071,   69, 1076, 1080,
-       69, 1077,   69,   69,   69, 1081, 1084,   69, 1078, 1082,
-     1089, 1083,   69, 1079,   69,   69, 1086, 1090,   69, 1087,
-       69, 1088, 1085,   69,   69,   69,   69,   69,   69,   69,
-     1099,   69,  128, 1092, 1091,   69,   69, 1096, 1094,   69,
-       69, 1093, 1095,   69, 1101, 1102, 1098, 1100,   69, 1103,
-       69, 1108, 1097, 1110, 1107,   69,   69, 1109,   69, 1105,
-       69, 1111, 1106, 1104, 1113,   69,   69,   69,   69,   69,
-
-     1115,   69,   69, 1822, 1117,   69, 1116, 1121, 1114,   69,
-     1112, 1118,   69,   69,   69,   69,   69,   69, 1125, 1119,
-     1126, 1120, 1127, 1123,   69, 1122,   69,   69,   69, 1128,
-     1132,   69,   69, 1124,   69, 1129,   69,   69, 1138, 1130,
-     1135, 1134, 1131,   69,   69,   69, 1133,   69, 1136, 1142,
-       69,   69,   69, 1141, 1143,   69, 1137, 1139, 1144,   69,
-       69, 1145, 1140, 1146,   69, 1148,   69, 1147,   69,   69,
-       69,   69,   69,   69,   69, 1149, 1152, 1157,   69, 1153,
-     1150, 1158,   69,   69, 1151,   69,   69, 1156, 1162,   69,
-     1164,   69, 1154, 1155,   69, 1159, 1165,   69, 1166, 1167,
-
-       69, 1160, 1169, 1161,   69, 1163,   69,   69, 1171, 1168,
-       69, 1173,   69,   69,   69, 1174, 1175,   69, 1170,   69,
-       69,   69, 1182,   69,   69,   69,   69,   69,   69, 1176,
-     1177, 1178, 1186,   69,   69, 1172, 1179, 1212, 1184, 1180,
-     1181,   69, 1188, 1183,   69, 1190, 1185,   69, 1189, 1192,
-       69,   69, 1187,   69,   69,   69, 1191,   69, 1197,   69,
-     1194,   69,   69, 1195, 1201,   69, 1193, 1200,   69,   69,
-     1204, 1205, 1203, 1206,   69,   69,   69, 1199,   69,   69,
-       69, 1196,   69, 1207,   69, 1198,   69,   69, 1202, 1208,
-       69, 1215,   69,   69,   69,   69, 1211,   69,   69, 1209,
-
-     1275, 1210,   69, 1219, 1213, 1221,   69, 1216,   69, 1218,
-       69, 1220, 1217, 1214, 1224,   69, 1225,   69, 1227, 1222,
-     1228,   69, 1229,   69, 1223, 1231, 1230,   69,   69, 1234,
-       69, 1226,   69,   69,   69,   69, 1232, 1236,   69,   69,
-     1233, 1239,   69, 1241, 1235,   69,   69, 1237,   69,   69,
-       69, 1244, 1243,   69, 1242, 1245,   69, 1246,   69, 1248,
-       69, 1240,   69, 1238,   69, 1247, 1250, 1249,   69,   69,
-       69, 1255,   69, 1251, 1252,   69,   69,   69,   69,   69,
-     1253, 1260, 1254,   69, 1262, 1257,   69,   69, 1261,   69,
-       69, 1264,   69,   69,   69, 1256, 1258,   69, 1259, 1272,
-
-     1263, 1267, 1265, 1268,   69, 1266, 1269,   69, 1270,   69,
-       69, 1271,   69, 1274, 1276,   69,   69, 1277,   69, 1279,
-       69,   69,   69,   69,   69,   69, 1273,   69,   69, 1280,
-       69,   69, 1290,   69, 1282, 1283, 1278, 1284, 1289,   69,
-       69,   69, 1281, 1286,   69, 1295,   69, 1287, 1292, 1293,
-     1285, 1288,   69,   69,   69, 1298,   69, 1291, 1294, 1297,
-       69, 1299,   69,   69, 1303, 1300,   69,   69,   69,   69,
-       69, 1304,   69, 1309,   69, 1306,   69, 1310, 1296,   69,
-     1301, 1305,   69, 1302,   69, 1313, 1308,   69,   69, 1307,
-       69,   69, 1314, 1315, 1311,   69, 1316, 1317,   69,   69,
-
-     1318, 1319, 1312,   69, 1320,   69,   69,   69, 1322,   69,
-     1321, 1323,   69,   69,   69,   69,   69,   69, 1324, 1327,
-     1328, 1332,   69,   69,   69, 1326, 1331, 1325, 1334,   69,
-     1329,   69, 1333,   69,   69, 1335, 1337, 1330, 1336, 1339,
-       69,   69, 1342,   69, 1341,   69, 1338, 1344,   69, 1340,
-       69, 1345,   69,   69, 1343,   69, 1349,   69,   69,   69,
-     1348,   69,   69,   69, 1346,   69, 1351,   69, 1354, 1357,
-       69, 1347,   69,   69,   69,   69, 1358, 1353,   69, 1360,
-       69, 1356, 1352, 1350,   69, 1355,   69,   69, 1359,   69,
-       69, 1369,   69,   69,   69,   69, 1370, 1362,   69, 1367,
-
-       69, 1361, 1822, 1363, 1392, 1365,   69, 1371, 1364, 1372,
-     1366, 1368,   69, 1373,   69, 1374, 1375,   69, 1376,   69,
-       69, 1377, 1379,   69,   69, 1378, 1380,   69, 1381,   69,
-     1383,   69, 1384,   69, 1385,   69,   69, 1388,   69, 1382,
-       69, 1387,   69, 1386, 1390,   69,   69,   69, 1394, 1393,
-     1396,   69,   69,   69,   69, 1400,   69,   69,   69, 1389,
-     1391,   69,   69, 1395, 1405,   69, 1404,   69, 1398, 1407,
-       69, 1397,   69, 1399,   69, 1409, 1403, 1401,   69,   69,
-       69, 1402,   69,   69,   69, 1412, 1406, 1410,   69,   69,
-       69, 1411,   69, 1416,   69, 1421, 1414,   69, 1408, 1418,
-
-       69, 1419,   69,   69, 1417, 1415, 1422, 1413, 1420,   69,
-     1425, 1426, 1424,   69, 1427,   69,   69, 1423,   69,   69,
-       69,   69, 1428, 1432,   69,   69, 1433, 1430, 1435,   69,
-     1429, 1431, 1436,   69,   69, 1438,   69,   69,   69, 1437,
-       69, 1442,   69,   69, 1434,   69, 1443,   69, 1439,   69,
-     1444, 1440, 1445,   69, 1446,   69,   69, 1441,   69, 1448,
-     1449,   69, 1452, 1447, 1453,   69, 1451,   69,   69, 1456,
-       69,   69,   69, 1455,   69, 1450,   69,   69, 1457, 1458,
-     1822, 1454,   69, 1460,   69, 1459, 1461,   69, 1467, 1462,
-     1463,   69, 1464,   69, 1465,   69, 1466,   69, 1468,   69,
-
-       69,   69, 1469, 1472,   69,   69, 1474,   69,   69, 1477,
-       69,   69,   69, 1471, 1473,   69,   69, 1478, 1479, 1470,
-       69,   69,   69, 1476,   69, 1475, 1481, 1482,   69, 1480,
-     1483,   69, 1484,   69, 1485,   69, 1487,   69, 1486,   69,
-       69, 1492,   69,   69, 1490,   69,   69, 1488,   69, 1489,
-       69,   69, 1493,   69,   69, 1503,   69,   69,   69,   69,
-     1491, 1496, 1501, 1502,   69, 1498, 1495, 1504,   69,   69,
-       69, 1494, 1499,   69, 1497, 1500,   69,   69,   69, 1505,
-       69, 1512, 1506, 1513,   69, 1509,   69, 1514,   69,   69,
-     1508, 1507,   69, 1510,   69, 1511, 1515,   69,   69, 1521,
-
-       69, 1516, 1522,   69,   69,   69, 1517,   69,   69,   69,
-     1518,   69, 1523, 1519, 1526,   69,   69, 1520, 1524, 1530,
-     1531,   69,   69, 1525,   69, 1527,   69, 1528, 1534,   69,
-     1532, 1529,   69,   69, 1538,   69, 1535, 1537,   69, 1536,
-     1533, 1540,   69, 1542,   69, 1541, 1543,   69,   69, 1544,
-       69, 1539,   69,   69,   69,   69,   69,   69, 1547, 1548,
-       69, 1546, 1552,   69, 1550,   69, 1555,   69, 1553, 1556,
-       69, 1557, 1545,   69, 1549, 1551,   69,   69, 1558,   69,
-     1554, 1559,   69, 1560,   69, 1561, 1564,   69,   69,   69,
-       69, 1562,   69, 1563, 1565,   69,   69, 1566,   69, 1569,
-
-     1567,   69,   69,   69, 1568,   69, 1574,   69,   69,   69,
-     1822, 1572, 1573,   69, 1571,   69, 1570, 1575, 1579,   69,
-       69,   69, 1582,   69,   69,   69, 1576,   69, 1583, 1577,
-     1581,   69, 1578, 1585, 1580,   69, 1584,   69, 1586, 1587,
-       69, 1588,   69, 1590, 1591,   69,   69, 1593,   69, 1595,
-       69, 1594, 1589, 1596,   69, 1597,   69,   69,   69, 1600,
-     1592, 1601,   69,   69,   69,   69,   69, 1602, 1604,   69,
-       69, 1603, 1599,   69, 1607, 1598,   69,   69, 1611,   69,
-       69,   69,   69, 1605, 1606,   69, 1615,   69, 1608, 1613,
-       69, 1610,   69, 1616,   69, 1618, 1609,   69,   69, 1612,
-
-       69, 1614,   69, 1617, 1624,   69,   69, 1621,   69, 1625,
-     1627,   69,   69,   69, 1619,   69, 1628, 1631,   69,   69,
-     1622,   69, 1623, 1620, 1629,   69, 1626,   69, 1630,   69,
-     1633,   69, 1632,   69, 1634,   69, 1637,   69, 1638, 1635,
-     1640,   69, 1639,   69,   69,   69,   69, 1646,   69,   69,
-     1641, 1644,   69,   69, 1636, 1648,   69,   69, 1651,   69,
-       69,   69, 1653, 1642, 1652, 1643, 1645,   69, 1649,   69,
-     1647,   69, 1650,   69, 1657, 1659,   69, 1654,   69, 1656,
-     1661,   69,   69, 1663,   69,   69, 1655, 1662,   69,   69,
-     1666,   69,   69, 1669,   69, 1670,   69, 1660,   69, 1658,
-
-       69,   69, 1674,   69,   69, 1664, 1667,   69,   69,   69,
-       69, 1665, 1672, 1668, 1677, 1679, 1675, 1671, 1682,   69,
-       69, 1673, 1683,   69,   69, 1680, 1681, 1676,   69, 1678,
-       69,   69, 1822, 1685, 1688,   69, 1687, 1689,   69, 1690,
-       69,   69,   69, 1684, 1686,   69, 1691, 1692,   69,   69,
-     1693, 1694,   69,   69, 1696,   69, 1695, 1697,   69,   69,
-     1698, 1699, 1700,   69, 1701,   69,   69,   69,   69,   69,
-     1702,   69,   69,   69, 1711,   69, 1822, 1709, 1703, 1712,
-       69, 1714,   69,   69, 1705, 1704, 1706, 1707, 1716,   69,
-       69,   69, 1708, 1710, 1713, 1715,   69, 1717, 1718,   69,
-
-       69, 1721,   69, 1722,   69,   69,   69,   69,   69,   69,
-       69, 1719, 1735, 1726, 1727, 1729,   69,   69, 1720, 1730,
-       69, 1724, 1731,   69, 1732,   69,   69,   69, 1725, 1728,
-     1723,   69, 1734,   69,   69,   69,   69,   69, 1733, 1737,
-       69, 1736,   69,   69,   69,   69, 1741,   69,   69, 1743,
-       69, 1822, 1738, 1739, 1749,   69, 1740, 1742,   69,   69,
-     1746,   69, 1744, 1745, 1751, 1748, 1752, 1750,   69, 1755,
-       69,   69, 1747, 1753,   69,   69, 1759, 1760,   69,   69,
-       69,   69,   69, 1754, 1756,   69, 1757,   69,   69,   69,
-       69,   69, 1761, 1762, 1758,   69, 1769,   69, 1763, 1764,
-
-     1770, 1766, 1767,   69, 1772,   69, 1765,   69,   69, 1768,
-     1773,   69, 1774, 1775, 1777,   69, 1771, 1778,   69,   69,
-       69,   69, 1779, 1782,   69,   69,   69,   69,   69,   69,
-     1776, 1785,   69,   69, 1789,   69,   69,   69, 1784, 1780,
-     1781, 1790, 1794, 1783,   69, 1788, 1786,   69, 1787,   69,
-     1792,   69, 1793,   69, 1791, 1797,   69,   69,   69,   69,
-     1795,   69,   69, 1796, 1798, 1799, 1800, 1801,   69,   69,
-       69,   69, 1807, 1803, 1804,   69,   69, 1822, 1802,   69,
-     1805,   69, 1810, 1811,   69,   69, 1812, 1813,   69, 1806,
-     1814,   69, 1815,   69, 1808, 1809,   69,   69, 1816,   69,
-
-     1822, 1817, 1820,   69, 1821,   69, 1822, 1822, 1822, 1822,
-     1822, 1822, 1822, 1822, 1822, 1822, 1818, 1822, 1819,   41,
-       41,   41,   41,   41,   41,   41,   46,   46,   46,   46,
-       46,   46,   46,   51,   51,   51,   51,   51,   51,   51,
-       57,   57,   57,   57,   57,   57,   57,   62,   62,   62,
-       62,   62,   62,   62,   72,   72, 1822,   72,   72,   72,
-       72,  127,  127, 1822, 1822, 1822,  127,  127,  129,  129,
-     1822, 1822,  129, 1822,  129,  131, 1822, 1822, 1822, 1822,
-     1822,  131,  134,  134, 1822, 1822, 1822,  134,  134,  136,
-     1822, 1822, 1822, 1822, 1822,  136,  138,  138, 1822,  138,
-
-      138,  138,  138,   73,   73, 1822,   73,   73,   73,   73,
-       13, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
-     1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
-     1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
-     1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822
+       69,  148,  147,  145,   73,   74,   69,  149,  154,   69,
+      150,  151,   69,   69,  156,   69,   69,  153,   69,  160,
+       69,  161,   69,   69,  158,  163,  155,  137,  164,  157,
+      159,  167,  162,   69,   69,   69,   69,   69,  169,  168,
+      171,  165,  166,   69,  172,   69,   69,  173,  174,  175,
+      176,   69,   69,   69,   69,  180,   69,   69,  170,  177,
+      178,  182,   69,   69,  179,   69,   69,  184,   69,  193,
+
+      181,  185,  183,   69,   69,   69,  186,   69,  189,   69,
+      195,  190,   69,  188,   69,   69,   69,  191,  200,  194,
+      202,  192,   69,  197,   69,  127,  127,   69,  198,  129,
+      196,  230,  129,  135,  203,  199,  134,  134,  131,  201,
+      131,  131,  204,  131,  136,   69,  136,  136,   73,  136,
+       73,   73,  137,   73,   69,  205,   69,  207,   69,  139,
+      208,  206,   69,   69,   69,   69,  209,   69,   69,  217,
+      214,   69,  216,  210,  213,   69,  215,  218,  211,  219,
+       69,   69,   69,   69,  212,   69,  226,   69,  228,   69,
+      227,   69,  231,   69,  232,   69,   69,   69,   69,   69,
+
+      237,  220,   69,  238,  233,  234,  221,   69,  235,  236,
+      291,  222,   69,  239,  244,  243,  223,  242,  240,   69,
+       69,  245,  224,  225,  246,  248,  251,   69,  250,   69,
+       69,   69,  241,   69,  253,  247,  249,  254,  252,   69,
+       69,   69,   69,   69,   69,   69,   69,  255,   69,  257,
+       69,  259,   69,   69,  256,   69,  261,  263,   69,   69,
+       69,  270,   69,  262,  258,  266,   69,   69,  260,  272,
+      264,  274,   69,  265,   69,   69,   69,  268,  269,  273,
+      267,  278,  271,   69,  277,  280,   69,  276,  137,   69,
+       69,  281,   69,  275,   69,   69,  286,   69,   69,   69,
+
+      283,   69,  285,  287,  279,  288,   69,  292,  282,  133,
+       69,  284,  289,  290,   69,   69,   69,  294,  295,   69,
+      296,  297,   69,  298,   69,   69,  299,   69,   69,   69,
+      301,  293,  302,   69,  305,   69,   69,  303,   69,   69,
+       69,  307,  306,  300,  304,   69,  309,   69,   69,   69,
+      308,   69,   69,  314,   69,   69,  310,  315,   69,  312,
+       69,  313,  317,   69,  321,  311,   69,  316,   69,   69,
+       69,  322,   69,  318,   69,  320,   69,   69,  319,   69,
+      333,  326,  323,  324,   69,   69,  325,  330,  331,  328,
+       69,  329,  332,   69,   69,  327,   69,   69,  339,   69,
+
+       69,  334,   69,  337,  335,  336,  338,  340,   69,  341,
+       69,  342,  344,   69,  346,  343,   69,   69,   69,   69,
+       69,  349,  348,  350,   69,  356,   69,   69,   69,   69,
+       69,   69,  357,  345,  351,  355,  347,   69,   69,   69,
+      352,  358,  363,  353,  361,  354,   69,   69,   69,  359,
+      137,  360,  362,   69,   69,   69,  376,  374,  364,   69,
+      365,   69,  373,  366,  367,  379,   69,   69,  377,   69,
+       69,  375,  383,  368,  378,  369,  370,  371,  380,  381,
+      372,  382,  385,   69,  384,   69,   69,   69,  389,   69,
+       69,  392,  393,   69,   69,  391,   69,  387,   69,   69,
+
+      388,   69,  132,  386,   69,  390,   69,   69,  398,   69,
+       69,  399,   69,   69,  395,  396,  394,   69,  397,  400,
+       69,  402,  404,  401,   69,  405,  407,  408,  406,   69,
+       69,  409,   69,   69,  403,  410,   69,  411,   69,  413,
+       69,  412,   69,  415,  417,  414,   69,  416,   69,   69,
+       69,   69,   69,  422,   69,  421,   69,  419,   69,  423,
+       69,  425,  420,  418,   69,  426,   69,   69,   69,   69,
+       69,   69,   69,  435,  428,   69,  429,  424,   69,  427,
+       69,  431,   69,   69,  436,  437,  434,   69,  430,  439,
+      432,  433,   69,   69,   69,  438,   69,  443,   69,   69,
+
+      440,   69,   69,  445,   69,  441,   69,  456,   69,   69,
+      460,  444,   69,  442,   69,  446,   69,  457,  455,  458,
+      447,   69,  448,   69,  453,  454,   69,  449,  459,  450,
+       69,  462,   69,   69,   69,   69,   69,  451,  463,  461,
+      468,  465,   69,   69,  464,  469,  137,  452,  473,   69,
+      472,   69,  466,   69,   69,   69,  467,   69,  471,  478,
+       69,  470,  477,  474,   69,  480,   69,  475,  476,  479,
+       69,   69,   69,   69,  482,   69,  481,  484,  485,  488,
+       69,  483,   69,  489,   69,  491,   69,  492,   69,  486,
+      493,   69,  487,  490,  130,   69,  494,   69,  495,   69,
+
+      496,   69,  500,  497,   69,   69,  498,   69,  499,   69,
+       69,  503,  504,  501,   69,  502,   69,   69,   69,  505,
+       69,   69,  511,  507,   69,   69,   69,  128,  508,  515,
+      506,  513,  509,   69,   69,   69,  510,   69,  520,  514,
+      517,   69,  512,   69,  516,  518,   69,   69,   69,  525,
+       69,  522,   69,  527,   69,   69,  521,   69,  526,   69,
+      524,   69,  528,  523,  532,   69,  529,  519,   69,   69,
+      533,  531,   69,  530,   69,  534,  536,   69,   69,  535,
+      537,   69,  540,   69,   69,   69,  546,   69,  542,  544,
+      538,  539,  541,  545,   69,   69,   69,   69,  548,   69,
+
+       69,   69,   69,  543,   69,   69,  553,   69,   69,   69,
+       69,  558,  137,  554,  547,  549,   69,  550,   69,  551,
+      555,  552,  562,  557,   69,  556,   69,  561,  559,  560,
+       69,   69,   69,   69,   69,  563,  564,   69,   69,   69,
+      568,   69,  569,   69,  571,  570,  565,  567,  572,   69,
+       69,  566,   69,  137,   69,   69,  574,  578,  577,  573,
+      584,  575,   69,   69,  576,   69,  579,   69,   69,  581,
+       69,   69,  583,   69,  586,  589,  580,  582,   69,   69,
+       69,   69,   69,  587,   69,   69,  590,  585,  601,   69,
+       69,  588,   69,   69,  602,  603,   69,  591,  600,  598,
+
+       69,  611,  599,  615,   69,   69,  592,   69,  614,   69,
+      612,   69,  593,   69,   69,  617,  594,  636,  613,  595,
+      616,   69,  619,   69,  618,   69,  596,  623,  620,  597,
+       69,  604,  605,   69,  606,   69,  621,  607,   69,   69,
+      622,   69,  608,   69,   69,  628,   69,   69,  609,  610,
+       69,  627,  632,   69,   69,  631,   69,  624,  633,  625,
+      626,  629,  634,   69,  637,  630,   69,   69,   69,  635,
+       69,   69,  639,   69,   69,  640,  638,   69,  641,  643,
+       69,  645,  644,   69,   69,   69,   69,   69,   69,  651,
+      649,   69,  642,  647,  648,   69,  646,  650,   69,   69,
+
+       69,  653,   69,   69,  656,   69,  652,   69,   69,  654,
+       69,   69,  662,   69,  661,   69,  655,   69,   69,  667,
+       69,  657,  658,   69,  665,  659,   69,  660,  663,  135,
+      664,  666,  668,   69,  670,  671,  672,   69,  669,   69,
+       69,   69,  674,  673,   69,   69,   69,  677,  679,  675,
+      676,   69,  678,   69,   69,  683,   69,  680,   69,  682,
+       69,   69,  681,  685,   69,  686,  137,   69,   69,   69,
+       69,  688,   69,  687,   69,  699,  684,   69,   69,   69,
+      689,  700,   69,  691,   69,   69,  703,  701,   69,  705,
+      692,   69,  690,   69,  704,   69,  693,   69,  694,  706,
+
+      722,  708,  695,  702,  696,  707,   69,   69,   69,  697,
+      709,  710,  712,   69,  698,   69,   69,   69,   69,  717,
+      938,  711,  713,  716,   69,   69,  718,   69,   69,  715,
+      724,  719,  723,  720,  714,   69,  726,   69,   69,   69,
+      725,   69,  727,  731,   69,   69,  728,  733,   69,  732,
+       69,  721,   69,  729,   69,   69,  737,  734,   69,   69,
+      730,   69,   69,  736,  738,   69,   69,  735,   69,   69,
+       69,  740,   69,  744,  739,  742,   69,  743,  748,   69,
+       69,  741,   69,   69,  746,  747,  796,  752,   69,  745,
+       69,  749,   69,  753,   69,  751,   69,  750,   69,  754,
+
+      757,  755,   69,  756,   69,   69,  759,  763,   69,  758,
+      760,   69,   69,  761,   69,   69,  762,   69,  765,   69,
+      768,   69,  764,   69,   69,   69,  770,   69,  771,  766,
+      772,  775,   69,  774,   69,  767,   69,   69,   69,   69,
+      769,  773,  778,  776,   69,   69,   69,   69,   69,   69,
+       69,  783,  784,  786,  777,  779,   69,  780,  782,   69,
+      787,   69,  789,   69,  781,  790,  785,   69,  788,   69,
+       69,  792,   69,   69,  791,   69,   69,  794,   69,   69,
+      793,  795,   69,  804,  798,   69,   69,  805,   69,   69,
+       69,  797,   69,  801,  806,  799,   69,  802,   69,   69,
+
+      808,  807,   69,  800,  809,  803,   69,  810,   69,   69,
+      816,   69,   69,  811,   69,  813,   69,   69,  812,   69,
+      821,  814,  819,   69,   69,   69,  817,   69,  815,  822,
+      823,   69,  818,   69,  825,   69,   69,  820,   69,  824,
+      828,   69,  827,  830,   69,  826,   69,   69,  832,   69,
+       69,   69,   69,   69,   69,  829,  833,  836,   69,   69,
+      831,  834,   69,  837,  835,  841,   69,   69,   69,   69,
+       69,  838,  840,  842,  839,  844,  845,   69,  847,   69,
+      850,   69,  843,  846,  849,  851,   69,  848,   69,  852,
+       69,   69,  855,   69,  858,   69,  853,   69,  859,   69,
+
+      854,  856,  857,   69,   69,   69,  862,   69,  860,  861,
+       69,   69,  867,  866,  868,  864,  863,   69,   69,   69,
+       69,   69,  876,  869,  870,  865,   69,   69,   69,   69,
+       69,   69,  878,   69,   69,  871,   69,   69,  877,  886,
+      872,   69,  873,  881,  874,  879,  875,  880,  882,   69,
+      884,  888,  883,   69,   69,  887,  885,  890,   69,  892,
+       69,   69,   69,   69,  893,  896,   69,  894,   69,  891,
+      898,   69,   69,   69,  889,  900,   69,  899,   69,   69,
+       69,   69,  895,  902,   69,  904,   69,  903,  897,   69,
+      905,  908,  907,  901,   69,  909,  910,   69,  912,  906,
+
+       69,   69,  911,   69,   69,   69,   69,  916,   69,   69,
+      919,   69,   69,  913,  917,   69,   69,  915,   69,   69,
+       69,  925,   69,   69,  914,  920,   69,   69,   69, 1285,
+      923,  921,  918,  929,  930,   69,  922,  924,   69,   69,
+       69,  934,  926,  932,  928,  935,   69,   69,  927,  936,
+      931,   69,  940,   69,   69,  937,   69,   69,  933,   69,
+      941,   69,   69,   69,  942,  939,   69,  946,   69,   69,
+       69,   69,  949,  943,   69,   69,   69,   69,   69,  945,
+      960,  947,   69,  956,   69,  944,  948,  950,  952,  951,
+      953,  954,   69,   69,   69,   69,  955,   69,  958,  957,
+
+      959,  962,  964,  965,   69,  963,  966,   69,   69,  961,
+       69,   69,   69,  967,   69,  968,  969,   69,   69,   69,
+       69,   69,  970,  974,  972,  971,  975,   69,  977,  979,
+      976,   69,  978,   69,  973,   69,   69,   69,  984,   69,
+      980,   69,  983,   69,   69,   69,   69,   69,   69,  992,
+     1004,   69,   69,  981,  982,  993,  985,   69,  986,  989,
+      987,   69,  991,  988,   69,   69,  995,  990,  996,  994,
+       69,   69,   69,   69,   69,   69, 1000,   69,  997,  998,
+     1001,   69, 1005, 1008,  999, 1006,   69, 1011,   69,   69,
+       69, 1009, 1003, 1002, 1010, 1007, 1012, 1013,   69, 1014,
+
+       69,   69,   69,   69, 1016, 1015,   69,   69,   69,   69,
+     1022,   69, 1020,   69,   69, 1018,   69, 1024,   69,   69,
+       69, 1017, 1019, 1027, 1021,   69,   69,   69,   69, 1026,
+     1029,   69, 1032, 1023,   69,   69, 1025,   69,   69, 1028,
+     1033, 1031,   69,   69, 1030, 1038, 1036, 1039, 1034,   69,
+     1040, 1042,   69,   69, 1035,   69,   69,   69, 1037, 1044,
+       69,   69,   69, 1046,   69, 1048, 1043,   69,   69, 1041,
+       69,  133, 1045, 1051, 1049, 1054, 1052,   69,   69, 1060,
+       69,   69, 1055, 1057,   69, 1047,   69, 1050, 1053, 1059,
+     1056,   69, 1061, 1058,   69,   69,   69,   69, 1066,   69,
+
+       69,   69, 1065,   69,   69, 1068, 1069,   69,   69, 1070,
+       69,   69, 1062,   69, 1063,   69, 1064,   69, 1077, 1071,
+       69,   69, 1067,   69,   69, 1074, 1076, 1075, 1072,   69,
+     1073, 1082,   69,   69, 1083, 1080,   69, 1078,   69,   69,
+     1079,   69,  132, 1085,   69, 1081,   69, 1086, 1084, 1091,
+     1087, 1090,   69,   69,   69, 1088,   69,   69, 1092,   69,
+     1093, 1089, 1099, 1094, 1100,   69, 1096,   69, 1098, 1097,
+       69,   69,   69,   69,   69, 1095,   69,   69,   69,   69,
+     1109,   69,   69,  130, 1102,   69, 1104, 1112,   69, 1106,
+     1101, 1103, 1105,   69, 1111,   69, 1108, 1110, 1118, 1107,
+
+       69, 1113, 1115,   69, 1120, 1116, 1117,   69,   69,   69,
+       69, 1123,   69, 1119, 1121, 1114,   69,   69,   69,   69,
+     1125,   69,   69, 1124,   69, 1128, 1126, 1122, 1131, 1127,
+       69,   69,   69,   69,   69, 1135, 1129, 1136, 1130, 1137,
+     1132,   69, 1134,   69,   69,   69, 1138,   69, 1133, 1142,
+       69,   69, 1139,   69,   69,   69,   69, 1148, 1144,   69,
+     1141, 1143,   69,   69,   69, 1145, 1146, 1140, 1149, 1151,
+     1152,   69,   69, 1156, 1147, 1153,   69, 1150, 1154,   69,
+       69, 1155, 1157,   69,   69,   69,   69,   69,   69, 1159,
+       69,   69, 1158, 1163, 1160,   69, 1168,   69, 1161, 1164,
+
+     1169,   69, 1162,  128,   69,   69,   69, 1173,   69,   69,
+     1167, 1166, 1165, 1175,   69, 1176,   69,   69,   69, 1178,
+       69, 1177, 1170, 1171,   69,   69, 1172, 1180, 1179, 1174,
+     1182,   69,   69, 1184,   69,   69, 1181,   69, 1185, 1186,
+       69,   69, 1193,   69,   69, 1183,   69,   69,   69, 1197,
+       69, 1191, 1187, 1188, 1189,   69,   69, 1199,   69, 1190,
+     1195, 1192,   69, 1194,   69, 1201, 1203,   69,   69, 1196,
+       69, 1202,   69,   69,   69, 1208,   69, 1205, 1200,   69,
+       69, 1198, 1206, 1204, 1212, 1211,   69,   69, 1215,   69,
+       69, 1216,   69,   69, 1214, 1210,   69, 1218, 1207, 1217,
+
+       69,   69, 1209,   69,   69,   69, 1213,   69, 1223, 1221,
+     1219,   69,   69, 1226,   69,   69, 1222,   69,   69,   69,
+     1232,   69,   69, 1220, 1230, 1224, 1235,   69, 1231, 1227,
+       69,   69, 1229, 1233, 1228, 1238,   69, 1225, 1234, 1240,
+       69, 1239,   69, 1241,   69, 1237,   69, 1242, 1245,   69,
+       69, 1236,   69,   69, 1247,   69,   69,   69, 1244, 1250,
+     1252, 1246, 1243,   69,   69,   69,   69, 1248,   69, 1254,
+       69, 1255, 1256,   69,   69, 1253, 1257,   69,   69, 1251,
+     1259, 1249,   69, 1260,   69,   69,   69,   69, 1258, 1264,
+     1261, 1262, 1263,   69, 1267,   69,   69, 1265,   69,   69,
+
+       69,   69,   69,   69, 1274, 1266, 1272, 1269, 1273,   69,
+       69, 1276,   69,   69,   69, 1275, 1268, 1270,   69, 1271,
+     1281,   69, 1277, 1279,   69,   69, 1284, 1280, 1282,   69,
+     1278,   69,   69, 1286,   69,   69, 1287,   69, 1283, 1288,
+       69,   69, 1289,   69, 1291, 1290, 1292,   69,   69,   69,
+     1293,   69,   69, 1294,   69,   69,   69, 1302,   69, 1295,
+     1296, 1301,   69,   69,   69,   69, 1298, 1307,   69, 1304,
+       69,   69, 1299, 1305, 1300, 1297, 1303, 1306,   69,   69,
+       69, 1310,   69, 1309,   69, 1311,   69, 1312, 1313, 1315,
+       69, 1308,   69,   69,   69, 1316,   69, 1321,   69, 1317,
+
+     1318,   69, 1322,   69, 1314,   69, 1325,   69,   69, 1327,
+     1320,   69, 1319, 1326,   69,   69,   69,   69, 1323, 1331,
+       69,   69,   69,   69, 1329, 1324, 1328, 1330, 1333, 1332,
+       69,   69,   69,   69, 1336, 1334, 1335,   69, 1339, 1338,
+       69,   69, 1337, 1340, 1344,   69,   69,   69, 1341,   69,
+     1343, 1346,   69, 1348,   69, 1345,   69, 1351,   69, 1349,
+       69,   69, 1354,   69,   69, 1342, 1347,   69, 1352, 1350,
+     1356,   69,   69, 1355,   69, 1357,   69, 1360,   69, 1358,
+       69, 1353,   69, 1361, 1362,   69,   69,   69,   69,   69,
+     1359, 1364,   69, 1367, 1370,   69,   69,   69,   69,   69,
+
+     1371, 1363, 1366, 1365, 1373,   69,   69, 1368, 1369,   69,
+       69,   69, 1372,   69,   69, 1382,   69,   69,   69, 1846,
+     1383,   69,   69,   69, 1374, 1375, 1380, 1400, 1376, 1378,
+       69, 1384, 1379, 1377, 1381, 1385, 1386,   69, 1387, 1388,
+       69, 1389,   69,   69,   69, 1390, 1392,   69, 1393,   69,
+     1394,   69, 1396,   69, 1397,   69, 1391, 1398,   69,   69,
+     1401,   69,   69, 1395, 1403,   69,   69,   69,   69,   69,
+     1407, 1406,   69, 1405, 1409,   69,   69,   69, 1399, 1413,
+       69, 1402,   69,   69, 1404, 1408,   69, 1418,   69,   69,
+       69, 1410, 1411, 1417,   69, 1412, 1420,   69,   69, 1422,
+
+       69, 1416, 1414,   69,   69, 1425, 1415,   69,   69, 1419,
+       69,   69, 1423,   69,   69,   69, 1424, 1434, 1429,   69,
+     1421, 1427,   69, 1431, 1432,   69, 1430,   69,   69, 1435,
+       69, 1428, 1426, 1433,   69, 1438, 1439, 1437,   69,   69,
+     1440,   69,   69,   69,   69, 1442, 1445, 1436, 1441, 1446,
+     1444, 1443,   69,   69, 1449,   69, 1450,   69,   69,   69,
+       69, 1452,   69,   69,   69, 1448,   69, 1456, 1457,   69,
+     1453,   69, 1447, 1451, 1458,   69, 1454, 1459,   69,   69,
+     1460,   69, 1455,   69,   69, 1463,   69, 1466,   69, 1461,
+     1467, 1465,   69, 1462,   69, 1470,   69,   69, 1472, 1469,
+
+       69,   69,   69, 1464, 1468, 1471,   69, 1474, 1475,   69,
+       69,   69, 1477,   69, 1479, 1473, 1476, 1478,   69,   69,
+       69, 1480,   69,   69, 1482,   69, 1481, 1483, 1486,   69,
+       69, 1488,   69,   69, 1491,   69,   69, 1485,   69, 1487,
+       69,   69, 1484, 1492,   69,   69, 1493,   69, 1490,   69,
+     1489,   69, 1495, 1499, 1494, 1496,   69, 1497,   69, 1498,
+       69, 1501,   69, 1500,   69,   69, 1506,   69,   69,   69,
+     1504, 1505,   69,   69, 1502,   69, 1503, 1507,   69,   69,
+       69,   69,   69,   69, 1517,   69, 1510, 1515, 1516, 1518,
+       69,   69, 1509, 1512,   69, 1508, 1513,   69, 1519, 1511,
+
+       69, 1520, 1514,   69,   69,   69,   69, 1527,   69, 1521,
+     1528,   69, 1524,   69,   69,   69, 1522, 1529,   69,   69,
+     1523, 1530,   69, 1526, 1525, 1536,   69, 1537, 1531,   69,
+       69,   69,   69, 1532,   69, 1534, 1533,   69,   69, 1541,
+       69, 1535,   69,   69, 1846, 1539, 1545, 1538, 1546,   69,
+     1540,   69, 1549,   69,   69, 1553,   69, 1542, 1544, 1543,
+     1548,   69,   69,   69,   69, 1550, 1547, 1552,   69, 1551,
+     1555,   69, 1557,   69,   69, 1554, 1558,   69,   69, 1559,
+       69,   69,   69, 1556,   69,   69, 1562, 1563,   69, 1561,
+     1560,   69, 1565, 1564,   69,   69, 1567, 1570,   69, 1568,
+
+     1566, 1571,   69, 1569, 1572,   69, 1574,   69, 1576,   69,
+     1573, 1575,   69, 1577,   69,   69,   69,   69,   69, 1578,
+       69, 1579,   69, 1580,   69,   69,   69, 1583, 1582, 1585,
+       69,   69, 1581,   69,   69, 1590, 1584,   69,   69, 1588,
+       69,   69, 1589, 1586, 1587,   69, 1591, 1595,   69,   69,
+     1597, 1598,   69,   69,   69,   69,   69, 1592,   69, 1600,
+     1593, 1599,   69,   69, 1594, 1601, 1603,   69, 1596, 1604,
+       69, 1602,   69, 1606, 1607,   69,   69, 1609, 1605,   69,
+     1611,   69, 1610, 1612,   69, 1613,   69, 1608, 1614,   69,
+     1616, 1617,   69,   69,   69,   69, 1620, 1618,   69,   69,
+
+     1619,   69,   69, 1615, 1621,   69,   69, 1624,   69, 1628,
+       69,   69,   69,   69,   69, 1622, 1623,   69, 1632,   69,
+     1630,   69, 1627, 1625,   69, 1633, 1626,   69,   69,   69,
+     1629,   69, 1631, 1635, 1636, 1634, 1638, 1641,   69,   69,
+       69,   69, 1642, 1644,   69, 1645,   69, 1637,   69, 1639,
+       69, 1640, 1648,   69,   69, 1646,   69,   69, 1643, 1650,
+       69,   69,   69, 1647,   69, 1651, 1654, 1649,   69, 1652,
+       69, 1655,   69, 1656,   69, 1660,   69, 1657,   69, 1664,
+       69, 1662, 1659, 1658,   69, 1653,   69, 1666,   69, 1661,
+       69,   69, 1669,   69,   69,   69, 1663,   69, 1670,   69,
+
+       69,   69,   69,   69, 1671,   69, 1668, 1675, 1674, 1667,
+     1680, 1665,   69, 1672, 1677,   69, 1679,   69, 1673, 1681,
+       69,   69, 1678,   69, 1684,   69,   69, 1676, 1687,   69,
+     1688,   69, 1682,   69,   69,   69, 1692,   69,   69, 1685,
+       69,   69,   69,   69, 1683, 1695, 1690,   69, 1686,   69,
+     1693, 1698, 1689,   69, 1696, 1691,   69, 1846, 1699, 1700,
+     1694, 1705, 1697, 1701,   69, 1702,   69, 1846,   69,   69,
+     1707,   69, 1703, 1704, 1706, 1708,   69, 1709,   69,   69,
+     1711,   69,   69, 1712, 1710, 1713,   69,   69,   69, 1716,
+       69,   69,   69, 1719,   69,   69, 1717, 1715,   69,   69,
+
+     1718, 1714,   69, 1720, 1721,   69,   69, 1722,   69,   69,
+     1723,   69,   69, 1731,   69,   69, 1729, 1732,   69, 1733,
+     1734,   69, 1725, 1724,   69, 1726, 1727,   69, 1735,   69,
+     1728,   69, 1730, 1736,   69, 1738,   69, 1741,   69, 1742,
+       69, 1737,   69,   69, 1739,   69,   69, 1743,   69, 1740,
+       69,   69, 1846, 1747,   69, 1748, 1750,   69, 1751,   69,
+     1745, 1752,   69, 1753,   69,   69, 1754, 1746, 1744, 1757,
+     1749,   69, 1755,   69,   69,   69, 1756,   69,   69, 1758,
+     1759,   69,   69,   69,   69,   69, 1763,   69,   69,   69,
+       69, 1772,   69,   69, 1762, 1765, 1760,   69, 1766, 1761,
+
+       69, 1774,   69, 1764, 1769,   69, 1767, 1768, 1771, 1773,
+     1775,   69,   69, 1779,   69, 1770, 1776,   69,   69,   69,
+     1783, 1784, 1777,   69,   69,   69,   69, 1778, 1780,   69,
+       69,   69, 1781,   69,   69,   69,   69, 1785, 1782,   69,
+       69, 1793, 1786, 1787, 1788, 1794, 1790, 1791,   69, 1796,
+     1789,   69,   69,   69, 1792,   69, 1797, 1798, 1795, 1801,
+     1799, 1802,   69,   69,   69,   69,   69,   69, 1806,   69,
+     1803,   69, 1800,   69,   69,   69, 1809,   69,   69, 1813,
+       69,   69, 1808,   69, 1804, 1805, 1807, 1846, 1814, 1846,
+     1812,   69, 1816, 1810, 1811,   69, 1817,   69,   69, 1815,
+
+     1820,   69, 1818, 1821,   69, 1819,   69,   69, 1822,   69,
+       69,   69,   69, 1823, 1825,   69, 1827, 1828,   69,   69,
+     1831,   69,   69,   69, 1834,   69, 1824, 1835,   69, 1826,
+     1837,   69, 1836,   69, 1829, 1838,   69, 1830,   69,   69,
+     1832, 1833,   69,   69, 1840, 1839, 1846, 1841, 1844,   69,
+     1845,   69, 1842, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+     1846, 1846, 1843,   41,   41,   41,   41,   41,   41,   41,
+       46,   46,   46,   46,   46,   46,   46,   51,   51,   51,
+       51,   51,   51,   51,   57,   57,   57,   57,   57,   57,
+       57,   62,   62,   62,   62,   62,   62,   62,   72,   72,
+
+     1846,   72,   72,   72,   72,  127,  127, 1846, 1846, 1846,
+      127,  127,  129,  129, 1846, 1846,  129, 1846,  129,  131,
+     1846, 1846, 1846, 1846, 1846,  131,  134,  134, 1846, 1846,
+     1846,  134,  134,  136, 1846, 1846, 1846, 1846, 1846,  136,
+      138,  138, 1846,  138,  138,  138,  138,   73,   73, 1846,
+       73,   73,   73,   73,   13, 1846, 1846, 1846, 1846, 1846,
+     1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+     1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+     1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+     1846, 1846, 1846, 1846
+
     } ;
 
-static yyconst flex_int16_t yy_chk[3651] =
+static yyconst flex_int16_t yy_chk[3695] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1457,10 +1469,10 @@ static yyconst flex_int16_t yy_chk[3651] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    3,
         3,    3,    4,    4,    4,   50,    5,    5,   50,    3,
         5,   15,    4,    6,    6,   15,    5,    6,    9,    9,
-        9,  157,   33,    6,    7,    7,    7,    7,    9,    7,
+        9,  158,   33,    6,    7,    7,    7,    7,    9,    7,
        10,   10,   10,   45,   45,    7,    8,    8,    8,    8,
-       10,    8,   21,   33,  157,   21,   21,    8,   11,   11,
-       11,   11,   11,   11, 1828,   20,   29,   20,   20,   11,
+       10,    8,   21,   33,  158,   21,   21,    8,   11,   11,
+       11,   11,   11,   11, 1852,   20,   29,   20,   20,   11,
 
        20,   29,   24,   21,   25,   20,   24,   28,   11,   12,
        12,   12,   12,   12,   12,   75,   22,   22,   75,   25,
@@ -1469,389 +1481,395 @@ static yyconst flex_int16_t yy_chk[3651] =
        19,   19,   23,   27,   61,   61,   27,   23,   35,   31,
        31,   23,   39,   27,   23,   27,   23,   23,   31,   83,
        32,   32,   36,   36,   31,   32,   39,   36,   31,   37,
-      680,   39,   38,   38,   37,   38,   79,   36,   40,   40,
+      686,   39,   38,   38,   37,   38,   79,   36,   40,   40,
        36,   32,   34,   40,   37,  111,  111,   34,   37,   37,
        38,   34,   77,   56,   79,   56,   56,   34,   56,   64,
 
        34,   64,   64,   66,   64,   66,   66,   34,   66,   67,
        64,   69,   77,   69,   69,   76,   69,   78,   80,   76,
        78,   69,   82,   67,   72,   81,   72,   72,   84,   72,
-       86,   81,   80,   78,   72,   72,   85,   81,   87,   88,
-       82,   85,   89,   91,   86,   90,   94,   84,   91,   90,
-       92,   94,   95,   93,   85,   98,   93,   88,   87,   93,
-       89,   96,   97,   99,   92,   97,   96,  102,  101,   97,
-      100,   95,   93,   93,  100,  101,  103,   99,  104,   98,
-      102,  105,  106,  103,  107,  108,   96,  109,  107,  110,
-      112,  104,  109,  113,  115,  118,  109,  114,  116,  117,
-
-      106,  105,  120,  108,  117,  121,  113,  118,  122,  110,
-      112,  136,  114,  115,  119,  119,  116,  123,  124,  123,
-      120,  121,  125,  124,  126,  128,  128,  130,  141,  122,
-      130,  135,  135,  141,  125,  119,  132,  145,  132,  132,
-      123,  132,  126,  137,  143,  137,  137,  138,  137,  138,
-      138,  140,  138,  144,  140,  142,  145,  146,  138,  143,
-      142,  144,  147,  149,  148,  150,  151,  155,  149,  149,
-      150,  151,  146,  148,  152,  156,  152,  154,  154,  158,
-      156,  160,  147,  158,  159,  161,  155,  162,  164,  159,
-      163,  168,  167,  164,  134,  160,  152,  153,  165,  162,
-
-      161,  153,  162,  165,  166,  166,  153,  168,  163,  169,
-      166,  153,  167,  173,  169,  170,  170,  153,  153,  174,
-      171,  172,  173,  175,  166,  171,  172,  176,  175,  177,
-      178,  171,  176,  180,  177,  178,  179,  182,  181,  183,
-      174,  184,  185,  179,  181,  183,  180,  186,  187,  188,
-      185,  189,  191,  187,  190,  194,  193,  182,  192,  190,
-      186,  193,  196,  184,  188,  195,  198,  195,  197,  196,
-      199,  189,  204,  197,  191,  194,  192,  192,  200,  200,
-      205,  201,  199,  202,  204,  198,  201,  203,  202,  203,
-      206,  207,  208,  210,  211,  209,  207,  208,  206,  205,
-
-      209,  212,  213,  214,  201,  302,  203,  302,  210,  220,
-      213,  215,  211,  133,  215,  212,  216,  216,  217,  218,
-      218,  217,  219,  219,  221,  220,  222,  223,  214,  222,
-      225,  223,  224,  226,  230,  225,  227,  227,  228,  221,
-      229,  224,  231,  228,  232,  229,  233,  226,  234,  234,
-      235,  236,  237,  235,  230,  238,  237,  239,  240,  233,
-      231,  241,  243,  244,  242,  232,  241,  242,  245,  236,
-      240,  246,  247,  238,  243,  239,  248,  245,  252,  249,
-      244,  249,  249,  244,  253,  247,  250,  250,  248,  262,
-      251,  254,  246,  251,  255,  252,  256,  256,  252,  253,
-
-      254,  257,  259,  255,  258,  258,  257,  260,  261,  262,
-      263,  264,  260,  265,  267,  263,  266,  259,  265,  266,
-      261,  266,  268,  269,  270,  271,  272,  274,  267,  270,
-      271,  264,  269,  273,  275,  277,  279,  276,  268,  272,
-      276,  268,  274,  268,  281,  280,  283,  272,  275,  277,
-      284,  279,  286,  273,  280,  282,  276,  278,  285,  278,
-      278,  283,  287,  285,  288,  281,  290,  292,  131,  278,
-      284,  278,  278,  278,  282,  286,  278,  293,  289,  288,
-      291,  290,  287,  289,  294,  291,  295,  292,  296,  294,
-      298,  293,  299,  296,  297,  297,  300,  297,  304,  301,
-
-      303,  305,  295,  309,  303,  306,  308,  309,  299,  307,
-      298,  308,  300,  301,  306,  305,  304,  310,  307,  311,
-      312,  314,  313,  318,  311,  314,  310,  306,  313,  315,
-      316,  316,  317,  321,  315,  320,  318,  317,  319,  319,
-      320,  312,  322,  323,  324,  325,  325,  326,  324,  327,
-      331,  322,  326,  332,  321,  323,  328,  328,  330,  330,
-      333,  332,  334,  335,  337,  338,  339,  340,  341,  333,
-      327,  331,  340,  342,  345,  335,  344,  341,  342,  343,
-      339,  344,  334,  346,  337,  338,  347,  343,  349,  348,
-      350,  354,  345,  348,  351,  350,  352,  356,  358,  355,
-
-      359,  358,  361,  349,  357,  346,  363,  347,  365,  357,
-      351,  354,  367,  356,  357,  352,  353,  353,  355,  364,
-      359,  363,  353,  365,  353,  360,  360,  361,  362,  362,
-      366,  364,  353,  368,  367,  369,  370,  371,  368,  372,
-      373,  374,  353,  372,  369,  373,  375,  376,  377,  366,
-      378,  378,  371,  374,  379,  370,  377,  380,  381,  383,
-      376,  385,  380,  396,  375,  382,  379,  396,  382,  384,
-      381,  386,  384,  387,  383,  386,  386,  385,  388,  388,
-      385,  389,  389,  390,  391,  391,  387,  393,  390,  392,
-      392,  394,  393,  395,  397,  400,  398,  399,  395,  397,
-
-      398,  401,  399,  402,  403,  129,  401,  405,  402,  406,
-      406,  404,  394,  407,  404,  400,  408,  410,  403,  404,
-      409,  408,  410,  404,  411,  405,  412,  415,  413,  412,
-      414,  407,  413,  411,  409,  414,  416,  417,  418,  419,
-      415,  416,  420,  421,  419,  424,  421,  425,  420,  422,
-      418,  423,  422,  417,  413,  426,  423,  427,  431,  127,
-      426,  425,  427,  424,  428,  429,  432,  428,  430,  433,
-      429,  431,  430,  430,  433,  434,  440,  435,  436,  432,
-      435,  438,  436,  436,  434,  437,  439,  437,  439,  441,
-      442,  443,  444,  445,  440,  435,  444,  446,  447,  448,
-
-      438,  449,  445,  450,  451,  457,  449,  441,  455,  442,
-      454,  443,  446,  455,  448,  453,  447,  452,  452,  453,
-      456,  454,  450,  451,  457,  458,  459,  460,  461,  462,
-      464,  466,  460,  459,  462,  461,  456,  463,  458,  465,
-      466,  467,  463,  471,  468,  476,  465,  469,  464,  468,
-      469,  473,  470,  472,  472,  467,  470,  477,  475,  478,
-      473,  477,  472,  475,  471,  476,  479,  480,  481,  482,
-      485,  478,  488,  491,  492,  480,  498,  493,  494,  497,
-      492,  493,  491,  494,  479,  485,  481,  496,  499,  488,
-      561,  499,  496,  503,  482,  483,  501,  497,  500,  500,
-
-      483,  498,  561,  501,  483,  502,  502,  483,  503,  504,
-      504,  505,  506,  509,  483,  506,  505,  483,  495,  495,
-      495,  507,  495,  510,  515,  495,  507,  508,  511,  508,
-      495,  512,  509,  513,  513,  514,  495,  495,  521,  512,
-      516,  518,  515,  510,  521,  516,  518,  511,  517,  517,
-      514,  519,  520,  522,  523,  520,  519,  524,  525,  526,
-      527,  522,  523,  525,  528,  528,  526,  530,  529,  531,
-      536,  533,  530,  534,  535,  524,  529,  535,  538,  527,
-      533,  541,  534,  543,  536,  537,  537,  539,  531,  542,
-      539,  544,  545,  538,  542,  546,  547,  548,  539,  549,
-
-      550,  548,  541,  551,  543,  547,  552,  553,  554,  554,
-      555,  544,  551,  553,  545,  546,  557,  549,  556,  550,
-      552,  557,  558,  560,  559,  563,  562,  558,  559,  567,
-      555,  562,  556,  564,  564,  565,  566,  568,  569,  566,
-      565,  570,  560,  569,  571,  571,  563,  567,  572,  572,
-      568,  573,  574,  575,  576,  577,  574,  578,  580,  580,
-      581,  570,  583,   68,  581,  582,  573,  586,  584,  577,
-      585,  587,  575,   62,  598,  585,  589,  578,  576,  579,
-      582,  586,  579,  584,  579,  587,  598,  583,  579,  588,
-      579,  589,  590,  588,  591,  579,  592,  590,  593,  591,
-
-      579,  594,  595,   57,  596,  597,  597,  590,  595,  596,
-      592,  597,  599,  597,  600,  594,  604,  599,  601,  593,
-      602,  602,  603,  605,  604,  606,  611,  603,  600,  611,
-      601,  597,  607,  607,  608,  610,  612,  605,  608,  613,
-      610,  614,  615,  616,  606,  617,  614,  615,  618,  619,
-      620,  621,  613,  622,  617,  612,  621,  623,  619,  624,
-      625,  627,  616,  628,  618,  625,  666,  629,  624,  620,
-      630,  623,  631,  622,  632,  630,  633,  631,  666,  632,
-      627,  628,  629,  634,  634,  633,  635,  636,  638,  641,
-      642,  635,  638,  638,  639,  639,  640,  643,  639,  640,
-
-      636,  644,  645,  641,  646,  645,  647,  650,  648,  649,
-      642,  647,  643,  648,  651,  649,  652,  652,  653,  654,
-      651,  644,  656,  650,  657,  646,  655,  653,  658,  655,
-      660,  659,  663,  661,  665,  660,  664,  654,  661,  664,
-      656,  667,  668,  657,  659,  665,  667,  668,  658,  669,
-      663,  670,  670,  671,  672,  673,  674,  675,  677,  678,
-      674,  676,  681,  682,  669,  683,  684,  673,  672,  685,
-      676,  684,  671,  692,  685,  675,  681,  677,  682,  688,
-      689,  686,  687,  690,  678,  683,  686,  687,  690,  691,
-      693,  694,  692,  688,  689,  695,  698,  693,  696,  696,
-
-      697,  699,  698,  703,  691,  701,  694,  700,  700,  702,
-      701,  705,  704,  706,  695,  704,  702,  703,  697,  707,
-      708,  699,  706,  709,  707,  710,  711,  712,  709,  705,
-      711,  713,  714,  715,  717,  718,  712,  716,  726,  708,
-      715,  719,  720,  721,  710,  722,  713,  714,  720,  716,
-      725,  723,  726,  717,  727,  725,  718,  728,  721,  719,
-      723,  729,  727,  730,  731,  722,  729,  732,  731,  731,
-      733,  734,  734,  736,  735,  730,  737,  728,  738,  738,
-      739,  737,  736,  740,  733,  739,  732,  735,  740,  741,
-      741,  742,  743,  744,  745,   52,  746,  743,  747,  748,
-
-      742,  746,  749,  747,  748,  752,  749,  744,  751,  751,
-      754,  755,  745,  750,  754,  757,  752,  756,  764,  760,
-      759,  790,  750,  763,  757,  766,  755,  750,  762,  750,
-      790,  750,  758,  750,  759,  756,  758,  758,  760,  761,
-      766,  763,  762,  764,  765,  765,  770,  761,  767,  767,
-      769,  770,  771,  769,  772,  772,  773,  774,  774,  775,
-      776,  776,  777,  778,  775,  779,  782,  780,  778,  781,
-      781,  771,  780,  779,  783,  794,  773,  791,  784,  792,
-      783,  786,  777,  787,  782,  784,  786,  788,  787,  789,
-      792,  795,  788,  797,  789,  794,  791,  793,  793,  796,
-
-      798,  800,  802,  799,  796,  801,  801,  797,  803,  804,
-       51,  805,  807,  797,  795,  799,  805,  806,  806,  800,
-      798,  808,  802,  811,  810,  814,  808,  804,  810,  810,
-      812,  818,  811,  803,  813,  807,  813,  815,  812,  814,
-      816,  817,  815,  819,  816,  820,  821,  822,  823,  824,
-      818,  821,  817,  824,  825,  826,  827,  830,  828,  831,
-      829,  833,  834,  820,  831,  822,  833,  836,  823,  819,
-      827,  832,  825,  828,  826,  829,  830,  835,  832,  837,
-      834,  838,  836,  839,  840,  837,  835,  841,  839,  840,
-      842,  842,  841,  843,  843,  845,  845,  846,  847,  848,
-
-      849,  846,  838,  850,  848,  851,  853,  852,  854,  851,
-      851,  852,  852,  855,  849,  856,  847,  857,  859,  858,
-      864,  860,  850,  857,  858,  853,  861,  854,  862,  863,
-      868,  865,  866,  866,  856,  867,  876,  859,  867,  855,
-      860,  864,  868,  863,  869,  861,  865,  862,  870,  869,
-      871,  872,  870,  873,  883,  874,  876,  874,  877,  877,
-      872,  874,  878,  871,  879,  880,  873,  878,  879,  896,
-      881,  885,  883,   46,  874,  881,  885,  886,  886,  887,
-      889,  889,  891,  891,  887,  880,  893,  894,  894,  893,
-      895,  898,  897,  899,  896,  901,  898,  900,  900,  902,
-
-      902,  903,  904,  905,  909,  895,  897,  905,  899,  906,
-      910,  907,  913,  904,  912,  901,  907,  911,  911,  912,
-      914,  915,  909,  903,  910,  916,  918,  917,  906,  917,
-      915,  918,  913,  919,  920,  923,  921,  927,  919,  929,
-      914,  921,  924,  924,  925,  916,  928,  928,  930,  923,
-      925,  929,  931,  936,  920,  931,  934,  932,  931,  933,
-      937,  927,  932,  937,  933,  934,  935,  938,  930,  940,
-      931,  935,  938,  939,  939,  941,  942,  943,  936,  944,
-      945,  946,  943,  949,  944,  948,  946,  940,  947,  947,
-      948,  950,  951,  952,  941,  954,  942,  953,  956,  955,
-
-      957,  949,  958,  945,  955,  959,  963,  952,  954,  953,
-      962,  950,  951,  961,  961,  962,  958,  964,  956,  965,
-      957,  963,  966,  968,  964,  973,  959,  974,  965,  970,
-      970,  965,  971,  975,  972,  971,  974,  976,  966,  972,
-      978,  973,  977,  968,  980,  978,  976,  979,  979,  976,
-      981,  977,  975,  982,  983,  985,  984,  986,  987,  988,
-      988,  989,   41,  981,  980,  990,  994,  985,  983,  997,
-      991,  982,  984,   14,  990,  991,  987,  989,  992,  992,
-      993,  996,  986,  998,  994,  999,  996,  997,  998,  993,
-     1000,  999,  993,  992, 1001, 1002, 1006, 1003, 1007, 1001,
-
-     1003, 1008, 1009,   13, 1006, 1012, 1003, 1010, 1002, 1011,
-     1000, 1007, 1010, 1014, 1015, 1016, 1020, 1017, 1015, 1008,
-     1016, 1009, 1017, 1012, 1018, 1011, 1019, 1021, 1025, 1018,
-     1022, 1022, 1023, 1014, 1024, 1019, 1026, 1027, 1028, 1020,
-     1025, 1024, 1021, 1028, 1030, 1029, 1023, 1031, 1026, 1032,
-     1032, 1033, 1036, 1031, 1033, 1038, 1027, 1029, 1034, 1034,
-     1039, 1036, 1030, 1037, 1037, 1039, 1040, 1038, 1041, 1042,
-     1044, 1043, 1046, 1045, 1049, 1040, 1043, 1047, 1047, 1044,
-     1041, 1048, 1050, 1051, 1042, 1053, 1048, 1046, 1052, 1052,
-     1054, 1054, 1044, 1045, 1056, 1049, 1055, 1055, 1056, 1057,
-
-     1061, 1050, 1060, 1051, 1057, 1053, 1058, 1060, 1062, 1058,
-     1063, 1064, 1064, 1062, 1065, 1065, 1066, 1067, 1061, 1068,
-     1069, 1066, 1070, 1071, 1073, 1074, 1076, 1070, 1078, 1067,
-     1067, 1067, 1075, 1075, 1103, 1063, 1067, 1103, 1073, 1068,
-     1069, 1077, 1077, 1071, 1079, 1079, 1074, 1081, 1078, 1082,
-     1082, 1083, 1076, 1084, 1085, 1086, 1081, 1087, 1087, 1088,
-     1084, 1089, 1091, 1085, 1092, 1094, 1083, 1091, 1093, 1092,
-     1095, 1096, 1094, 1097, 1097, 1095, 1096, 1089, 1098, 1100,
-     1099, 1086, 1101, 1098, 1102, 1088, 1104, 1105, 1093, 1099,
-     1106, 1106, 1107, 1108, 1109, 1115, 1102, 1110, 1171, 1100,
-
-     1171, 1101, 1111, 1110, 1104, 1112, 1112, 1107, 1113, 1109,
-     1121, 1111, 1108, 1105, 1114, 1114, 1115, 1116, 1117, 1113,
-     1118, 1118, 1119, 1117, 1113, 1120, 1119, 1119, 1122, 1123,
-     1120, 1116, 1124, 1125, 1123, 1126, 1121, 1125, 1127, 1129,
-     1122, 1128, 1131, 1130, 1124, 1137, 1128, 1126, 1130, 1133,
-     1134, 1134, 1133, 1138, 1131, 1135, 1135, 1136, 1136, 1138,
-     1140, 1129, 1139, 1127, 1141, 1137, 1140, 1139, 1145, 1143,
-     1147, 1148, 1148, 1141, 1143, 1149, 1150, 1153, 1151, 1152,
-     1145, 1153, 1147, 1154, 1155, 1150, 1156, 1159, 1154, 1155,
-     1158, 1158, 1160, 1166, 1161, 1149, 1151, 1167, 1152, 1168,
-
-     1156, 1160, 1158, 1161, 1168, 1159, 1163, 1163, 1166, 1169,
-     1174, 1167, 1170, 1170, 1172, 1172, 1175, 1174, 1176, 1176,
-     1177, 1178, 1179, 1180, 1182, 1181, 1169, 1184, 1183, 1177,
-     1188, 1185, 1188, 1187, 1179, 1180, 1175, 1181, 1187, 1189,
-     1191, 1190, 1178, 1183, 1193, 1194, 1194, 1184, 1190, 1191,
-     1182, 1185, 1195, 1197, 1196, 1197, 1198, 1189, 1193, 1196,
-     1199, 1198, 1200, 1201, 1202, 1199, 1203, 1205, 1204, 1202,
-     1207, 1203, 1208, 1209, 1209, 1205, 1210, 1210, 1195, 1211,
-     1200, 1204, 1212, 1201, 1216, 1213, 1208, 1214, 1217, 1207,
-     1213, 1215, 1214, 1215, 1211, 1219, 1216, 1217, 1220, 1218,
-
-     1217, 1218, 1212, 1222, 1219, 1225, 1223, 1226, 1222, 1227,
-     1220, 1223, 1233, 1229, 1231, 1232, 1238, 1234, 1225, 1229,
-     1231, 1235, 1235, 1236, 1244, 1227, 1234, 1226, 1237, 1237,
-     1232, 1240, 1236, 1241, 1239, 1238, 1240, 1233, 1239, 1242,
-     1242, 1243, 1247, 1247, 1244, 1248, 1241, 1249, 1249, 1243,
-     1250, 1250, 1251, 1252, 1248, 1253, 1254, 1254, 1256, 1258,
-     1253, 1257, 1259, 1260, 1251, 1262, 1257, 1261, 1260, 1263,
-     1263, 1252, 1264, 1265, 1266, 1267, 1264, 1259, 1268, 1266,
-     1270, 1262, 1258, 1256, 1271, 1261, 1272, 1274, 1265, 1273,
-     1275, 1277, 1277, 1278, 1279, 1280, 1278, 1268, 1301, 1274,
-
-     1281, 1267,    0, 1270, 1301, 1272, 1285, 1279, 1271, 1280,
-     1273, 1275, 1286, 1281, 1282, 1282, 1283, 1283, 1284, 1284,
-     1290, 1285, 1287, 1287, 1294, 1286, 1288, 1288, 1289, 1289,
-     1291, 1291, 1292, 1292, 1293, 1293, 1296, 1297, 1297, 1290,
-     1298, 1296, 1300, 1294, 1299, 1299, 1302, 1303, 1303, 1302,
-     1304, 1304, 1305, 1306, 1307, 1308, 1308, 1310, 1311, 1298,
-     1300, 1312, 1313, 1303, 1314, 1314, 1313, 1315, 1306, 1316,
-     1316, 1305, 1317, 1307, 1318, 1318, 1312, 1310, 1319, 1320,
-     1321, 1311, 1322, 1323, 1324, 1321, 1315, 1319, 1325, 1326,
-     1327, 1320, 1328, 1325, 1329, 1330, 1323, 1333, 1317, 1327,
-
-     1330, 1328, 1331, 1335, 1326, 1324, 1331, 1322, 1329, 1336,
-     1336, 1337, 1335, 1338, 1338, 1340, 1337, 1333, 1341, 1343,
-     1345, 1346, 1338, 1345, 1347, 1351, 1346, 1341, 1348, 1348,
-     1340, 1343, 1350, 1350, 1352, 1352, 1353, 1354, 1355, 1351,
-     1356, 1356, 1358, 1362, 1347, 1363, 1358, 1359, 1353, 1361,
-     1359, 1354, 1360, 1360, 1361, 1365, 1364, 1355, 1368, 1363,
-     1364, 1366, 1367, 1362, 1368, 1370, 1366, 1367, 1371, 1372,
-     1373, 1377, 1393, 1371, 1372, 1365, 1394, 1374, 1373, 1374,
-        0, 1370, 1378, 1378, 1386, 1377, 1382, 1382, 1393, 1386,
-     1387, 1387, 1389, 1389, 1391, 1392, 1392, 1395, 1394, 1391,
-
-     1397, 1398, 1395, 1399, 1399, 1401, 1402, 1403, 1404, 1406,
-     1406, 1402, 1408, 1398, 1401, 1410, 1409, 1408, 1409, 1397,
-     1416, 1411, 1415, 1404, 1417, 1403, 1411, 1412, 1412, 1410,
-     1413, 1413, 1414, 1414, 1415, 1418, 1417, 1419, 1416, 1420,
-     1421, 1422, 1422, 1423, 1420, 1424, 1425, 1418, 1426, 1419,
-     1427, 1428, 1423, 1430, 1429, 1433, 1433, 1431, 1432, 1437,
-     1421, 1426, 1431, 1432, 1438, 1428, 1425, 1434, 1434, 1439,
-     1440, 1424, 1429, 1442, 1427, 1430, 1441, 1443, 1447, 1437,
-     1444, 1444, 1438, 1446, 1446, 1441, 1449, 1447, 1450, 1448,
-     1440, 1439, 1451, 1442, 1456, 1443, 1448, 1452, 1453, 1454,
-
-     1454, 1449, 1455, 1457, 1458, 1460, 1450, 1455, 1462, 1459,
-     1451, 1465, 1456, 1452, 1459, 1468, 1466, 1453, 1457, 1466,
-     1467, 1467, 1469, 1458, 1473, 1460, 1479, 1462, 1470, 1470,
-     1468, 1465, 1471, 1474, 1475, 1475, 1471, 1474, 1476, 1473,
-     1469, 1478, 1478, 1480, 1480, 1479, 1481, 1481, 1485, 1485,
-     1486, 1476, 1487, 1488, 1489, 1490, 1491, 1494, 1488, 1489,
-     1493, 1487, 1494, 1495, 1491, 1496, 1497, 1497, 1495, 1498,
-     1498, 1499, 1486, 1500, 1490, 1493, 1499, 1508, 1500, 1509,
-     1496, 1501, 1501, 1502, 1502, 1505, 1508, 1506, 1507, 1510,
-     1505, 1506, 1512, 1507, 1509, 1511, 1514, 1510, 1515, 1514,
-
-     1511, 1516, 1517, 1518, 1512, 1519, 1519, 1522, 1520, 1523,
-        0, 1517, 1518, 1524, 1516, 1526, 1515, 1520, 1525, 1525,
-     1529, 1527, 1528, 1528, 1532, 1533, 1522, 1536, 1529, 1523,
-     1527, 1530, 1524, 1532, 1526, 1535, 1530, 1537, 1533, 1535,
-     1544, 1536, 1539, 1539, 1541, 1541, 1545, 1545, 1546, 1547,
-     1547, 1546, 1537, 1548, 1548, 1549, 1549, 1550, 1551, 1552,
-     1544, 1553, 1553, 1554, 1552, 1557, 1561, 1554, 1558, 1562,
-     1563, 1557, 1551, 1558, 1562, 1550, 1564, 1565, 1566, 1566,
-     1567, 1568, 1569, 1561, 1561, 1570, 1570, 1572, 1563, 1568,
-     1573, 1565, 1571, 1571, 1574, 1573, 1564, 1575, 1576, 1567,
-
-     1577, 1569, 1578, 1572, 1580, 1580, 1581, 1576, 1583, 1581,
-     1584, 1584, 1585, 1587, 1574, 1586, 1585, 1588, 1588, 1589,
-     1577, 1590, 1578, 1575, 1586, 1592, 1583, 1593, 1587, 1594,
-     1590, 1598, 1589, 1600, 1592, 1602, 1598, 1599, 1599, 1593,
-     1602, 1603, 1600, 1604, 1605, 1609, 1606, 1608, 1607, 1612,
-     1603, 1606, 1608, 1616, 1594, 1610, 1610, 1613, 1614, 1614,
-     1615, 1617, 1616, 1604, 1615, 1605, 1607, 1618, 1612, 1620,
-     1609, 1619, 1613, 1621, 1620, 1622, 1622, 1617, 1623, 1619,
-     1625, 1625, 1626, 1628, 1628, 1629, 1618, 1626, 1630, 1632,
-     1632, 1634, 1633, 1635, 1635, 1636, 1636, 1623, 1637, 1621,
-
-     1638, 1639, 1640, 1640, 1641, 1629, 1633, 1642, 1646, 1643,
-     1644, 1630, 1638, 1634, 1643, 1645, 1641, 1637, 1647, 1647,
-     1645, 1639, 1649, 1649, 1650, 1646, 1646, 1642, 1652, 1644,
-     1653, 1654,    0, 1652, 1655, 1655, 1654, 1656, 1656, 1657,
-     1657, 1658, 1665, 1650, 1653, 1666, 1658, 1660, 1660, 1662,
-     1662, 1664, 1664, 1671, 1666, 1668, 1665, 1667, 1667, 1673,
-     1668, 1671, 1672, 1672, 1673, 1675, 1676, 1677, 1678, 1679,
-     1675, 1680, 1681, 1684, 1685, 1685,    0, 1681, 1676, 1686,
-     1686, 1691, 1691, 1696, 1678, 1677, 1679, 1679, 1695, 1695,
-     1687, 1693, 1680, 1684, 1687, 1693, 1699, 1696, 1698, 1698,
-
-     1701, 1702, 1702, 1703, 1703, 1704, 1705, 1706, 1707, 1708,
-     1709, 1699, 1723, 1707, 1708, 1710, 1710, 1723, 1701, 1713,
-     1713, 1705, 1715, 1715, 1717, 1717, 1719, 1724, 1706, 1709,
-     1704, 1720, 1720, 1726, 1725, 1727, 1735, 1734, 1719, 1725,
-     1728, 1724, 1733, 1736, 1738, 1737, 1733, 1739, 1745, 1735,
-     1740,    0, 1726, 1727, 1741, 1741, 1728, 1734, 1742, 1743,
-     1738, 1744, 1736, 1737, 1743, 1740, 1744, 1742, 1746, 1747,
-     1748, 1750, 1739, 1745, 1747, 1751, 1752, 1753, 1754, 1756,
-     1755, 1752, 1753, 1746, 1748, 1757, 1750, 1758, 1759, 1760,
-     1761, 1762, 1754, 1755, 1751, 1763, 1762, 1764, 1756, 1757,
-
-     1763, 1759, 1760, 1765, 1765, 1766, 1758, 1767, 1768, 1761,
-     1766, 1769, 1767, 1768, 1770, 1772, 1764, 1771, 1771, 1770,
-     1773, 1774, 1772, 1775, 1776, 1777, 1779, 1780, 1775, 1781,
-     1769, 1779, 1782, 1783, 1783, 1785, 1784, 1788, 1777, 1773,
-     1774, 1784, 1788, 1776, 1790, 1782, 1780, 1794, 1781, 1786,
-     1786, 1787, 1787, 1789, 1785, 1791, 1791, 1792, 1793, 1796,
-     1789, 1800, 1795, 1790, 1792, 1793, 1794, 1795, 1798, 1799,
-     1801, 1802, 1802, 1798, 1799, 1803, 1804,    0, 1796, 1807,
-     1800, 1805, 1805, 1806, 1806, 1810, 1807, 1808, 1808, 1801,
-     1809, 1809, 1810, 1812, 1803, 1804, 1815, 1816, 1812, 1817,
-
-        0, 1815, 1818, 1818, 1819, 1819,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0, 1816,    0, 1817, 1823,
-     1823, 1823, 1823, 1823, 1823, 1823, 1824, 1824, 1824, 1824,
-     1824, 1824, 1824, 1825, 1825, 1825, 1825, 1825, 1825, 1825,
-     1826, 1826, 1826, 1826, 1826, 1826, 1826, 1827, 1827, 1827,
-     1827, 1827, 1827, 1827, 1829, 1829,    0, 1829, 1829, 1829,
-     1829, 1830, 1830,    0,    0,    0, 1830, 1830, 1831, 1831,
-        0,    0, 1831,    0, 1831, 1832,    0,    0,    0,    0,
-        0, 1832, 1833, 1833,    0,    0,    0, 1833, 1833, 1834,
-        0,    0,    0,    0,    0, 1834, 1835, 1835,    0, 1835,
-
-     1835, 1835, 1835, 1836, 1836,    0, 1836, 1836, 1836, 1836,
-     1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
-     1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
-     1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
-     1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822
+       86,   81,   80,   78,   72,   72,   88,   81,   85,   87,
+       82,   82,   89,   85,   86,   90,   91,   84,   92,   90,
+       95,   91,   93,   98,   88,   93,   85,  136,   93,   87,
+       89,   94,   92,   96,   99,  105,   94,   97,   96,   95,
+       97,   93,   93,  101,   97,  100,  102,   98,   99,  100,
+      101,  104,  106,  103,  108,  105,  110,  107,   96,  102,
+      103,  107,  109,  112,  104,  113,  114,  109,  115,  117,
+
+      106,  109,  108,  116,  117,  120,  110,  118,  113,  119,
+      119,  114,  121,  112,  122,  124,  123,  115,  123,  118,
+      124,  116,  125,  120,  126,  128,  128,  159,  121,  130,
+      119,  159,  130,  134,  125,  122,  135,  135,  132,  123,
+      132,  132,  126,  132,  137,  143,  137,  137,  138,  137,
+      138,  138,  140,  138,  145,  140,  141,  142,  144,  138,
+      143,  141,  142,  146,  147,  148,  144,  150,  151,  151,
+      149,  156,  150,  145,  148,  149,  149,  152,  146,  153,
+      161,  153,  152,  157,  147,  155,  155,  160,  157,  162,
+      156,  164,  160,  163,  161,  165,  213,  168,  166,  169,
+
+      165,  153,  154,  166,  162,  163,  154,  175,  163,  164,
+      213,  154,  167,  167,  170,  169,  154,  168,  167,  170,
+      171,  171,  154,  154,  172,  173,  176,  174,  175,  172,
+      173,  176,  167,  177,  178,  172,  174,  179,  177,  178,
+      180,  181,  179,  182,  183,  184,  185,  180,  186,  182,
+      187,  184,  188,  190,  181,  189,  186,  188,  192,  193,
+      191,  194,  195,  187,  183,  191,  194,  196,  185,  196,
+      189,  198,  197,  190,  199,  200,  198,  193,  193,  197,
+      192,  202,  195,  201,  201,  203,  202,  200,  205,  204,
+      203,  204,  206,  199,  207,  212,  208,  211,  209,  214,
+
+      205,  208,  207,  209,  202,  210,  215,  214,  204,  133,
+      210,  206,  211,  212,  216,  223,  217,  216,  217,  218,
+      218,  219,  220,  220,  219,  221,  221,  222,  228,  224,
+      223,  215,  224,  225,  227,  226,  232,  225,  234,  227,
+      229,  229,  228,  222,  226,  230,  231,  233,  235,  238,
+      230,  231,  236,  236,  237,  240,  232,  237,  239,  234,
+      241,  235,  239,  242,  243,  233,  246,  238,  244,  243,
+      245,  244,  247,  240,  248,  242,  249,  253,  241,  250,
+      253,  247,  245,  246,  254,  251,  246,  251,  251,  249,
+      255,  250,  252,  252,  256,  248,  261,  257,  258,  258,
+
+      263,  254,  259,  256,  254,  255,  257,  259,  260,  260,
+      262,  261,  263,  264,  265,  262,  266,  267,  268,  265,
+      269,  268,  267,  268,  270,  272,  271,  273,  274,  276,
+      272,  275,  273,  264,  269,  271,  266,  284,  277,  278,
+      270,  274,  278,  270,  276,  270,  279,  281,  282,  274,
+      283,  275,  277,  285,  286,  288,  284,  282,  278,  289,
+      279,  280,  281,  280,  280,  287,  290,  291,  285,  292,
+      287,  283,  291,  280,  286,  280,  280,  280,  288,  289,
+      280,  290,  293,  294,  292,  295,  296,  293,  297,  298,
+      299,  300,  300,  297,  300,  299,  301,  295,  302,  303,
+
+      296,  307,  131,  294,  304,  298,  305,  306,  305,  308,
+      315,  306,  309,  310,  302,  303,  301,  313,  304,  307,
+      311,  309,  310,  308,  312,  311,  313,  314,  312,  316,
+      321,  315,  314,  317,  309,  316,  318,  317,  319,  319,
+      320,  318,  324,  321,  323,  320,  322,  322,  325,  323,
+      326,  327,  328,  328,  329,  327,  330,  325,  334,  329,
+      331,  331,  326,  324,  333,  333,  335,  336,  337,  338,
+      340,  341,  342,  343,  335,  344,  336,  330,  343,  334,
+      345,  338,  348,  349,  344,  345,  342,  346,  337,  347,
+      340,  341,  350,  351,  347,  346,  352,  351,  353,  354,
+
+      348,  355,  359,  353,  357,  349,  358,  360,  362,  363,
+      363,  352,  360,  350,  364,  354,  361,  360,  359,  361,
+      355,  356,  356,  366,  357,  358,  368,  356,  362,  356,
+      365,  365,  367,  369,  370,  371,  372,  356,  366,  364,
+      371,  368,  373,  374,  367,  372,  375,  356,  376,  378,
+      375,  377,  369,  376,  380,  379,  370,  382,  374,  381,
+      381,  373,  380,  377,  384,  383,  386,  378,  379,  382,
+      383,  385,  387,  389,  385,  388,  384,  387,  388,  390,
+      391,  386,  398,  390,  390,  392,  392,  393,  393,  389,
+      394,  404,  389,  391,  129,  394,  395,  395,  396,  396,
+
+      397,  399,  401,  398,  400,  397,  399,  401,  400,  402,
+      403,  404,  405,  402,  406,  403,  407,  405,  409,  406,
+      408,  410,  410,  408,  411,  413,  412,  127,  408,  414,
+      407,  412,  408,  418,  414,  415,  409,  416,  418,  413,
+      416,  417,  411,  419,  415,  417,  420,  421,  422,  423,
+      425,  420,  424,  425,  423,  428,  419,  429,  424,  426,
+      422,  427,  426,  421,  430,  431,  427,  417,   68,  430,
+      431,  429,  432,  428,  433,  432,  434,  435,  436,  433,
+      434,  434,  437,  438,  441,  439,  441,  437,  439,  440,
+      435,  436,  438,  440,  440,  442,  443,  444,  443,  445,
+
+      446,  447,  448,  439,  449,  450,  448,  451,  452,  454,
+      455,  453,   62,  449,  442,  444,  453,  445,  457,  446,
+      450,  447,  457,  452,  458,  451,  456,  456,  454,  455,
+      460,  459,  461,  463,  462,  458,  459,  464,  465,  466,
+      463,  468,  464,  467,  466,  465,  460,  462,  467,  469,
+      471,  461,  470,  472,  473,  475,  469,  473,  472,  468,
+      479,  470,  474,  477,  471,  479,  474,  480,  476,  476,
+      481,  482,  477,  483,  481,  484,  475,  476,  485,  486,
+      484,  487,  497,  482,  490,  493,  485,  480,  497,  496,
+      498,  483,  502,  503,  498,  499,  501,  486,  496,  490,
+
+      499,  501,  493,  505,  505,  504,  487,  488,  504,  508,
+      502,  526,  488,  506,  507,  507,  488,  526,  503,  488,
+      506,  509,  509,  510,  508,  513,  488,  513,  510,  488,
+      500,  500,  500,  511,  500,  512,  511,  500,  514,  515,
+      512,  516,  500,  517,  518,  518,  519,  520,  500,  500,
+      521,  517,  522,  522,  529,  521,  527,  514,  523,  515,
+      516,  519,  524,  523,  527,  520,  525,  524,  528,  525,
+      530,  531,  529,  532,  534,  530,  528,  536,  531,  533,
+      533,  535,  534,  541,  538,  539,  535,  540,  542,  542,
+      540,  543,  532,  538,  539,  546,  536,  541,  544,  547,
+
+      548,  544,  549,  550,  547,  552,  543,  551,  553,  544,
+      554,  555,  553,  558,  552,  556,  546,  557,  560,  558,
+      561,  548,  549,  565,  556,  550,  568,  551,  554,   57,
+      555,  557,  559,  559,  561,  562,  563,  566,  560,  564,
+      562,  563,  565,  564,  572,  567,  573,  568,  570,  566,
+      567,  569,  569,  570,  571,  574,  575,  571,  578,  573,
+      574,  580,  572,  576,  576,  577,  577,  579,  581,  582,
+      583,  579,  587,  578,  585,  585,  575,  586,  588,  590,
+      580,  586,  589,  582,  591,  592,  589,  587,  604,  591,
+      583,  593,  581,  584,  590,  595,  584,  594,  584,  592,
+
+      604,  594,  584,  588,  584,  593,  596,  597,  598,  584,
+      595,  596,  597,  599,  584,  600,  606,  601,  821,  602,
+      821,  596,  598,  601,  602,  603,  603,  605,  607,  600,
+      606,  603,  605,  603,  599,  608,  608,  609,  610,  611,
+      607,  612,  609,  613,  613,  614,  610,  616,  618,  614,
+      619,  603,  616,  611,  617,  622,  620,  617,  626,  621,
+      612,  620,  623,  619,  621,  624,  625,  618,  627,  628,
+      629,  623,  633,  627,  622,  625,  630,  626,  631,  634,
+      635,  624,  636,  631,  629,  630,  680,  636,  637,  628,
+      680,  633,  639,  637,  638,  635,  642,  634,  648,  638,
+
+      641,  639,  640,  640,  646,  641,  644,  646,  647,  642,
+      644,  644,  645,  645,  649,  650,  645,  651,  648,  652,
+      651,  653,  647,  654,  655,  656,  653,  657,  654,  649,
+      655,  658,  658,  657,  659,  650,  660,  662,  663,  661,
+      652,  656,  661,  659,  664,  665,  666,  667,  669,  671,
+      670,  666,  667,  670,  660,  662,  672,  663,  665,  675,
+      671,  677,  673,  678,  664,  674,  669,  673,  672,  679,
+      674,  676,  676,  681,  675,  682,  683,  678,  684,  687,
+      677,  679,  688,  690,  682,  689,  694,  691,  690,  692,
+      695,  681,  691,  687,  692,  683,  693,  688,  697,  698,
+
+      694,  693,  696,  684,  695,  689,  700,  696,  699,  701,
+      702,  702,  703,  697,  704,  699,  705,  706,  698,  707,
+      707,  700,  705,  709,  708,  710,  703,  712,  701,  708,
+      709,  711,  704,  713,  711,  714,  715,  706,  716,  710,
+      714,  717,  713,  716,  718,  712,  720,  719,  718,  721,
+      722,  723,  724,  725,  726,  715,  719,  722,  728,  727,
+      717,  720,  729,  723,  721,  727,  730,  735,  737,  733,
+      734,  724,  726,  728,  725,  730,  732,  739,  734,  736,
+      737,  732,  729,  733,  736,  738,  740,  735,  742,  738,
+      738,  741,  741,  743,  744,  752,  739,  745,  745,  744,
+
+      740,  742,  743,  746,  747,  748,  748,  749,  746,  747,
+      750,  751,  753,  752,  754,  750,  749,  753,  755,  754,
+      756,  758,  758,  755,  756,  751,  757,  759,  761,  763,
+      762,  768,  761,  770,  764,  757,  766,  767,  759,  768,
+      757,  769,  757,  764,  757,  762,  757,  763,  765,  771,
+      766,  770,  765,  765,  773,  769,  767,  772,  772,  774,
+      774,  776,  777,  778,  776,  779,  779,  777,  780,  773,
+      781,  781,  782,  784,  771,  783,  783,  782,  785,  786,
+      787,  789,  778,  785,  791,  787,  790,  786,  780,  788,
+      788,  791,  790,  784,  801,  793,  794,  795,  796,  789,
+
+      793,  794,  795,  796,  797,  798,  799,  800,  800,  802,
+      803,  804, 1180,  797,  801,  803,  805,  799,  806,  807,
+      808,  808,  809,  810,  798,  804,  811,  814,  812, 1180,
+      806,  804,  802,  812,  813,  813,  805,  807,  815,  817,
+      819,  818,  809,  815,  811,  818,  818,  820,  810,  819,
+      814,  822,  823,  825,  826,  820,  824,  823,  817,  827,
+      824,  828,  829,  830,  825,  822,  831,  829,  832,  833,
+      834,  843,  832,  826,  835,  836,  837,  838,  839,  828,
+      843,  830,  842,  839,  846,  827,  831,  833,  835,  834,
+      836,  837,  840,  841,  844,  845,  838,  847,  841,  840,
+
+      842,  845,  847,  848,  858,  846,  849,  855,  848,  844,
+      861,  849,  850,  850,  851,  851,  853,  853,  854,  856,
+      857,  862,  854,  858,  856,  855,  859,  863,  860,  861,
+      859,  859,  860,  860,  857,  864,  865,  867,  866,  868,
+      862,  869,  865,  866,  870,  871,  872,  873,  874,  874,
+      885,  885,  875,  863,  864,  875,  867,  876,  868,  871,
+      869,  877,  873,  870,  878,  879,  877,  872,  878,  876,
+      880,  881,  884,  891,  882,  888,  882,  886,  879,  880,
+      882,  887,  886,  889,  881,  887,  894,  894,  889,  893,
+      904,  891,  884,  882,  893,  888,  895,  897,  897,  899,
+
+      899,  895,  901,  902,  902,  901,  903,  906,  905,  907,
+      908,  908,  906,  909,  911,  904,  910,  910,  912,  913,
+      914,  903,  905,  913,  907,  915,  917,  918,  921,  912,
+      915,  919,  919,  909,  922,  920,  911,  923,  924,  914,
+      920,  918,  926,  925,  917,  925,  923,  926,  921,  928,
+      927,  929,  931,  933,  922,  927,  929,  934,  924,  932,
+      932,  936,  938,  934,  937,  937,  931,  939,  945,  928,
+      940,   52,  933,  940,  938,  941,  940,  942,  944,  947,
+      941,  943,  942,  944,  947,  936,  946,  939,  940,  946,
+      943,  948,  948,  945,  949,  950,  951,  952,  953,  954,
+
+      955,  958,  952,  953,  957,  955,  956,  956,  959,  957,
+      960,  961,  949,  963,  950,  962,  951,  965,  964,  958,
+      966,  967,  954,  964,  968,  961,  963,  962,  959,  971,
+      960,  970,  970,  972,  971,  967,  973,  965,  974,  975,
+      966,  977,   51,  973,  982,  968,  980,  974,  972,  980,
+      974,  979,  979,  981,  983,  975,  984,  985,  981,  986,
+      982,  977,  987,  983,  988,  988,  985,  987,  986,  985,
+      989,  990,  992,  991,  995,  984,  993,  994,  996,  997,
+      997,  998, 1000,   46,  990,  999,  992, 1000, 1003,  994,
+      989,  991,  993, 1002,  999, 1006,  996,  998, 1005,  995,
+
+     1001, 1001, 1002, 1005, 1007, 1002, 1003, 1009, 1008, 1007,
+     1011, 1010, 1016, 1006, 1008, 1001, 1010, 1012, 1017, 1018,
+     1012, 1015, 1023, 1011, 1020, 1016, 1012, 1009, 1019, 1015,
+     1021, 1024, 1025, 1019, 1026, 1024, 1017, 1025, 1018, 1026,
+     1020, 1027, 1023, 1028, 1029, 1030, 1027, 1032, 1021, 1031,
+     1031, 1033, 1028, 1034, 1035, 1036, 1038, 1037, 1033, 1039,
+     1030, 1032, 1037, 1040, 1046, 1034, 1035, 1029, 1038, 1040,
+     1041, 1041, 1042, 1046, 1036, 1042, 1045, 1039, 1043, 1043,
+     1048, 1045, 1047, 1047, 1049, 1050, 1051, 1052, 1053, 1049,
+     1054, 1055, 1048, 1053, 1050, 1056, 1057, 1057, 1051, 1054,
+
+     1058, 1059, 1052,   41, 1060, 1058, 1061, 1062, 1062, 1063,
+     1056, 1055, 1054, 1064, 1064, 1065, 1065, 1066, 1071, 1067,
+     1073, 1066, 1059, 1060, 1067, 1068, 1061, 1070, 1068, 1063,
+     1072, 1078, 1070, 1074, 1074, 1072, 1071, 1075, 1075, 1076,
+     1077, 1079, 1080, 1081, 1076, 1073, 1083, 1080, 1084, 1085,
+     1085, 1078, 1077, 1077, 1077, 1086, 1087, 1087, 1088, 1077,
+     1083, 1079, 1091, 1081, 1089, 1089, 1092, 1092, 1093, 1084,
+     1094, 1091, 1096, 1095, 1097, 1097, 1098, 1094, 1088, 1099,
+     1101, 1086, 1095, 1093, 1102, 1101, 1103, 1104, 1105, 1102,
+     1111, 1106, 1108, 1105, 1104, 1099, 1106, 1108, 1096, 1107,
+
+     1107, 1109, 1098, 1110, 1112, 1113, 1103, 1114, 1113, 1111,
+     1109, 1115, 1116, 1116, 1117, 1118, 1112, 1119, 1120, 1121,
+     1122, 1122, 1123, 1110, 1120, 1114, 1124, 1124, 1121, 1117,
+     1125, 1126, 1119, 1123, 1118, 1127, 1131, 1115, 1123, 1129,
+     1127, 1128, 1128, 1129, 1129, 1126, 1132, 1130, 1133, 1134,
+     1135, 1125, 1130, 1133, 1135, 1136, 1137, 1139, 1132, 1138,
+     1140, 1134, 1131, 1141, 1138, 1140, 1143, 1136, 1147, 1143,
+     1144, 1144, 1145, 1145, 1148, 1141, 1146, 1146, 1149, 1139,
+     1148, 1137, 1151, 1149, 1150, 1156, 1155, 1153, 1147, 1155,
+     1150, 1151, 1153, 1158, 1159, 1159, 1160, 1156, 1161, 1162,
+
+     1163, 1167, 1164, 1165, 1166, 1158, 1164, 1161, 1165, 1166,
+     1169, 1169, 1170, 1177, 1171, 1167, 1160, 1162, 1172, 1163,
+     1174, 1174, 1169, 1171, 1178, 1186, 1179, 1172, 1177, 1189,
+     1170, 1179, 1181, 1181, 1182, 1185, 1182, 1188, 1178, 1183,
+     1183, 1190, 1185, 1187, 1187, 1186, 1188, 1191, 1192, 1193,
+     1189, 1194, 1195, 1190, 1196, 1199, 1198, 1199, 1200, 1191,
+     1192, 1198, 1201, 1204, 1202, 1206, 1194, 1205, 1205, 1201,
+     1211,   14, 1195, 1202, 1196, 1193, 1200, 1204, 1207, 1208,
+     1209, 1208, 1210, 1207, 1212, 1209, 1215, 1210, 1211, 1213,
+     1214, 1206, 1216, 1218, 1213, 1214, 1219, 1220, 1220, 1215,
+
+     1216, 1221, 1221, 1222, 1212, 1223, 1224, 1226, 1225, 1226,
+     1219, 1224, 1218, 1225, 1227, 1228, 1231, 1229, 1222, 1229,
+     1230, 1236, 1237, 1238, 1228, 1223, 1227, 1228, 1231, 1230,
+     1233, 1234, 1240, 1243, 1236, 1233, 1234, 1242, 1240, 1238,
+     1244, 1245, 1237, 1242, 1246, 1246, 1247, 1249, 1243, 1250,
+     1245, 1248, 1248, 1250, 1251, 1247, 1252, 1253, 1253, 1251,
+     1254, 1255, 1258, 1258, 1259, 1244, 1249, 1262, 1254, 1252,
+     1260, 1260, 1263, 1259, 1261, 1261, 1268, 1264, 1265, 1262,
+     1270, 1255, 1264, 1265, 1266, 1266, 1269, 1271, 1272, 1273,
+     1263, 1269, 1274, 1272, 1275, 1275, 1276, 1277, 1279, 1278,
+
+     1276, 1268, 1271, 1270, 1278, 1282, 1280, 1273, 1274, 1283,
+     1284, 1285, 1277, 1287, 1286, 1289, 1289, 1290, 1291,   13,
+     1290, 1292, 1308, 1293, 1279, 1280, 1286, 1308, 1282, 1284,
+     1297, 1291, 1285, 1283, 1287, 1292, 1293, 1294, 1294, 1295,
+     1295, 1296, 1296, 1298, 1302, 1297, 1299, 1299, 1300, 1300,
+     1301, 1301, 1303, 1303, 1304, 1304, 1298, 1305, 1305, 1306,
+     1309, 1309, 1310, 1302, 1311, 1311, 1312, 1313, 1314, 1315,
+     1315, 1314, 1317, 1313, 1316, 1316, 1319, 1318, 1306, 1320,
+     1320, 1310, 1322, 1323, 1312, 1315, 1324, 1326, 1326, 1325,
+     1327, 1317, 1318, 1325, 1329, 1319, 1328, 1328, 1330, 1330,
+
+     1333, 1324, 1322, 1331, 1332, 1333, 1323, 1334, 1335, 1327,
+     1336, 1338, 1331, 1337, 1339, 1340, 1332, 1342, 1337, 1341,
+     1329, 1335, 1342, 1339, 1340, 1343, 1338, 1345, 1347, 1343,
+     1352, 1336, 1334, 1341, 1348, 1348, 1349, 1347, 1355, 1350,
+     1350, 1349, 1353, 1357, 1358, 1352, 1357, 1345, 1350, 1358,
+     1355, 1353, 1359, 1360, 1361, 1361, 1363, 1363, 1366, 1364,
+     1365, 1365, 1367, 1368, 1371, 1360, 1369, 1369, 1371, 1375,
+     1366, 1372, 1359, 1364, 1372, 1374, 1367, 1373, 1373, 1376,
+     1374, 1377, 1368, 1378, 1381, 1377, 1379, 1380, 1383, 1375,
+     1381, 1379, 1380, 1376, 1384, 1385, 1387, 1386, 1387, 1384,
+
+     1385, 1390, 1407, 1378, 1383, 1386, 1391, 1391, 1395, 1395,
+     1406, 1399, 1400, 1400, 1404, 1390, 1399, 1402, 1402, 1404,
+     1405, 1405, 1408, 1410, 1407, 1411, 1406, 1408, 1412, 1412,
+     1414, 1415, 1416, 1417, 1419, 1419, 1415, 1411, 1421, 1414,
+     1423, 1428, 1410, 1421, 1422, 1429, 1422, 1424, 1417, 1430,
+     1416, 1434, 1424, 1428, 1423, 1425, 1425, 1426, 1426, 1427,
+     1427, 1430, 1431, 1429, 1432, 1433, 1435, 1435, 1436, 1437,
+     1433, 1434, 1438, 1439, 1431, 1440, 1432, 1436, 1442, 1441,
+     1443, 1451, 1444, 1445, 1446, 1446, 1439, 1444, 1445, 1447,
+     1447, 1452, 1438, 1441, 1453, 1437, 1442, 1448, 1448, 1440,
+
+     1454, 1451, 1443, 1455, 1456, 1457, 1458, 1458, 1461, 1452,
+     1460, 1460, 1455, 1463, 1462, 1464, 1453, 1461, 1465, 1466,
+     1454, 1462, 1467, 1457, 1456, 1468, 1468, 1469, 1463, 1470,
+     1471, 1472, 1469, 1464, 1473, 1466, 1465, 1474, 1479, 1473,
+     1476, 1467, 1483, 1480,    0, 1471, 1480, 1470, 1481, 1481,
+     1472, 1482, 1484, 1484, 1487, 1489, 1489, 1474, 1479, 1476,
+     1483, 1485, 1490, 1488, 1493, 1485, 1482, 1488, 1500, 1487,
+     1492, 1492, 1494, 1494, 1504, 1490, 1495, 1495, 1499, 1499,
+     1501, 1502, 1503, 1493, 1505, 1507, 1502, 1503, 1510, 1501,
+     1500, 1508, 1505, 1504, 1509, 1519, 1508, 1511, 1511, 1509,
+
+     1507, 1512, 1512, 1510, 1513, 1514, 1515, 1515, 1519, 1513,
+     1514, 1516, 1516, 1520, 1523, 1521, 1522, 1524, 1520, 1521,
+     1525, 1522, 1526, 1523, 1527, 1530, 1529, 1526, 1525, 1529,
+     1532, 1531, 1524, 1533, 1534, 1534, 1527, 1535, 1537, 1532,
+     1538, 1542, 1533, 1530, 1531, 1539, 1535, 1540, 1540, 1541,
+     1542, 1543, 1543, 1544, 1545, 1551, 1547, 1537, 1548, 1545,
+     1538, 1544, 1550, 1552, 1539, 1547, 1550, 1559, 1541, 1551,
+     1565, 1548, 1554, 1554, 1556, 1556, 1560, 1560, 1552, 1561,
+     1562, 1562, 1561, 1563, 1563, 1564, 1564, 1559, 1565, 1566,
+     1567, 1568, 1568, 1569, 1572, 1567, 1573, 1569, 1577, 1576,
+
+     1572, 1573, 1578, 1566, 1576, 1579, 1580, 1578, 1581, 1582,
+     1582, 1583, 1584, 1585, 1590, 1577, 1577, 1586, 1586, 1588,
+     1584, 1591, 1581, 1579, 1587, 1587, 1580, 1592, 1589, 1593,
+     1583, 1594, 1585, 1589, 1590, 1588, 1592, 1596, 1596, 1597,
+     1599, 1601, 1597, 1600, 1600, 1601, 1602, 1591, 1603, 1593,
+     1606, 1594, 1604, 1604, 1605, 1602, 1608, 1609, 1599, 1606,
+     1610, 1614, 1620, 1603, 1616, 1608, 1614, 1605, 1622, 1609,
+     1615, 1615, 1618, 1616, 1619, 1621, 1623, 1618, 1624, 1625,
+     1621, 1623, 1620, 1619, 1625, 1610, 1626, 1627, 1627, 1622,
+     1629, 1630, 1631, 1631, 1632, 1633, 1624, 1634, 1632, 1635,
+
+     1636, 1638, 1637, 1640, 1633, 1643, 1630, 1637, 1636, 1629,
+     1643, 1626, 1646, 1634, 1639, 1639, 1642, 1642, 1635, 1645,
+     1645, 1647, 1640, 1649, 1649, 1650, 1651, 1638, 1652, 1652,
+     1653, 1653, 1646, 1654, 1655, 1656, 1657, 1657, 1658, 1650,
+     1659, 1664, 1660, 1662, 1647, 1660, 1655, 1671, 1651, 1661,
+     1658, 1663, 1654, 1668, 1661, 1656, 1663,    0, 1664, 1664,
+     1659, 1671, 1662, 1665, 1665, 1667, 1667,    0, 1670, 1672,
+     1673, 1673, 1668, 1670, 1672, 1674, 1674, 1675, 1675, 1676,
+     1678, 1678, 1680, 1680, 1676, 1682, 1682, 1683, 1684, 1685,
+     1685, 1686, 1689, 1690, 1690, 1694, 1686, 1684, 1691, 1693,
+
+     1689, 1683, 1695, 1691, 1693, 1696, 1697, 1694, 1698, 1699,
+     1695, 1700, 1703, 1704, 1704, 1706, 1700, 1705, 1705, 1706,
+     1710, 1710, 1697, 1696, 1712, 1698, 1698, 1715, 1712, 1718,
+     1699, 1720, 1703, 1714, 1714, 1717, 1717, 1721, 1721, 1722,
+     1722, 1715, 1723, 1724, 1718, 1725, 1726, 1723, 1727, 1720,
+     1728, 1729,    0, 1727, 1739, 1728, 1730, 1730, 1733, 1733,
+     1725, 1735, 1735, 1737, 1737, 1745, 1739, 1726, 1724, 1744,
+     1729, 1740, 1740, 1743, 1744, 1746, 1743, 1747, 1749, 1745,
+     1746, 1748, 1754, 1755, 1756, 1757, 1754, 1758, 1760, 1759,
+     1761, 1763, 1763, 1762, 1749, 1756, 1747, 1768, 1757, 1748,
+
+     1764, 1765, 1765, 1755, 1760, 1766, 1758, 1759, 1762, 1764,
+     1766, 1767, 1769, 1770, 1771, 1761, 1767, 1773, 1770, 1775,
+     1776, 1777, 1768, 1778, 1780, 1776, 1777, 1769, 1771, 1779,
+     1781, 1782, 1773, 1783, 1784, 1785, 1786, 1778, 1775, 1788,
+     1787, 1786, 1779, 1780, 1781, 1787, 1783, 1784, 1789, 1789,
+     1782, 1790, 1791, 1793, 1785, 1792, 1790, 1791, 1788, 1794,
+     1792, 1795, 1795, 1796, 1794, 1797, 1798, 1800, 1799, 1801,
+     1796, 1803, 1793, 1799, 1804, 1805, 1803, 1806, 1807, 1807,
+     1809, 1814, 1801, 1808, 1797, 1798, 1800,    0, 1808,    0,
+     1806, 1810, 1810, 1804, 1805, 1811, 1811, 1812, 1813, 1809,
+
+     1814, 1816, 1812, 1815, 1815, 1813, 1817, 1818, 1816, 1819,
+     1820, 1822, 1823, 1817, 1819, 1824, 1822, 1823, 1825, 1826,
+     1826, 1827, 1828, 1829, 1829, 1831, 1818, 1830, 1830, 1820,
+     1832, 1832, 1831, 1840, 1824, 1833, 1833, 1825, 1834, 1836,
+     1827, 1828, 1839, 1841, 1836, 1834,    0, 1839, 1842, 1842,
+     1843, 1843, 1840,    0,    0,    0,    0,    0,    0,    0,
+        0,    0, 1841, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1848, 1848, 1848, 1848, 1848, 1848, 1848, 1849, 1849, 1849,
+     1849, 1849, 1849, 1849, 1850, 1850, 1850, 1850, 1850, 1850,
+     1850, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1853, 1853,
+
+        0, 1853, 1853, 1853, 1853, 1854, 1854,    0,    0,    0,
+     1854, 1854, 1855, 1855,    0,    0, 1855,    0, 1855, 1856,
+        0,    0,    0,    0,    0, 1856, 1857, 1857,    0,    0,
+        0, 1857, 1857, 1858,    0,    0,    0,    0,    0, 1858,
+     1859, 1859,    0, 1859, 1859, 1859, 1859, 1860, 1860,    0,
+     1860, 1860, 1860, 1860, 1846, 1846, 1846, 1846, 1846, 1846,
+     1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+     1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+     1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+     1846, 1846, 1846, 1846
+
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -2056,7 +2074,7 @@ static void config_end_include(void)
 #define YY_NO_INPUT 1
 #endif
 
-#line 2058 "<stdout>"
+#line 2076 "<stdout>"
 
 #define INITIAL 0
 #define quotedstring 1
@@ -2279,7 +2297,7 @@ YY_DECL
        {
 #line 201 "./util/configlexer.lex"
 
-#line 2281 "<stdout>"
+#line 2299 "<stdout>"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2312,13 +2330,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 >= 1823 )
+                               if ( yy_current_state >= 1847 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 3611 );
+               while ( yy_base[yy_current_state] != 3655 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -3130,68 +3148,73 @@ YY_RULE_SETUP
 case 156:
 YY_RULE_SETUP
 #line 367 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT) }
+{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
        YY_BREAK
 case 157:
 YY_RULE_SETUP
 #line 368 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SLABS) }
+{ YDVAR(1, VAR_RATELIMIT) }
        YY_BREAK
 case 158:
 YY_RULE_SETUP
 #line 369 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SIZE) }
+{ YDVAR(1, VAR_RATELIMIT_SLABS) }
        YY_BREAK
 case 159:
 YY_RULE_SETUP
 #line 370 "./util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
+{ YDVAR(1, VAR_RATELIMIT_SIZE) }
        YY_BREAK
 case 160:
 YY_RULE_SETUP
 #line 371 "./util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
+{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
        YY_BREAK
 case 161:
 YY_RULE_SETUP
 #line 372 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
+{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
        YY_BREAK
 case 162:
-/* rule 162 can match eol */
 YY_RULE_SETUP
 #line 373 "./util/configlexer.lex"
+{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
+       YY_BREAK
+case 163:
+/* rule 163 can match eol */
+YY_RULE_SETUP
+#line 374 "./util/configlexer.lex"
 { LEXOUT(("NL\n")); cfg_parser->line++; }
        YY_BREAK
 /* Quoted strings. Strip leading and ending quotes */
-case 163:
+case 164:
 YY_RULE_SETUP
-#line 376 "./util/configlexer.lex"
+#line 377 "./util/configlexer.lex"
 { BEGIN(quotedstring); LEXOUT(("QS ")); }
        YY_BREAK
 case YY_STATE_EOF(quotedstring):
-#line 377 "./util/configlexer.lex"
+#line 378 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
        if(--num_args == 0) { BEGIN(INITIAL); }
        else                { BEGIN(val); }
 }
        YY_BREAK
-case 164:
+case 165:
 YY_RULE_SETUP
-#line 382 "./util/configlexer.lex"
+#line 383 "./util/configlexer.lex"
 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 165:
-/* rule 165 can match eol */
+case 166:
+/* rule 166 can match eol */
 YY_RULE_SETUP
-#line 383 "./util/configlexer.lex"
+#line 384 "./util/configlexer.lex"
 { yyerror("newline inside quoted string, no end \""); 
                          cfg_parser->line++; BEGIN(INITIAL); }
        YY_BREAK
-case 166:
+case 167:
 YY_RULE_SETUP
-#line 385 "./util/configlexer.lex"
+#line 386 "./util/configlexer.lex"
 {
         LEXOUT(("QE "));
        if(--num_args == 0) { BEGIN(INITIAL); }
@@ -3204,34 +3227,34 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* Single Quoted strings. Strip leading and ending quotes */
-case 167:
+case 168:
 YY_RULE_SETUP
-#line 397 "./util/configlexer.lex"
+#line 398 "./util/configlexer.lex"
 { BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
        YY_BREAK
 case YY_STATE_EOF(singlequotedstr):
-#line 398 "./util/configlexer.lex"
+#line 399 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
        if(--num_args == 0) { BEGIN(INITIAL); }
        else                { BEGIN(val); }
 }
        YY_BREAK
-case 168:
+case 169:
 YY_RULE_SETUP
-#line 403 "./util/configlexer.lex"
+#line 404 "./util/configlexer.lex"
 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 169:
-/* rule 169 can match eol */
+case 170:
+/* rule 170 can match eol */
 YY_RULE_SETUP
-#line 404 "./util/configlexer.lex"
+#line 405 "./util/configlexer.lex"
 { yyerror("newline inside quoted string, no end '"); 
                             cfg_parser->line++; BEGIN(INITIAL); }
        YY_BREAK
-case 170:
+case 171:
 YY_RULE_SETUP
-#line 406 "./util/configlexer.lex"
+#line 407 "./util/configlexer.lex"
 {
         LEXOUT(("SQE "));
        if(--num_args == 0) { BEGIN(INITIAL); }
@@ -3244,38 +3267,38 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* include: directive */
-case 171:
+case 172:
 YY_RULE_SETUP
-#line 418 "./util/configlexer.lex"
+#line 419 "./util/configlexer.lex"
 { 
        LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
        YY_BREAK
 case YY_STATE_EOF(include):
-#line 420 "./util/configlexer.lex"
+#line 421 "./util/configlexer.lex"
 {
         yyerror("EOF inside include directive");
         BEGIN(inc_prev);
 }
        YY_BREAK
-case 172:
-YY_RULE_SETUP
-#line 424 "./util/configlexer.lex"
-{ LEXOUT(("ISP ")); /* ignore */ }
-       YY_BREAK
 case 173:
-/* rule 173 can match eol */
 YY_RULE_SETUP
 #line 425 "./util/configlexer.lex"
-{ LEXOUT(("NL\n")); cfg_parser->line++;}
+{ LEXOUT(("ISP ")); /* ignore */ }
        YY_BREAK
 case 174:
+/* rule 174 can match eol */
 YY_RULE_SETUP
 #line 426 "./util/configlexer.lex"
-{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+{ LEXOUT(("NL\n")); cfg_parser->line++;}
        YY_BREAK
 case 175:
 YY_RULE_SETUP
 #line 427 "./util/configlexer.lex"
+{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+       YY_BREAK
+case 176:
+YY_RULE_SETUP
+#line 428 "./util/configlexer.lex"
 {
        LEXOUT(("Iunquotedstr(%s) ", yytext));
        config_start_include_glob(yytext);
@@ -3283,27 +3306,27 @@ YY_RULE_SETUP
 }
        YY_BREAK
 case YY_STATE_EOF(include_quoted):
-#line 432 "./util/configlexer.lex"
+#line 433 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
         BEGIN(inc_prev);
 }
        YY_BREAK
-case 176:
+case 177:
 YY_RULE_SETUP
-#line 436 "./util/configlexer.lex"
+#line 437 "./util/configlexer.lex"
 { LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 177:
-/* rule 177 can match eol */
+case 178:
+/* rule 178 can match eol */
 YY_RULE_SETUP
-#line 437 "./util/configlexer.lex"
+#line 438 "./util/configlexer.lex"
 { yyerror("newline before \" in include name"); 
                                  cfg_parser->line++; BEGIN(inc_prev); }
        YY_BREAK
-case 178:
+case 179:
 YY_RULE_SETUP
-#line 439 "./util/configlexer.lex"
+#line 440 "./util/configlexer.lex"
 {
        LEXOUT(("IQE "));
        yytext[yyleng - 1] = '\0';
@@ -3313,7 +3336,7 @@ YY_RULE_SETUP
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(val):
-#line 445 "./util/configlexer.lex"
+#line 446 "./util/configlexer.lex"
 {
        LEXOUT(("LEXEOF "));
        yy_set_bol(1); /* Set beginning of line, so "^" rules match.  */
@@ -3325,33 +3348,33 @@ case YY_STATE_EOF(val):
        }
 }
        YY_BREAK
-case 179:
+case 180:
 YY_RULE_SETUP
-#line 456 "./util/configlexer.lex"
+#line 457 "./util/configlexer.lex"
 { LEXOUT(("unquotedstr(%s) ", yytext)); 
                        if(--num_args == 0) { BEGIN(INITIAL); }
                        yylval.str = strdup(yytext); return STRING_ARG; }
        YY_BREAK
-case 180:
+case 181:
 YY_RULE_SETUP
-#line 460 "./util/configlexer.lex"
+#line 461 "./util/configlexer.lex"
 {
        ub_c_error_msg("unknown keyword '%s'", yytext);
        }
        YY_BREAK
-case 181:
+case 182:
 YY_RULE_SETUP
-#line 464 "./util/configlexer.lex"
+#line 465 "./util/configlexer.lex"
 {
        ub_c_error_msg("stray '%s'", yytext);
        }
        YY_BREAK
-case 182:
+case 183:
 YY_RULE_SETUP
-#line 468 "./util/configlexer.lex"
+#line 469 "./util/configlexer.lex"
 ECHO;
        YY_BREAK
-#line 3353 "<stdout>"
+#line 3376 "<stdout>"
 
        case YY_END_OF_BUFFER:
                {
@@ -3642,7 +3665,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 >= 1823 )
+                       if ( yy_current_state >= 1847 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -3670,11 +3693,11 @@ static int yy_get_next_buffer (void)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 1823 )
+               if ( yy_current_state >= 1847 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 1822);
+       yy_is_jam = (yy_current_state == 1846);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -4313,7 +4336,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 468 "./util/configlexer.lex"
+#line 469 "./util/configlexer.lex"
 
 
 
index 5d966895c1185b787a7415c38d2393fada80e376..58d642c1da22a5c254f0a744cabf07e258da26df 100644 (file)
@@ -364,6 +364,7 @@ dnstap-log-forwarder-query-messages{COLON}  {
                YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
 dnstap-log-forwarder-response-messages{COLON}  {
                YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
+disable-dnssec-lame-check{COLON} { YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
 ratelimit{COLON}               { YDVAR(1, VAR_RATELIMIT) }
 ratelimit-slabs{COLON}         { YDVAR(1, VAR_RATELIMIT_SLABS) }
 ratelimit-size{COLON}          { YDVAR(1, VAR_RATELIMIT_SIZE) }
index 0fe13b89e70ae2cf2d6f3df9b3af4a3599b71709..78c5f1f3f08da444f2a864892f61a0611a3015c4 100644 (file)
@@ -277,19 +277,20 @@ extern int yydebug;
     VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 408,
     VAR_HARDEN_ALGO_DOWNGRADE = 409,
     VAR_IP_TRANSPARENT = 410,
-    VAR_RATELIMIT = 411,
-    VAR_RATELIMIT_SLABS = 412,
-    VAR_RATELIMIT_SIZE = 413,
-    VAR_RATELIMIT_FOR_DOMAIN = 414,
-    VAR_RATELIMIT_BELOW_DOMAIN = 415,
-    VAR_RATELIMIT_FACTOR = 416,
-    VAR_CAPS_WHITELIST = 417,
-    VAR_CACHE_MAX_NEGATIVE_TTL = 418,
-    VAR_PERMIT_SMALL_HOLDDOWN = 419,
-    VAR_QNAME_MINIMISATION = 420,
-    VAR_IP_FREEBIND = 421,
-    VAR_DEFINE_TAG = 422,
-    VAR_LOCAL_ZONE_TAG = 423
+    VAR_DISABLE_DNSSEC_LAME_CHECK = 411,
+    VAR_RATELIMIT = 412,
+    VAR_RATELIMIT_SLABS = 413,
+    VAR_RATELIMIT_SIZE = 414,
+    VAR_RATELIMIT_FOR_DOMAIN = 415,
+    VAR_RATELIMIT_BELOW_DOMAIN = 416,
+    VAR_RATELIMIT_FACTOR = 417,
+    VAR_CAPS_WHITELIST = 418,
+    VAR_CACHE_MAX_NEGATIVE_TTL = 419,
+    VAR_PERMIT_SMALL_HOLDDOWN = 420,
+    VAR_QNAME_MINIMISATION = 421,
+    VAR_IP_FREEBIND = 422,
+    VAR_DEFINE_TAG = 423,
+    VAR_LOCAL_ZONE_TAG = 424
   };
 #endif
 /* Tokens.  */
@@ -446,19 +447,20 @@ extern int yydebug;
 #define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 408
 #define VAR_HARDEN_ALGO_DOWNGRADE 409
 #define VAR_IP_TRANSPARENT 410
-#define VAR_RATELIMIT 411
-#define VAR_RATELIMIT_SLABS 412
-#define VAR_RATELIMIT_SIZE 413
-#define VAR_RATELIMIT_FOR_DOMAIN 414
-#define VAR_RATELIMIT_BELOW_DOMAIN 415
-#define VAR_RATELIMIT_FACTOR 416
-#define VAR_CAPS_WHITELIST 417
-#define VAR_CACHE_MAX_NEGATIVE_TTL 418
-#define VAR_PERMIT_SMALL_HOLDDOWN 419
-#define VAR_QNAME_MINIMISATION 420
-#define VAR_IP_FREEBIND 421
-#define VAR_DEFINE_TAG 422
-#define VAR_LOCAL_ZONE_TAG 423
+#define VAR_DISABLE_DNSSEC_LAME_CHECK 411
+#define VAR_RATELIMIT 412
+#define VAR_RATELIMIT_SLABS 413
+#define VAR_RATELIMIT_SIZE 414
+#define VAR_RATELIMIT_FOR_DOMAIN 415
+#define VAR_RATELIMIT_BELOW_DOMAIN 416
+#define VAR_RATELIMIT_FACTOR 417
+#define VAR_CAPS_WHITELIST 418
+#define VAR_CACHE_MAX_NEGATIVE_TTL 419
+#define VAR_PERMIT_SMALL_HOLDDOWN 420
+#define VAR_QNAME_MINIMISATION 421
+#define VAR_IP_FREEBIND 422
+#define VAR_DEFINE_TAG 423
+#define VAR_LOCAL_ZONE_TAG 424
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -469,7 +471,7 @@ union YYSTYPE
 
        char*   str;
 
-#line 473 "util/configparser.c" /* yacc.c:355  */
+#line 475 "util/configparser.c" /* yacc.c:355  */
 };
 
 typedef union YYSTYPE YYSTYPE;
@@ -486,7 +488,7 @@ int yyparse (void);
 
 /* Copy the second part of user declarations.  */
 
-#line 490 "util/configparser.c" /* yacc.c:358  */
+#line 492 "util/configparser.c" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -728,21 +730,21 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   317
+#define YYLAST   319
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  169
+#define YYNTOKENS  170
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  174
+#define YYNNTS  175
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  333
+#define YYNRULES  335
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  492
+#define YYNSTATES  495
 
 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    by yylex, with out-of-bounds checking.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   423
+#define YYMAXUTOK   424
 
 #define YYTRANSLATE(YYX)                                                \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -793,47 +795,47 @@ static const yytype_uint8 yytranslate[] =
      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,   168
+     165,   166,   167,   168,   169
 };
 
 #if YYDEBUG
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   130,   130,   130,   131,   131,   132,   132,   133,   133,
-     137,   142,   143,   144,   144,   144,   145,   145,   146,   146,
-     146,   147,   147,   148,   148,   148,   149,   149,   149,   150,
-     150,   151,   151,   152,   152,   153,   153,   154,   154,   155,
-     155,   156,   156,   157,   157,   158,   158,   158,   159,   159,
-     159,   160,   160,   160,   161,   161,   162,   162,   163,   163,
-     164,   164,   165,   165,   165,   166,   166,   167,   167,   168,
-     168,   168,   169,   169,   170,   170,   171,   171,   172,   172,
-     172,   173,   173,   174,   174,   175,   175,   176,   176,   177,
-     177,   178,   178,   178,   179,   179,   180,   180,   180,   181,
-     181,   181,   182,   182,   182,   183,   183,   183,   184,   184,
-     184,   185,   185,   185,   186,   186,   187,   187,   188,   188,
-     189,   189,   190,   190,   190,   191,   191,   192,   192,   193,
-     193,   194,   194,   195,   195,   195,   197,   209,   210,   211,
-     211,   211,   211,   211,   213,   225,   226,   227,   227,   227,
-     227,   229,   238,   247,   258,   267,   276,   285,   298,   313,
-     322,   331,   340,   349,   358,   367,   376,   385,   394,   403,
-     412,   421,   430,   439,   446,   453,   462,   471,   485,   494,
-     503,   510,   517,   524,   532,   539,   546,   553,   560,   568,
-     576,   584,   591,   598,   607,   616,   623,   630,   638,   646,
-     656,   666,   676,   689,   700,   708,   721,   730,   739,   748,
-     758,   768,   776,   789,   798,   806,   815,   823,   836,   845,
-     852,   862,   872,   882,   892,   902,   912,   922,   932,   939,
-     946,   953,   962,   971,   980,   987,   997,  1014,  1021,  1039,
-    1052,  1065,  1074,  1083,  1092,  1101,  1111,  1121,  1130,  1139,
-    1146,  1155,  1164,  1173,  1182,  1190,  1203,  1211,  1235,  1242,
-    1257,  1267,  1277,  1284,  1291,  1300,  1314,  1333,  1342,  1350,
-    1363,  1376,  1389,  1398,  1408,  1418,  1425,  1432,  1441,  1451,
-    1461,  1468,  1475,  1484,  1489,  1490,  1491,  1491,  1491,  1492,
-    1492,  1492,  1493,  1493,  1495,  1505,  1514,  1521,  1531,  1538,
-    1545,  1552,  1559,  1564,  1565,  1566,  1566,  1567,  1567,  1568,
-    1568,  1569,  1570,  1571,  1572,  1573,  1574,  1576,  1584,  1591,
-    1599,  1607,  1614,  1621,  1630,  1639,  1648,  1657,  1666,  1675,
-    1680,  1681,  1682,  1684
+       0,   131,   131,   131,   132,   132,   133,   133,   134,   134,
+     138,   143,   144,   145,   145,   145,   146,   146,   147,   147,
+     147,   148,   148,   149,   149,   149,   150,   150,   150,   151,
+     151,   152,   152,   153,   153,   154,   154,   155,   155,   156,
+     156,   157,   157,   158,   158,   159,   159,   159,   160,   160,
+     160,   161,   161,   161,   162,   162,   163,   163,   164,   164,
+     165,   165,   166,   166,   166,   167,   167,   168,   168,   169,
+     169,   169,   170,   170,   171,   171,   172,   172,   173,   173,
+     173,   174,   174,   175,   175,   176,   176,   177,   177,   178,
+     178,   179,   179,   179,   180,   180,   181,   181,   181,   182,
+     182,   182,   183,   183,   183,   184,   184,   184,   185,   185,
+     185,   186,   186,   186,   187,   187,   188,   188,   189,   189,
+     190,   190,   191,   191,   191,   192,   192,   193,   193,   194,
+     194,   195,   195,   196,   196,   196,   197,   199,   211,   212,
+     213,   213,   213,   213,   213,   215,   227,   228,   229,   229,
+     229,   229,   231,   240,   249,   260,   269,   278,   287,   300,
+     315,   324,   333,   342,   351,   360,   369,   378,   387,   396,
+     405,   414,   423,   432,   441,   448,   455,   464,   473,   487,
+     496,   505,   512,   519,   526,   534,   541,   548,   555,   562,
+     570,   578,   586,   593,   600,   609,   618,   625,   632,   640,
+     648,   658,   668,   678,   691,   702,   710,   723,   732,   741,
+     750,   760,   770,   778,   791,   800,   808,   817,   825,   838,
+     847,   854,   864,   874,   884,   894,   904,   914,   924,   934,
+     941,   948,   955,   964,   973,   982,   989,   999,  1016,  1023,
+    1041,  1054,  1067,  1076,  1085,  1094,  1103,  1113,  1123,  1132,
+    1141,  1148,  1157,  1166,  1175,  1184,  1192,  1205,  1213,  1237,
+    1244,  1259,  1269,  1279,  1286,  1293,  1302,  1316,  1335,  1344,
+    1352,  1365,  1378,  1391,  1400,  1410,  1420,  1427,  1434,  1443,
+    1453,  1463,  1470,  1477,  1486,  1491,  1492,  1493,  1493,  1493,
+    1494,  1494,  1494,  1495,  1495,  1497,  1507,  1516,  1523,  1533,
+    1540,  1547,  1554,  1561,  1566,  1567,  1568,  1568,  1569,  1569,
+    1570,  1570,  1571,  1572,  1573,  1574,  1575,  1576,  1578,  1586,
+    1593,  1601,  1609,  1616,  1623,  1632,  1641,  1650,  1659,  1668,
+    1677,  1682,  1683,  1684,  1686,  1692
 };
 #endif
 
@@ -895,8 +897,9 @@ static const char *const yytname[] =
   "VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES",
   "VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES",
   "VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES",
-  "VAR_HARDEN_ALGO_DOWNGRADE", "VAR_IP_TRANSPARENT", "VAR_RATELIMIT",
-  "VAR_RATELIMIT_SLABS", "VAR_RATELIMIT_SIZE", "VAR_RATELIMIT_FOR_DOMAIN",
+  "VAR_HARDEN_ALGO_DOWNGRADE", "VAR_IP_TRANSPARENT",
+  "VAR_DISABLE_DNSSEC_LAME_CHECK", "VAR_RATELIMIT", "VAR_RATELIMIT_SLABS",
+  "VAR_RATELIMIT_SIZE", "VAR_RATELIMIT_FOR_DOMAIN",
   "VAR_RATELIMIT_BELOW_DOMAIN", "VAR_RATELIMIT_FACTOR",
   "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL",
   "VAR_PERMIT_SMALL_HOLDDOWN", "VAR_QNAME_MINIMISATION", "VAR_IP_FREEBIND",
@@ -969,7 +972,8 @@ static const char *const yytname[] =
   "dt_dnstap_log_client_response_messages",
   "dt_dnstap_log_forwarder_query_messages",
   "dt_dnstap_log_forwarder_response_messages", "pythonstart",
-  "contents_py", "content_py", "py_script", YY_NULLPTR
+  "contents_py", "content_py", "py_script",
+  "server_disable_dnssec_lame_check", YY_NULLPTR
 };
 #endif
 
@@ -994,7 +998,7 @@ static const yytype_uint16 yytoknum[] =
      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
+     415,   416,   417,   418,   419,   420,   421,   422,   423,   424
 };
 # endif
 
@@ -1015,18 +1019,20 @@ static const yytype_int16 yypact[] =
      -81,   118,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -12,    39,    47,    40,
       36,   -80,    18,    19,    20,    24,    25,    26,    69,    72,
-      73,    74,    75,    80,   109,   120,   129,   130,   147,   149,
-     150,   151,   152,   153,   155,   156,   157,   158,   159,   161,
-     162,   163,   164,   165,   166,   180,   181,   182,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
-     195,   196,   197,   199,   200,   201,   202,   203,   204,   205,
-     206,   207,   208,   209,   210,   211,   212,   213,   215,   216,
-     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
-     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
-     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
-     247,   248,   250,   251,   252,   253,   254,   255,   256,   257,
-     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
-     268,   269,   270,   271,   272,   -81,   -81,   -81,   -81,   -81,
+      73,    74,    75,    80,   109,   120,   129,   130,   149,   150,
+     151,   152,   153,   155,   156,   157,   158,   159,   161,   162,
+     163,   164,   165,   166,   180,   181,   182,   183,   184,   185,
+     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
+     196,   197,   199,   200,   201,   202,   203,   204,   205,   206,
+     207,   208,   209,   210,   211,   212,   213,   215,   216,   217,
+     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
+     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
+     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
+     248,   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,   -81,   -81,   -81,   -81,
+     -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
+     -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
@@ -1037,31 +1043,29 @@ static const yytype_int16 yypact[] =
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
+     -81,   275,   276,   277,   278,   279,   -81,   -81,   -81,   -81,
+     -81,   -81,   280,   281,   282,   283,   -81,   -81,   -81,   -81,
+     -81,   284,   285,   286,   287,   288,   289,   290,   291,   -81,
+     -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   292,   293,
+     294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
-     -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   273,
-     274,   275,   276,   277,   -81,   -81,   -81,   -81,   -81,   -81,
-     278,   279,   280,   281,   -81,   -81,   -81,   -81,   -81,   282,
-     283,   284,   285,   286,   287,   288,   289,   -81,   -81,   -81,
-     -81,   -81,   -81,   -81,   -81,   -81,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,   300,   301,   -81,   -81,
+     -81,   -81,   -81,   304,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
-     -81,   302,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
-     -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   303,
-     304,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
+     -81,   305,   306,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
-     -81,   -81,   -81,   -81,   -81,   -81,   -81,   305,   306,   -81,
-     -81,   -81,   -81,   -81,   -81,   -81,   307,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
+     307,   308,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   309,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
-     -81,   -81
+     -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
+     -81,   -81,   -81,   -81,   -81
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1069,8 +1073,8 @@ static const yytype_int16 yypact[] =
      means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       2,     0,     1,    10,   136,   144,   283,   329,   302,     3,
-      12,   138,   146,   285,   304,   331,     4,     5,     6,     8,
+       2,     0,     1,    10,   137,   145,   284,   330,   303,     3,
+      12,   139,   147,   286,   305,   332,     4,     5,     6,     8,
        9,     7,     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,
@@ -1083,42 +1087,42 @@ static const yytype_uint16 yydefact[] =
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    11,    13,    14,    72,    75,
-      84,    15,    23,    63,    16,    76,    77,    34,    56,    71,
-      17,    18,    19,    20,    21,    22,   106,   107,   108,   109,
-     110,    73,    62,    88,   105,    24,    25,    26,    27,    28,
-      64,    78,    79,    94,    50,    60,    51,    89,    44,    45,
-      46,    47,    98,   102,   114,   122,   133,    99,    57,    29,
-      30,    31,    86,   115,   116,   117,    32,    33,    35,    36,
-      38,    39,    37,   120,    40,    41,    42,    48,    67,   103,
-      81,   121,    74,   129,    82,    83,   100,   101,    87,    43,
-      65,    68,    49,    52,    90,    91,    66,   130,    92,    53,
-      54,    55,   104,    93,    61,    95,    96,    97,   131,    58,
-      59,    80,    69,    70,    85,   111,   112,   113,   118,   119,
-     134,   135,   123,   125,   124,   126,   127,   128,   132,     0,
-       0,     0,     0,     0,   137,   139,   140,   141,   143,   142,
-       0,     0,     0,     0,   145,   147,   148,   149,   150,     0,
-       0,     0,     0,     0,     0,     0,     0,   284,   286,   288,
-     287,   293,   289,   290,   291,   292,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   303,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
-     316,     0,   330,   332,   152,   151,   156,   159,   157,   165,
-     166,   167,   168,   169,   170,   180,   181,   182,   183,   184,
-     204,   205,   206,   211,   212,   162,   213,   214,   217,   215,
-     216,   219,   220,   221,   234,   193,   194,   195,   196,   222,
-     237,   189,   191,   238,   244,   245,   246,   163,   203,   254,
-     255,   190,   249,   177,   158,   185,   235,   241,   223,     0,
-       0,   258,   164,   153,   176,   227,   154,   160,   161,   186,
-     187,   256,   225,   229,   230,   155,   259,   207,   233,   178,
-     192,   239,   240,   243,   248,   188,   252,   250,   251,   197,
-     202,   231,   232,   198,   199,   224,   247,   179,   171,   172,
-     173,   174,   175,   260,   261,   262,   208,   209,   210,   218,
-     263,   264,   226,   200,   267,   269,   268,     0,     0,   272,
-     228,   242,   253,   273,   201,   265,     0,   274,   275,   276,
-     278,   277,   279,   280,   281,   282,   294,   296,   295,   298,
-     299,   300,   301,   297,   317,   318,   319,   320,   321,   322,
-     323,   324,   325,   326,   327,   328,   333,   236,   257,   270,
-     271,   266
+       0,     0,     0,     0,     0,     0,    11,    13,    14,    72,
+      75,    84,    15,    23,    63,    16,    76,    77,    34,    56,
+      71,    17,    18,    19,    20,    21,    22,   106,   107,   108,
+     109,   110,    73,    62,    88,   105,    24,    25,    26,    27,
+      28,    64,    78,    79,    94,    50,    60,    51,    89,    44,
+      45,    46,    47,    98,   102,   114,   122,   133,    99,    57,
+      29,    30,    31,    86,   115,   116,   117,    32,    33,    35,
+      36,    38,    39,    37,   120,    40,    41,    42,    48,    67,
+     103,    81,   121,    74,   129,    82,    83,   100,   101,    87,
+      43,    65,    68,    49,    52,    90,    91,    66,   130,    92,
+      53,    54,    55,   104,    93,    61,    95,    96,    97,   131,
+      58,    59,    80,    69,    70,    85,   111,   112,   113,   118,
+     119,   134,   135,   123,   125,   124,   126,   127,   128,   132,
+     136,     0,     0,     0,     0,     0,   138,   140,   141,   142,
+     144,   143,     0,     0,     0,     0,   146,   148,   149,   150,
+     151,     0,     0,     0,     0,     0,     0,     0,     0,   285,
+     287,   289,   288,   294,   290,   291,   292,   293,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     304,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,   317,     0,   331,   333,   153,   152,   157,   160,
+     158,   166,   167,   168,   169,   170,   171,   181,   182,   183,
+     184,   185,   205,   206,   207,   212,   213,   163,   214,   215,
+     218,   216,   217,   220,   221,   222,   235,   194,   195,   196,
+     197,   223,   238,   190,   192,   239,   245,   246,   247,   164,
+     204,   255,   256,   191,   250,   178,   159,   186,   236,   242,
+     224,     0,     0,   259,   165,   154,   177,   228,   155,   161,
+     162,   187,   188,   257,   226,   230,   231,   156,   260,   208,
+     234,   179,   193,   240,   241,   244,   249,   189,   253,   251,
+     252,   198,   203,   232,   233,   199,   200,   225,   248,   180,
+     172,   173,   174,   175,   176,   261,   262,   263,   209,   210,
+     211,   219,   264,   265,   227,   201,   335,   268,   270,   269,
+       0,     0,   273,   229,   243,   254,   274,   202,   266,     0,
+     275,   276,   277,   279,   278,   280,   281,   282,   283,   295,
+     297,   296,   299,   300,   301,   302,   298,   318,   319,   320,
+     321,   322,   323,   324,   325,   326,   327,   328,   329,   334,
+     237,   258,   271,   272,   267
 };
 
   /* YYPGOTO[NTERM-NUM].  */
@@ -1141,30 +1145,30 @@ static const yytype_int8 yypgoto[] =
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
-     -81,   -81,   -81,   -81
+     -81,   -81,   -81,   -81,   -81
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     1,     9,    10,    16,   145,    11,    17,   274,    12,
-      18,   284,   146,   147,   148,   149,   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,   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,   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,   275,   276,   277,   278,   279,
-     285,   286,   287,   288,    13,    19,   297,   298,   299,   300,
-     301,   302,   303,   304,   305,    14,    20,   318,   319,   320,
-     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
-      15,    21,   332,   333
+      -1,     1,     9,    10,    16,   146,    11,    17,   276,    12,
+      18,   286,   147,   148,   149,   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,   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,   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,   277,   278,   279,   280,   281,
+     287,   288,   289,   290,    13,    19,   299,   300,   301,   302,
+     303,   304,   305,   306,   307,    14,    20,   320,   321,   322,
+     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
+      15,    21,   334,   335,   270
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -1174,36 +1178,36 @@ static const yytype_uint16 yytable[] =
 {
       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,   331,   334,   335,
-     336,    49,    50,    51,   337,   338,   339,    52,    53,    54,
+      42,    43,    44,    45,    46,    47,    48,   333,   336,   337,
+     338,    49,    50,    51,   339,   340,   341,    52,    53,    54,
       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      85,    86,    87,    88,    89,    90,    91,    92,   269,   340,
-     270,   271,   341,   342,   343,   344,   280,    93,    94,    95,
-     345,    96,    97,    98,   281,   282,    99,   100,   101,   102,
+      85,    86,    87,    88,    89,    90,    91,    92,   271,   342,
+     272,   273,   343,   344,   345,   346,   282,    93,    94,    95,
+     347,    96,    97,    98,   283,   284,    99,   100,   101,   102,
      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-     113,   114,   115,   116,   117,   118,   119,   120,     2,   346,
+     113,   114,   115,   116,   117,   118,   119,   120,     2,   348,
      121,   122,   123,   124,   125,   126,   127,   128,   129,     3,
-     347,   289,   290,   291,   292,   293,   294,   295,   296,   348,
-     349,   272,   130,   131,   132,   133,   134,   135,   136,   137,
-     138,   139,   140,   141,   142,   143,   144,   350,     4,   351,
-     352,   353,   354,   355,     5,   356,   357,   358,   359,   360,
-     273,   361,   362,   363,   364,   365,   366,   283,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
-     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
-     377,   378,   379,   380,   381,   382,   383,   384,     6,   385,
-     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
-     396,   397,   398,   399,     7,   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,     8,
-     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
+     349,   291,   292,   293,   294,   295,   296,   297,   298,   350,
+     351,   274,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,   141,   142,   143,   144,   145,     4,   352,
+     353,   354,   355,   356,     5,   357,   358,   359,   360,   361,
+     275,   362,   363,   364,   365,   366,   367,   285,   308,   309,
+     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
+     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
+     378,   379,   380,   381,   382,   383,   384,   385,     6,   386,
+     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
+     397,   398,   399,   400,     7,   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,     8,
+     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
 };
 
 static const yytype_uint8 yycheck[] =
@@ -1223,7 +1227,7 @@ static const yytype_uint8 yycheck[] =
      132,   133,   134,   135,   136,   137,   138,   139,   140,    11,
       10,    91,    92,    93,    94,    95,    96,    97,    98,    10,
       10,   102,   154,   155,   156,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,   168,    10,    40,    10,
+     162,   163,   164,   165,   166,   167,   168,   169,    40,    10,
       10,    10,    10,    10,    46,    10,    10,    10,    10,    10,
      131,    10,    10,    10,    10,    10,    10,   130,   142,   143,
      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
@@ -1239,16 +1243,16 @@ static const yytype_uint8 yycheck[] =
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
-      10,    10,    10,    10,    10,    10,    10,    10
+      10,    10,    10,    10,    10,    10,    10,    10,    10,    10
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
      symbol of state STATE-NUM.  */
 static const yytype_uint16 yystos[] =
 {
-       0,   170,     0,    11,    40,    46,    90,   106,   141,   171,
-     172,   175,   178,   313,   324,   339,   173,   176,   179,   314,
-     325,   340,    12,    13,    14,    15,    16,    17,    18,    19,
+       0,   171,     0,    11,    40,    46,    90,   106,   141,   172,
+     173,   176,   179,   314,   325,   340,   174,   177,   180,   315,
+     326,   341,    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,    43,
       44,    45,    49,    50,    51,    52,    53,    54,    55,    56,
@@ -1260,7 +1264,7 @@ static const yytype_uint16 yystos[] =
      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
      129,   132,   133,   134,   135,   136,   137,   138,   139,   140,
      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,   168,   174,   181,   182,   183,   184,
+     164,   165,   166,   167,   168,   169,   175,   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,
@@ -1272,14 +1276,14 @@ static const yytype_uint16 yystos[] =
      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,    39,
-      41,    42,   102,   131,   177,   304,   305,   306,   307,   308,
-      39,    47,    48,   130,   180,   309,   310,   311,   312,    91,
-      92,    93,    94,    95,    96,    97,    98,   315,   316,   317,
-     318,   319,   320,   321,   322,   323,   142,   143,   144,   145,
-     146,   147,   148,   149,   150,   151,   152,   153,   326,   327,
-     328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
-     338,   107,   341,   342,    10,    10,    10,    10,    10,    10,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     344,    39,    41,    42,   102,   131,   178,   305,   306,   307,
+     308,   309,    39,    47,    48,   130,   181,   310,   311,   312,
+     313,    91,    92,    93,    94,    95,    96,    97,    98,   316,
+     317,   318,   319,   320,   321,   322,   323,   324,   142,   143,
+     144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
+     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
+     337,   338,   339,   107,   342,   343,    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,
@@ -1295,28 +1299,28 @@ static const yytype_uint16 yystos[] =
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
-      10,    10
+      10,    10,    10,    10,    10
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint16 yyr1[] =
 {
-       0,   169,   170,   170,   171,   171,   171,   171,   171,   171,
-     172,   173,   173,   174,   174,   174,   174,   174,   174,   174,
-     174,   174,   174,   174,   174,   174,   174,   174,   174,   174,
-     174,   174,   174,   174,   174,   174,   174,   174,   174,   174,
-     174,   174,   174,   174,   174,   174,   174,   174,   174,   174,
-     174,   174,   174,   174,   174,   174,   174,   174,   174,   174,
-     174,   174,   174,   174,   174,   174,   174,   174,   174,   174,
-     174,   174,   174,   174,   174,   174,   174,   174,   174,   174,
-     174,   174,   174,   174,   174,   174,   174,   174,   174,   174,
-     174,   174,   174,   174,   174,   174,   174,   174,   174,   174,
-     174,   174,   174,   174,   174,   174,   174,   174,   174,   174,
-     174,   174,   174,   174,   174,   174,   174,   174,   174,   174,
-     174,   174,   174,   174,   174,   174,   174,   174,   174,   174,
-     174,   174,   174,   174,   174,   174,   175,   176,   176,   177,
-     177,   177,   177,   177,   178,   179,   179,   180,   180,   180,
-     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
+       0,   170,   171,   171,   172,   172,   172,   172,   172,   172,
+     173,   174,   174,   175,   175,   175,   175,   175,   175,   175,
+     175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
+     175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
+     175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
+     175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
+     175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
+     175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
+     175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
+     175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
+     175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
+     175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
+     175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
+     175,   175,   175,   175,   175,   175,   175,   176,   177,   177,
+     178,   178,   178,   178,   178,   179,   180,   180,   181,   181,
+     181,   181,   182,   183,   184,   185,   186,   187,   188,   189,
      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
@@ -1329,12 +1333,12 @@ static const yytype_uint16 yyr1[] =
      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,   314,   315,   315,   315,   315,
-     315,   315,   315,   315,   316,   317,   318,   319,   320,   321,
-     322,   323,   324,   325,   325,   326,   326,   326,   326,   326,
-     326,   326,   326,   326,   326,   326,   326,   327,   328,   329,
+     310,   311,   312,   313,   314,   315,   315,   316,   316,   316,
+     316,   316,   316,   316,   316,   317,   318,   319,   320,   321,
+     322,   323,   324,   325,   326,   326,   327,   327,   327,   327,
+     327,   327,   327,   327,   327,   327,   327,   327,   328,   329,
      330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
-     340,   340,   341,   342
+     340,   341,   341,   342,   343,   344
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -1353,9 +1357,9 @@ static const yytype_uint8 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,     2,     0,     1,
-       1,     1,     1,     1,     1,     2,     0,     1,     1,     1,
-       1,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       1,     1,     1,     1,     1,     1,     1,     1,     2,     0,
+       1,     1,     1,     1,     1,     1,     2,     0,     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,     2,
@@ -1363,17 +1367,17 @@ static const yytype_uint8 yyr2[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     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,
+       2,     2,     2,     2,     2,     2,     2,     2,     3,     2,
        2,     2,     2,     2,     2,     2,     2,     3,     2,     2,
-       2,     2,     2,     2,     2,     2,     3,     2,     2,     2,
-       3,     3,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     3,     3,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     1,     2,     0,     1,     1,     1,
+       1,     1,     1,     1,     1,     2,     2,     2,     2,     2,
        2,     2,     2,     1,     2,     0,     1,     1,     1,     1,
-       1,     1,     1,     1,     2,     2,     2,     2,     2,     2,
-       2,     2,     1,     2,     0,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     1,
-       2,     0,     1,     2
+       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
 };
 
 
@@ -2050,15 +2054,15 @@ yyreduce:
   switch (yyn)
     {
         case 10:
-#line 138 "./util/configparser.y" /* yacc.c:1646  */
+#line 139 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("\nP(server:)\n")); 
        }
-#line 2058 "util/configparser.c" /* yacc.c:1646  */
+#line 2062 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 136:
-#line 198 "./util/configparser.y" /* yacc.c:1646  */
+  case 137:
+#line 200 "./util/configparser.y" /* yacc.c:1646  */
     {
                struct config_stub* s;
                OUTYY(("\nP(stub_zone:)\n")); 
@@ -2069,11 +2073,11 @@ yyreduce:
                } else 
                        yyerror("out of memory");
        }
-#line 2073 "util/configparser.c" /* yacc.c:1646  */
+#line 2077 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 144:
-#line 214 "./util/configparser.y" /* yacc.c:1646  */
+  case 145:
+#line 216 "./util/configparser.y" /* yacc.c:1646  */
     {
                struct config_stub* s;
                OUTYY(("\nP(forward_zone:)\n")); 
@@ -2084,11 +2088,11 @@ yyreduce:
                } else 
                        yyerror("out of memory");
        }
-#line 2088 "util/configparser.c" /* yacc.c:1646  */
+#line 2092 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 151:
-#line 230 "./util/configparser.y" /* yacc.c:1646  */
+  case 152:
+#line 232 "./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)
@@ -2096,11 +2100,11 @@ yyreduce:
                else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2100 "util/configparser.c" /* yacc.c:1646  */
+#line 2104 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 152:
-#line 239 "./util/configparser.y" /* yacc.c:1646  */
+  case 153:
+#line 241 "./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)
@@ -2108,11 +2112,11 @@ yyreduce:
                else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2112 "util/configparser.c" /* yacc.c:1646  */
+#line 2116 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 153:
-#line 248 "./util/configparser.y" /* yacc.c:1646  */
+  case 154:
+#line 250 "./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)
@@ -2122,11 +2126,11 @@ yyreduce:
                else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2126 "util/configparser.c" /* yacc.c:1646  */
+#line 2130 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 154:
-#line 259 "./util/configparser.y" /* yacc.c:1646  */
+  case 155:
+#line 261 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2134,11 +2138,11 @@ yyreduce:
                else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2138 "util/configparser.c" /* yacc.c:1646  */
+#line 2142 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 155:
-#line 268 "./util/configparser.y" /* yacc.c:1646  */
+  case 156:
+#line 270 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2146,11 +2150,11 @@ yyreduce:
                else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2150 "util/configparser.c" /* yacc.c:1646  */
+#line 2154 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 156:
-#line 277 "./util/configparser.y" /* yacc.c:1646  */
+  case 157:
+#line 279 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2158,11 +2162,11 @@ yyreduce:
                else cfg_parser->cfg->port = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2162 "util/configparser.c" /* yacc.c:1646  */
+#line 2166 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 157:
-#line 286 "./util/configparser.y" /* yacc.c:1646  */
+  case 158:
+#line 288 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->num_ifs == 0)
@@ -2174,11 +2178,11 @@ yyreduce:
                else
                        cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
        }
-#line 2178 "util/configparser.c" /* yacc.c:1646  */
+#line 2182 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 158:
-#line 299 "./util/configparser.y" /* yacc.c:1646  */
+  case 159:
+#line 301 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->num_out_ifs == 0)
@@ -2192,11 +2196,11 @@ yyreduce:
                        cfg_parser->cfg->out_ifs[
                                cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
        }
-#line 2196 "util/configparser.c" /* yacc.c:1646  */
+#line 2200 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 159:
-#line 314 "./util/configparser.y" /* yacc.c:1646  */
+  case 160:
+#line 316 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2204,11 +2208,11 @@ yyreduce:
                else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2208 "util/configparser.c" /* yacc.c:1646  */
+#line 2212 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 160:
-#line 323 "./util/configparser.y" /* yacc.c:1646  */
+  case 161:
+#line 325 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str)));
                if(!cfg_mark_ports((yyvsp[0].str), 1, 
@@ -2216,11 +2220,11 @@ yyreduce:
                        yyerror("port number or range (\"low-high\") expected");
                free((yyvsp[0].str));
        }
-#line 2220 "util/configparser.c" /* yacc.c:1646  */
+#line 2224 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 161:
-#line 332 "./util/configparser.y" /* yacc.c:1646  */
+  case 162:
+#line 334 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str)));
                if(!cfg_mark_ports((yyvsp[0].str), 0, 
@@ -2228,11 +2232,11 @@ yyreduce:
                        yyerror("port number or range (\"low-high\") expected");
                free((yyvsp[0].str));
        }
-#line 2232 "util/configparser.c" /* yacc.c:1646  */
+#line 2236 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 162:
-#line 341 "./util/configparser.y" /* yacc.c:1646  */
+  case 163:
+#line 343 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2240,11 +2244,11 @@ yyreduce:
                else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2244 "util/configparser.c" /* yacc.c:1646  */
+#line 2248 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 163:
-#line 350 "./util/configparser.y" /* yacc.c:1646  */
+  case 164:
+#line 352 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2252,11 +2256,11 @@ yyreduce:
                else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2256 "util/configparser.c" /* yacc.c:1646  */
+#line 2260 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 164:
-#line 359 "./util/configparser.y" /* yacc.c:1646  */
+  case 165:
+#line 361 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2264,11 +2268,11 @@ yyreduce:
                else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2268 "util/configparser.c" /* yacc.c:1646  */
+#line 2272 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 165:
-#line 368 "./util/configparser.y" /* yacc.c:1646  */
+  case 166:
+#line 370 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2276,11 +2280,11 @@ yyreduce:
                else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2280 "util/configparser.c" /* yacc.c:1646  */
+#line 2284 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 166:
-#line 377 "./util/configparser.y" /* yacc.c:1646  */
+  case 167:
+#line 379 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2288,11 +2292,11 @@ yyreduce:
                else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2292 "util/configparser.c" /* yacc.c:1646  */
+#line 2296 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 167:
-#line 386 "./util/configparser.y" /* yacc.c:1646  */
+  case 168:
+#line 388 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2300,11 +2304,11 @@ yyreduce:
                else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2304 "util/configparser.c" /* yacc.c:1646  */
+#line 2308 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 168:
-#line 395 "./util/configparser.y" /* yacc.c:1646  */
+  case 169:
+#line 397 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2312,11 +2316,11 @@ yyreduce:
                else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2316 "util/configparser.c" /* yacc.c:1646  */
+#line 2320 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 169:
-#line 404 "./util/configparser.y" /* yacc.c:1646  */
+  case 170:
+#line 406 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str)));
                 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2324,11 +2328,11 @@ yyreduce:
                 else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
                 free((yyvsp[0].str));
        }
-#line 2328 "util/configparser.c" /* yacc.c:1646  */
+#line 2332 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 170:
-#line 413 "./util/configparser.y" /* yacc.c:1646  */
+  case 171:
+#line 415 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2336,11 +2340,11 @@ yyreduce:
                else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2340 "util/configparser.c" /* yacc.c:1646  */
+#line 2344 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 171:
-#line 422 "./util/configparser.y" /* yacc.c:1646  */
+  case 172:
+#line 424 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2348,11 +2352,11 @@ yyreduce:
                else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2352 "util/configparser.c" /* yacc.c:1646  */
+#line 2356 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 172:
-#line 431 "./util/configparser.y" /* yacc.c:1646  */
+  case 173:
+#line 433 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2360,31 +2364,31 @@ yyreduce:
                else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2364 "util/configparser.c" /* yacc.c:1646  */
+#line 2368 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 173:
-#line 440 "./util/configparser.y" /* yacc.c:1646  */
+  case 174:
+#line 442 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2374 "util/configparser.c" /* yacc.c:1646  */
+#line 2378 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 174:
-#line 447 "./util/configparser.y" /* yacc.c:1646  */
+  case 175:
+#line 449 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2384 "util/configparser.c" /* yacc.c:1646  */
+#line 2388 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 175:
-#line 454 "./util/configparser.y" /* yacc.c:1646  */
+  case 176:
+#line 456 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2392,11 +2396,11 @@ yyreduce:
                else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2396 "util/configparser.c" /* yacc.c:1646  */
+#line 2400 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 176:
-#line 463 "./util/configparser.y" /* yacc.c:1646  */
+  case 177:
+#line 465 "./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)
@@ -2404,11 +2408,11 @@ yyreduce:
                else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2408 "util/configparser.c" /* yacc.c:1646  */
+#line 2412 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 177:
-#line 472 "./util/configparser.y" /* yacc.c:1646  */
+  case 178:
+#line 474 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2421,11 +2425,11 @@ yyreduce:
 #endif
                free((yyvsp[0].str));
        }
-#line 2425 "util/configparser.c" /* yacc.c:1646  */
+#line 2429 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 178:
-#line 486 "./util/configparser.y" /* yacc.c:1646  */
+  case 179:
+#line 488 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2433,11 +2437,11 @@ yyreduce:
                else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2437 "util/configparser.c" /* yacc.c:1646  */
+#line 2441 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 179:
-#line 495 "./util/configparser.y" /* yacc.c:1646  */
+  case 180:
+#line 497 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2445,145 +2449,145 @@ yyreduce:
                else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2449 "util/configparser.c" /* yacc.c:1646  */
+#line 2453 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 180:
-#line 504 "./util/configparser.y" /* yacc.c:1646  */
+  case 181:
+#line 506 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->chrootdir);
                cfg_parser->cfg->chrootdir = (yyvsp[0].str);
        }
-#line 2459 "util/configparser.c" /* yacc.c:1646  */
+#line 2463 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 181:
-#line 511 "./util/configparser.y" /* yacc.c:1646  */
+  case 182:
+#line 513 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_username:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->username);
                cfg_parser->cfg->username = (yyvsp[0].str);
        }
-#line 2469 "util/configparser.c" /* yacc.c:1646  */
+#line 2473 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 182:
-#line 518 "./util/configparser.y" /* yacc.c:1646  */
+  case 183:
+#line 520 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->directory);
                cfg_parser->cfg->directory = (yyvsp[0].str);
        }
-#line 2479 "util/configparser.c" /* yacc.c:1646  */
+#line 2483 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 183:
-#line 525 "./util/configparser.y" /* yacc.c:1646  */
+  case 184:
+#line 527 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2490 "util/configparser.c" /* yacc.c:1646  */
+#line 2494 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 184:
-#line 533 "./util/configparser.y" /* yacc.c:1646  */
+  case 185:
+#line 535 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->pidfile);
                cfg_parser->cfg->pidfile = (yyvsp[0].str);
        }
-#line 2500 "util/configparser.c" /* yacc.c:1646  */
+#line 2504 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 185:
-#line 540 "./util/configparser.y" /* yacc.c:1646  */
+  case 186:
+#line 542 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2510 "util/configparser.c" /* yacc.c:1646  */
+#line 2514 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 186:
-#line 547 "./util/configparser.y" /* yacc.c:1646  */
+  case 187:
+#line 549 "./util/configparser.y" /* yacc.c:1646  */
     {
                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);
        }
-#line 2520 "util/configparser.c" /* yacc.c:1646  */
+#line 2524 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 187:
-#line 554 "./util/configparser.y" /* yacc.c:1646  */
+  case 188:
+#line 556 "./util/configparser.y" /* yacc.c:1646  */
     {
                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");
        }
-#line 2530 "util/configparser.c" /* yacc.c:1646  */
+#line 2534 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 188:
-#line 561 "./util/configparser.y" /* yacc.c:1646  */
+  case 189:
+#line 563 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2541 "util/configparser.c" /* yacc.c:1646  */
+#line 2545 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 189:
-#line 569 "./util/configparser.y" /* yacc.c:1646  */
+  case 190:
+#line 571 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2552 "util/configparser.c" /* yacc.c:1646  */
+#line 2556 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 190:
-#line 577 "./util/configparser.y" /* yacc.c:1646  */
+  case 191:
+#line 579 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2563 "util/configparser.c" /* yacc.c:1646  */
+#line 2567 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 191:
-#line 585 "./util/configparser.y" /* yacc.c:1646  */
+  case 192:
+#line 587 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2573 "util/configparser.c" /* yacc.c:1646  */
+#line 2577 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 192:
-#line 592 "./util/configparser.y" /* yacc.c:1646  */
+  case 193:
+#line 594 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2583 "util/configparser.c" /* yacc.c:1646  */
+#line 2587 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 193:
-#line 599 "./util/configparser.y" /* yacc.c:1646  */
+  case 194:
+#line 601 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2591,11 +2595,11 @@ yyreduce:
                else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2595 "util/configparser.c" /* yacc.c:1646  */
+#line 2599 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 194:
-#line 608 "./util/configparser.y" /* yacc.c:1646  */
+  case 195:
+#line 610 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2603,53 +2607,53 @@ yyreduce:
                else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2607 "util/configparser.c" /* yacc.c:1646  */
+#line 2611 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 195:
-#line 617 "./util/configparser.y" /* yacc.c:1646  */
+  case 196:
+#line 619 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->identity);
                cfg_parser->cfg->identity = (yyvsp[0].str);
        }
-#line 2617 "util/configparser.c" /* yacc.c:1646  */
+#line 2621 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 196:
-#line 624 "./util/configparser.y" /* yacc.c:1646  */
+  case 197:
+#line 626 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_version:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->version);
                cfg_parser->cfg->version = (yyvsp[0].str);
        }
-#line 2627 "util/configparser.c" /* yacc.c:1646  */
+#line 2631 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 197:
-#line 631 "./util/configparser.y" /* yacc.c:1646  */
+  case 198:
+#line 633 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2638 "util/configparser.c" /* yacc.c:1646  */
+#line 2642 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 198:
-#line 639 "./util/configparser.y" /* yacc.c:1646  */
+  case 199:
+#line 641 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2649 "util/configparser.c" /* yacc.c:1646  */
+#line 2653 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 199:
-#line 647 "./util/configparser.y" /* yacc.c:1646  */
+  case 200:
+#line 649 "./util/configparser.y" /* yacc.c:1646  */
     {
         OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str)));
         if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2658,11 +2662,11 @@ yyreduce:
             (strcmp((yyvsp[0].str), "yes")==0);
         free((yyvsp[0].str));
     }
-#line 2662 "util/configparser.c" /* yacc.c:1646  */
+#line 2666 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 200:
-#line 657 "./util/configparser.y" /* yacc.c:1646  */
+  case 201:
+#line 659 "./util/configparser.y" /* yacc.c:1646  */
     {
         OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str)));
         if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2671,11 +2675,11 @@ yyreduce:
             (strcmp((yyvsp[0].str), "yes")==0);
         free((yyvsp[0].str));
     }
-#line 2675 "util/configparser.c" /* yacc.c:1646  */
+#line 2679 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 201:
-#line 667 "./util/configparser.y" /* yacc.c:1646  */
+  case 202:
+#line 669 "./util/configparser.y" /* yacc.c:1646  */
     {
         OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str)));
         if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2684,11 +2688,11 @@ yyreduce:
             (strcmp((yyvsp[0].str), "yes")==0);
         free((yyvsp[0].str));
     }
-#line 2688 "util/configparser.c" /* yacc.c:1646  */
+#line 2692 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 202:
-#line 677 "./util/configparser.y" /* yacc.c:1646  */
+  case 203:
+#line 679 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2700,11 +2704,11 @@ yyreduce:
                else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2704 "util/configparser.c" /* yacc.c:1646  */
+#line 2708 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 203:
-#line 690 "./util/configparser.y" /* yacc.c:1646  */
+  case 204:
+#line 692 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2714,22 +2718,22 @@ yyreduce:
                else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2718 "util/configparser.c" /* yacc.c:1646  */
+#line 2722 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 204:
-#line 701 "./util/configparser.y" /* yacc.c:1646  */
+  case 205:
+#line 703 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2729 "util/configparser.c" /* yacc.c:1646  */
+#line 2733 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 205:
-#line 709 "./util/configparser.y" /* yacc.c:1646  */
+  case 206:
+#line 711 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2741,11 +2745,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 2745 "util/configparser.c" /* yacc.c:1646  */
+#line 2749 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 206:
-#line 722 "./util/configparser.y" /* yacc.c:1646  */
+  case 207:
+#line 724 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2753,11 +2757,11 @@ yyreduce:
                else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2757 "util/configparser.c" /* yacc.c:1646  */
+#line 2761 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 207:
-#line 731 "./util/configparser.y" /* yacc.c:1646  */
+  case 208:
+#line 733 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2765,11 +2769,11 @@ yyreduce:
                else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2769 "util/configparser.c" /* yacc.c:1646  */
+#line 2773 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 208:
-#line 740 "./util/configparser.y" /* yacc.c:1646  */
+  case 209:
+#line 742 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2777,11 +2781,11 @@ yyreduce:
                else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2781 "util/configparser.c" /* yacc.c:1646  */
+#line 2785 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 209:
-#line 749 "./util/configparser.y" /* yacc.c:1646  */
+  case 210:
+#line 751 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2790,11 +2794,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2794 "util/configparser.c" /* yacc.c:1646  */
+#line 2798 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 210:
-#line 759 "./util/configparser.y" /* yacc.c:1646  */
+  case 211:
+#line 761 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2803,22 +2807,22 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2807 "util/configparser.c" /* yacc.c:1646  */
+#line 2811 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 211:
-#line 769 "./util/configparser.y" /* yacc.c:1646  */
+  case 212:
+#line 771 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2818 "util/configparser.c" /* yacc.c:1646  */
+#line 2822 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 212:
-#line 777 "./util/configparser.y" /* yacc.c:1646  */
+  case 213:
+#line 779 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2830,11 +2834,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 2834 "util/configparser.c" /* yacc.c:1646  */
+#line 2838 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 213:
-#line 790 "./util/configparser.y" /* yacc.c:1646  */
+  case 214:
+#line 792 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2842,22 +2846,22 @@ yyreduce:
                else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2846 "util/configparser.c" /* yacc.c:1646  */
+#line 2850 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 214:
-#line 799 "./util/configparser.y" /* yacc.c:1646  */
+  case 215:
+#line 801 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2857 "util/configparser.c" /* yacc.c:1646  */
+#line 2861 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 215:
-#line 807 "./util/configparser.y" /* yacc.c:1646  */
+  case 216:
+#line 809 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2865,22 +2869,22 @@ yyreduce:
                else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2869 "util/configparser.c" /* yacc.c:1646  */
+#line 2873 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 216:
-#line 816 "./util/configparser.y" /* yacc.c:1646  */
+  case 217:
+#line 818 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2880 "util/configparser.c" /* yacc.c:1646  */
+#line 2884 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 217:
-#line 824 "./util/configparser.y" /* yacc.c:1646  */
+  case 218:
+#line 826 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2892,11 +2896,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 2896 "util/configparser.c" /* yacc.c:1646  */
+#line 2900 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 218:
-#line 837 "./util/configparser.y" /* yacc.c:1646  */
+  case 219:
+#line 839 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2904,21 +2908,21 @@ yyreduce:
                else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2908 "util/configparser.c" /* yacc.c:1646  */
+#line 2912 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 219:
-#line 846 "./util/configparser.y" /* yacc.c:1646  */
+  case 220:
+#line 848 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 2918 "util/configparser.c" /* yacc.c:1646  */
+#line 2922 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 220:
-#line 853 "./util/configparser.y" /* yacc.c:1646  */
+  case 221:
+#line 855 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2927,11 +2931,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2931 "util/configparser.c" /* yacc.c:1646  */
+#line 2935 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 221:
-#line 863 "./util/configparser.y" /* yacc.c:1646  */
+  case 222:
+#line 865 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2940,11 +2944,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2944 "util/configparser.c" /* yacc.c:1646  */
+#line 2948 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 222:
-#line 873 "./util/configparser.y" /* yacc.c:1646  */
+  case 223:
+#line 875 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2953,11 +2957,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2957 "util/configparser.c" /* yacc.c:1646  */
+#line 2961 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 223:
-#line 883 "./util/configparser.y" /* yacc.c:1646  */
+  case 224:
+#line 885 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2966,11 +2970,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2970 "util/configparser.c" /* yacc.c:1646  */
+#line 2974 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 224:
-#line 893 "./util/configparser.y" /* yacc.c:1646  */
+  case 225:
+#line 895 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2979,11 +2983,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2983 "util/configparser.c" /* yacc.c:1646  */
+#line 2987 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 225:
-#line 903 "./util/configparser.y" /* yacc.c:1646  */
+  case 226:
+#line 905 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2992,11 +2996,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2996 "util/configparser.c" /* yacc.c:1646  */
+#line 3000 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 226:
-#line 913 "./util/configparser.y" /* yacc.c:1646  */
+  case 227:
+#line 915 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3005,11 +3009,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3009 "util/configparser.c" /* yacc.c:1646  */
+#line 3013 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 227:
-#line 923 "./util/configparser.y" /* yacc.c:1646  */
+  case 228:
+#line 925 "./util/configparser.y" /* yacc.c:1646  */
     {
                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)
@@ -3018,41 +3022,41 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3022 "util/configparser.c" /* yacc.c:1646  */
+#line 3026 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 228:
-#line 933 "./util/configparser.y" /* yacc.c:1646  */
+  case 229:
+#line 935 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3032 "util/configparser.c" /* yacc.c:1646  */
+#line 3036 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 229:
-#line 940 "./util/configparser.y" /* yacc.c:1646  */
+  case 230:
+#line 942 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3042 "util/configparser.c" /* yacc.c:1646  */
+#line 3046 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 230:
-#line 947 "./util/configparser.y" /* yacc.c:1646  */
+  case 231:
+#line 949 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3052 "util/configparser.c" /* yacc.c:1646  */
+#line 3056 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 231:
-#line 954 "./util/configparser.y" /* yacc.c:1646  */
+  case 232:
+#line 956 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3060,11 +3064,11 @@ yyreduce:
                else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3064 "util/configparser.c" /* yacc.c:1646  */
+#line 3068 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 232:
-#line 963 "./util/configparser.y" /* yacc.c:1646  */
+  case 233:
+#line 965 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3072,11 +3076,11 @@ yyreduce:
                else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3076 "util/configparser.c" /* yacc.c:1646  */
+#line 3080 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 233:
-#line 972 "./util/configparser.y" /* yacc.c:1646  */
+  case 234:
+#line 974 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3084,21 +3088,21 @@ yyreduce:
                else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3088 "util/configparser.c" /* yacc.c:1646  */
+#line 3092 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 234:
-#line 981 "./util/configparser.y" /* yacc.c:1646  */
+  case 235:
+#line 983 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3098 "util/configparser.c" /* yacc.c:1646  */
+#line 3102 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 235:
-#line 988 "./util/configparser.y" /* yacc.c:1646  */
+  case 236:
+#line 990 "./util/configparser.y" /* yacc.c:1646  */
     {
                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)
@@ -3107,11 +3111,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3111 "util/configparser.c" /* yacc.c:1646  */
+#line 3115 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 236:
-#line 998 "./util/configparser.y" /* yacc.c:1646  */
+  case 237:
+#line 1000 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 &&
@@ -3127,21 +3131,21 @@ yyreduce:
                                fatal_exit("out of memory adding acl");
                }
        }
-#line 3131 "util/configparser.c" /* yacc.c:1646  */
+#line 3135 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 237:
-#line 1015 "./util/configparser.y" /* yacc.c:1646  */
+  case 238:
+#line 1017 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3141 "util/configparser.c" /* yacc.c:1646  */
+#line 3145 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 238:
-#line 1022 "./util/configparser.y" /* yacc.c:1646  */
+  case 239:
+#line 1024 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str)));
                if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -3158,11 +3162,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3162 "util/configparser.c" /* yacc.c:1646  */
+#line 3166 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 239:
-#line 1040 "./util/configparser.y" /* yacc.c:1646  */
+  case 240:
+#line 1042 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str)));
                if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -3174,11 +3178,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3178 "util/configparser.c" /* yacc.c:1646  */
+#line 3182 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 240:
-#line 1053 "./util/configparser.y" /* yacc.c:1646  */
+  case 241:
+#line 1055 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str)));
                if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -3190,11 +3194,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3194 "util/configparser.c" /* yacc.c:1646  */
+#line 3198 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 241:
-#line 1066 "./util/configparser.y" /* yacc.c:1646  */
+  case 242:
+#line 1068 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3202,11 +3206,11 @@ yyreduce:
                else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3206 "util/configparser.c" /* yacc.c:1646  */
+#line 3210 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 242:
-#line 1075 "./util/configparser.y" /* yacc.c:1646  */
+  case 243:
+#line 1077 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3214,11 +3218,11 @@ yyreduce:
                else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3218 "util/configparser.c" /* yacc.c:1646  */
+#line 3222 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 243:
-#line 1084 "./util/configparser.y" /* yacc.c:1646  */
+  case 244:
+#line 1086 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3226,11 +3230,11 @@ yyreduce:
                else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3230 "util/configparser.c" /* yacc.c:1646  */
+#line 3234 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 244:
-#line 1093 "./util/configparser.y" /* yacc.c:1646  */
+  case 245:
+#line 1095 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3238,11 +3242,11 @@ yyreduce:
                else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3242 "util/configparser.c" /* yacc.c:1646  */
+#line 3246 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 245:
-#line 1102 "./util/configparser.y" /* yacc.c:1646  */
+  case 246:
+#line 1104 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3251,11 +3255,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3255 "util/configparser.c" /* yacc.c:1646  */
+#line 3259 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 246:
-#line 1112 "./util/configparser.y" /* yacc.c:1646  */
+  case 247:
+#line 1114 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3264,11 +3268,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3268 "util/configparser.c" /* yacc.c:1646  */
+#line 3272 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 247:
-#line 1122 "./util/configparser.y" /* yacc.c:1646  */
+  case 248:
+#line 1124 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3276,11 +3280,11 @@ yyreduce:
                else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3280 "util/configparser.c" /* yacc.c:1646  */
+#line 3284 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 248:
-#line 1131 "./util/configparser.y" /* yacc.c:1646  */
+  case 249:
+#line 1133 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3288,21 +3292,21 @@ yyreduce:
                else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3292 "util/configparser.c" /* yacc.c:1646  */
+#line 3296 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 249:
-#line 1140 "./util/configparser.y" /* yacc.c:1646  */
+  case 250:
+#line 1142 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3302 "util/configparser.c" /* yacc.c:1646  */
+#line 3306 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 250:
-#line 1147 "./util/configparser.y" /* yacc.c:1646  */
+  case 251:
+#line 1149 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3310,11 +3314,11 @@ yyreduce:
                else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3314 "util/configparser.c" /* yacc.c:1646  */
+#line 3318 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 251:
-#line 1156 "./util/configparser.y" /* yacc.c:1646  */
+  case 252:
+#line 1158 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3322,11 +3326,11 @@ yyreduce:
                else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3326 "util/configparser.c" /* yacc.c:1646  */
+#line 3330 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 252:
-#line 1165 "./util/configparser.y" /* yacc.c:1646  */
+  case 253:
+#line 1167 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3334,11 +3338,11 @@ yyreduce:
                else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3338 "util/configparser.c" /* yacc.c:1646  */
+#line 3342 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 253:
-#line 1174 "./util/configparser.y" /* yacc.c:1646  */
+  case 254:
+#line 1176 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3347,22 +3351,22 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3351 "util/configparser.c" /* yacc.c:1646  */
+#line 3355 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 254:
-#line 1183 "./util/configparser.y" /* yacc.c:1646  */
+  case 255:
+#line 1185 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3362 "util/configparser.c" /* yacc.c:1646  */
+#line 3366 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 255:
-#line 1191 "./util/configparser.y" /* yacc.c:1646  */
+  case 256:
+#line 1193 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3374,22 +3378,22 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3378 "util/configparser.c" /* yacc.c:1646  */
+#line 3382 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 256:
-#line 1204 "./util/configparser.y" /* yacc.c:1646  */
+  case 257:
+#line 1206 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3389 "util/configparser.c" /* yacc.c:1646  */
+#line 3393 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 257:
-#line 1212 "./util/configparser.y" /* yacc.c:1646  */
+  case 258:
+#line 1214 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 &&
@@ -3412,21 +3416,21 @@ yyreduce:
                                fatal_exit("out of memory adding local-zone");
                }
        }
-#line 3416 "util/configparser.c" /* yacc.c:1646  */
+#line 3420 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 258:
-#line 1236 "./util/configparser.y" /* yacc.c:1646  */
+  case 259:
+#line 1238 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3426 "util/configparser.c" /* yacc.c:1646  */
+#line 3430 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 259:
-#line 1243 "./util/configparser.y" /* yacc.c:1646  */
+  case 260:
+#line 1245 "./util/configparser.y" /* yacc.c:1646  */
     {
                char* ptr;
                OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str)));
@@ -3440,11 +3444,11 @@ yyreduce:
                        yyerror("local-data-ptr could not be reversed");
                }
        }
-#line 3444 "util/configparser.c" /* yacc.c:1646  */
+#line 3448 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 260:
-#line 1258 "./util/configparser.y" /* yacc.c:1646  */
+  case 261:
+#line 1260 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3453,11 +3457,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3457 "util/configparser.c" /* yacc.c:1646  */
+#line 3461 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 261:
-#line 1268 "./util/configparser.y" /* yacc.c:1646  */
+  case 262:
+#line 1270 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3466,31 +3470,31 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3470 "util/configparser.c" /* yacc.c:1646  */
+#line 3474 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 262:
-#line 1278 "./util/configparser.y" /* yacc.c:1646  */
+  case 263:
+#line 1280 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3480 "util/configparser.c" /* yacc.c:1646  */
+#line 3484 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 263:
-#line 1285 "./util/configparser.y" /* yacc.c:1646  */
+  case 264:
+#line 1287 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dns64_prefix);
                cfg_parser->cfg->dns64_prefix = (yyvsp[0].str);
        }
-#line 3490 "util/configparser.c" /* yacc.c:1646  */
+#line 3494 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 264:
-#line 1292 "./util/configparser.y" /* yacc.c:1646  */
+  case 265:
+#line 1294 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3498,11 +3502,11 @@ yyreduce:
                else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3502 "util/configparser.c" /* yacc.c:1646  */
+#line 3506 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 265:
-#line 1301 "./util/configparser.y" /* yacc.c:1646  */
+  case 266:
+#line 1303 "./util/configparser.y" /* yacc.c:1646  */
     {
                char* p, *s = (yyvsp[0].str);
                OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str)));
@@ -3515,11 +3519,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3519 "util/configparser.c" /* yacc.c:1646  */
+#line 3523 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 266:
-#line 1315 "./util/configparser.y" /* yacc.c:1646  */
+  case 267:
+#line 1317 "./util/configparser.y" /* yacc.c:1646  */
     {
                size_t len = 0;
                uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -3537,11 +3541,11 @@ yyreduce:
                        }
                }
        }
-#line 3541 "util/configparser.c" /* yacc.c:1646  */
+#line 3545 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 267:
-#line 1334 "./util/configparser.y" /* yacc.c:1646  */
+  case 268:
+#line 1336 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); 
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3549,22 +3553,22 @@ yyreduce:
                else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3553 "util/configparser.c" /* yacc.c:1646  */
+#line 3557 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 268:
-#line 1343 "./util/configparser.y" /* yacc.c:1646  */
+  case 269:
+#line 1345 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3564 "util/configparser.c" /* yacc.c:1646  */
+#line 3568 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 269:
-#line 1351 "./util/configparser.y" /* yacc.c:1646  */
+  case 270:
+#line 1353 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3576,11 +3580,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3580 "util/configparser.c" /* yacc.c:1646  */
+#line 3584 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 270:
-#line 1364 "./util/configparser.y" /* yacc.c:1646  */
+  case 271:
+#line 1366 "./util/configparser.y" /* yacc.c:1646  */
     {
                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) {
@@ -3592,11 +3596,11 @@ yyreduce:
                                        "ratelimit-for-domain");
                }
        }
-#line 3596 "util/configparser.c" /* yacc.c:1646  */
+#line 3600 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 271:
-#line 1377 "./util/configparser.y" /* yacc.c:1646  */
+  case 272:
+#line 1379 "./util/configparser.y" /* yacc.c:1646  */
     {
                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) {
@@ -3608,11 +3612,11 @@ yyreduce:
                                        "ratelimit-below-domain");
                }
        }
-#line 3612 "util/configparser.c" /* yacc.c:1646  */
+#line 3616 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 272:
-#line 1390 "./util/configparser.y" /* yacc.c:1646  */
+  case 273:
+#line 1392 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); 
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3620,11 +3624,11 @@ yyreduce:
                else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3624 "util/configparser.c" /* yacc.c:1646  */
+#line 3628 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 273:
-#line 1399 "./util/configparser.y" /* yacc.c:1646  */
+  case 274:
+#line 1401 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3633,11 +3637,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3637 "util/configparser.c" /* yacc.c:1646  */
+#line 3641 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 274:
-#line 1409 "./util/configparser.y" /* yacc.c:1646  */
+  case 275:
+#line 1411 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->stubs->name)
@@ -3646,31 +3650,31 @@ yyreduce:
                free(cfg_parser->cfg->stubs->name);
                cfg_parser->cfg->stubs->name = (yyvsp[0].str);
        }
-#line 3650 "util/configparser.c" /* yacc.c:1646  */
+#line 3654 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 275:
-#line 1419 "./util/configparser.y" /* yacc.c:1646  */
+  case 276:
+#line 1421 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3660 "util/configparser.c" /* yacc.c:1646  */
+#line 3664 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 276:
-#line 1426 "./util/configparser.y" /* yacc.c:1646  */
+  case 277:
+#line 1428 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3670 "util/configparser.c" /* yacc.c:1646  */
+#line 3674 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 277:
-#line 1433 "./util/configparser.y" /* yacc.c:1646  */
+  case 278:
+#line 1435 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3678,11 +3682,11 @@ yyreduce:
                else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3682 "util/configparser.c" /* yacc.c:1646  */
+#line 3686 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 278:
-#line 1442 "./util/configparser.y" /* yacc.c:1646  */
+  case 279:
+#line 1444 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3691,11 +3695,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3695 "util/configparser.c" /* yacc.c:1646  */
+#line 3699 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 279:
-#line 1452 "./util/configparser.y" /* yacc.c:1646  */
+  case 280:
+#line 1454 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->forwards->name)
@@ -3704,31 +3708,31 @@ yyreduce:
                free(cfg_parser->cfg->forwards->name);
                cfg_parser->cfg->forwards->name = (yyvsp[0].str);
        }
-#line 3708 "util/configparser.c" /* yacc.c:1646  */
+#line 3712 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 280:
-#line 1462 "./util/configparser.y" /* yacc.c:1646  */
+  case 281:
+#line 1464 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3718 "util/configparser.c" /* yacc.c:1646  */
+#line 3722 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 281:
-#line 1469 "./util/configparser.y" /* yacc.c:1646  */
+  case 282:
+#line 1471 "./util/configparser.y" /* yacc.c:1646  */
     {
                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 3728 "util/configparser.c" /* yacc.c:1646  */
+#line 3732 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 282:
-#line 1476 "./util/configparser.y" /* yacc.c:1646  */
+  case 283:
+#line 1478 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3736,19 +3740,19 @@ yyreduce:
                else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3740 "util/configparser.c" /* yacc.c:1646  */
+#line 3744 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 283:
-#line 1485 "./util/configparser.y" /* yacc.c:1646  */
+  case 284:
+#line 1487 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("\nP(remote-control:)\n")); 
        }
-#line 3748 "util/configparser.c" /* yacc.c:1646  */
+#line 3752 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 294:
-#line 1496 "./util/configparser.y" /* yacc.c:1646  */
+  case 295:
+#line 1498 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3757,11 +3761,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3761 "util/configparser.c" /* yacc.c:1646  */
+#line 3765 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 295:
-#line 1506 "./util/configparser.y" /* yacc.c:1646  */
+  case 296:
+#line 1508 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(control_port:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3769,21 +3773,21 @@ yyreduce:
                else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3773 "util/configparser.c" /* yacc.c:1646  */
+#line 3777 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 296:
-#line 1515 "./util/configparser.y" /* yacc.c:1646  */
+  case 297:
+#line 1517 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3783 "util/configparser.c" /* yacc.c:1646  */
+#line 3787 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 297:
-#line 1522 "./util/configparser.y" /* yacc.c:1646  */
+  case 298:
+#line 1524 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3792,122 +3796,122 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3796 "util/configparser.c" /* yacc.c:1646  */
+#line 3800 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 298:
-#line 1532 "./util/configparser.y" /* yacc.c:1646  */
+  case 299:
+#line 1534 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->server_key_file);
                cfg_parser->cfg->server_key_file = (yyvsp[0].str);
        }
-#line 3806 "util/configparser.c" /* yacc.c:1646  */
+#line 3810 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 299:
-#line 1539 "./util/configparser.y" /* yacc.c:1646  */
+  case 300:
+#line 1541 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->server_cert_file);
                cfg_parser->cfg->server_cert_file = (yyvsp[0].str);
        }
-#line 3816 "util/configparser.c" /* yacc.c:1646  */
+#line 3820 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 300:
-#line 1546 "./util/configparser.y" /* yacc.c:1646  */
+  case 301:
+#line 1548 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->control_key_file);
                cfg_parser->cfg->control_key_file = (yyvsp[0].str);
        }
-#line 3826 "util/configparser.c" /* yacc.c:1646  */
+#line 3830 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 301:
-#line 1553 "./util/configparser.y" /* yacc.c:1646  */
+  case 302:
+#line 1555 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->control_cert_file);
                cfg_parser->cfg->control_cert_file = (yyvsp[0].str);
        }
-#line 3836 "util/configparser.c" /* yacc.c:1646  */
+#line 3840 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 302:
-#line 1560 "./util/configparser.y" /* yacc.c:1646  */
+  case 303:
+#line 1562 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("\nP(dnstap:)\n"));
        }
-#line 3844 "util/configparser.c" /* yacc.c:1646  */
+#line 3848 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 317:
-#line 1577 "./util/configparser.y" /* yacc.c:1646  */
+  case 318:
+#line 1579 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 3855 "util/configparser.c" /* yacc.c:1646  */
+#line 3859 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 318:
-#line 1585 "./util/configparser.y" /* yacc.c:1646  */
+  case 319:
+#line 1587 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dnstap_socket_path);
                cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str);
        }
-#line 3865 "util/configparser.c" /* yacc.c:1646  */
+#line 3869 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 319:
-#line 1592 "./util/configparser.y" /* yacc.c:1646  */
+  case 320:
+#line 1594 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 3876 "util/configparser.c" /* yacc.c:1646  */
+#line 3880 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 320:
-#line 1600 "./util/configparser.y" /* yacc.c:1646  */
+  case 321:
+#line 1602 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 3887 "util/configparser.c" /* yacc.c:1646  */
+#line 3891 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 321:
-#line 1608 "./util/configparser.y" /* yacc.c:1646  */
+  case 322:
+#line 1610 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dnstap_identity);
                cfg_parser->cfg->dnstap_identity = (yyvsp[0].str);
        }
-#line 3897 "util/configparser.c" /* yacc.c:1646  */
+#line 3901 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 322:
-#line 1615 "./util/configparser.y" /* yacc.c:1646  */
+  case 323:
+#line 1617 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dnstap_version);
                cfg_parser->cfg->dnstap_version = (yyvsp[0].str);
        }
-#line 3907 "util/configparser.c" /* yacc.c:1646  */
+#line 3911 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 323:
-#line 1622 "./util/configparser.y" /* yacc.c:1646  */
+  case 324:
+#line 1624 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3915,11 +3919,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_resolver_query_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 3919 "util/configparser.c" /* yacc.c:1646  */
+#line 3923 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 324:
-#line 1631 "./util/configparser.y" /* yacc.c:1646  */
+  case 325:
+#line 1633 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3927,11 +3931,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_resolver_response_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 3931 "util/configparser.c" /* yacc.c:1646  */
+#line 3935 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 325:
-#line 1640 "./util/configparser.y" /* yacc.c:1646  */
+  case 326:
+#line 1642 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3939,11 +3943,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_client_query_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 3943 "util/configparser.c" /* yacc.c:1646  */
+#line 3947 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 326:
-#line 1649 "./util/configparser.y" /* yacc.c:1646  */
+  case 327:
+#line 1651 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3951,11 +3955,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_client_response_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 3955 "util/configparser.c" /* yacc.c:1646  */
+#line 3959 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 327:
-#line 1658 "./util/configparser.y" /* yacc.c:1646  */
+  case 328:
+#line 1660 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3963,11 +3967,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_forwarder_query_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 3967 "util/configparser.c" /* yacc.c:1646  */
+#line 3971 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 328:
-#line 1667 "./util/configparser.y" /* yacc.c:1646  */
+  case 329:
+#line 1669 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3975,29 +3979,41 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_forwarder_response_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 3979 "util/configparser.c" /* yacc.c:1646  */
+#line 3983 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 329:
-#line 1676 "./util/configparser.y" /* yacc.c:1646  */
+  case 330:
+#line 1678 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("\nP(python:)\n")); 
        }
-#line 3987 "util/configparser.c" /* yacc.c:1646  */
+#line 3991 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 333:
-#line 1685 "./util/configparser.y" /* yacc.c:1646  */
+  case 334:
+#line 1687 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(python-script:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->python_script);
                cfg_parser->cfg->python_script = (yyvsp[0].str);
        }
-#line 3997 "util/configparser.c" /* yacc.c:1646  */
+#line 4001 "util/configparser.c" /* yacc.c:1646  */
+    break;
+
+  case 335:
+#line 1693 "./util/configparser.y" /* yacc.c:1646  */
+    {
+               OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str)));
+               if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+                       yyerror("expected yes or no.");
+               else cfg_parser->cfg->disable_dnssec_lame_check =
+                       (strcmp((yyvsp[0].str), "yes")==0);
+       }
+#line 4013 "util/configparser.c" /* yacc.c:1646  */
     break;
 
 
-#line 4001 "util/configparser.c" /* yacc.c:1646  */
+#line 4017 "util/configparser.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -4225,7 +4241,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 1690 "./util/configparser.y" /* yacc.c:1906  */
+#line 1700 "./util/configparser.y" /* yacc.c:1906  */
 
 
 /* parse helper routines could be here */
index 2930ca01b0aa81e2c2f31e3a5122ef363f60e033..40f157e9a44bb588136255e41dea8dc3e322b77f 100644 (file)
@@ -198,19 +198,20 @@ extern int yydebug;
     VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 408,
     VAR_HARDEN_ALGO_DOWNGRADE = 409,
     VAR_IP_TRANSPARENT = 410,
-    VAR_RATELIMIT = 411,
-    VAR_RATELIMIT_SLABS = 412,
-    VAR_RATELIMIT_SIZE = 413,
-    VAR_RATELIMIT_FOR_DOMAIN = 414,
-    VAR_RATELIMIT_BELOW_DOMAIN = 415,
-    VAR_RATELIMIT_FACTOR = 416,
-    VAR_CAPS_WHITELIST = 417,
-    VAR_CACHE_MAX_NEGATIVE_TTL = 418,
-    VAR_PERMIT_SMALL_HOLDDOWN = 419,
-    VAR_QNAME_MINIMISATION = 420,
-    VAR_IP_FREEBIND = 421,
-    VAR_DEFINE_TAG = 422,
-    VAR_LOCAL_ZONE_TAG = 423
+    VAR_DISABLE_DNSSEC_LAME_CHECK = 411,
+    VAR_RATELIMIT = 412,
+    VAR_RATELIMIT_SLABS = 413,
+    VAR_RATELIMIT_SIZE = 414,
+    VAR_RATELIMIT_FOR_DOMAIN = 415,
+    VAR_RATELIMIT_BELOW_DOMAIN = 416,
+    VAR_RATELIMIT_FACTOR = 417,
+    VAR_CAPS_WHITELIST = 418,
+    VAR_CACHE_MAX_NEGATIVE_TTL = 419,
+    VAR_PERMIT_SMALL_HOLDDOWN = 420,
+    VAR_QNAME_MINIMISATION = 421,
+    VAR_IP_FREEBIND = 422,
+    VAR_DEFINE_TAG = 423,
+    VAR_LOCAL_ZONE_TAG = 424
   };
 #endif
 /* Tokens.  */
@@ -367,19 +368,20 @@ extern int yydebug;
 #define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 408
 #define VAR_HARDEN_ALGO_DOWNGRADE 409
 #define VAR_IP_TRANSPARENT 410
-#define VAR_RATELIMIT 411
-#define VAR_RATELIMIT_SLABS 412
-#define VAR_RATELIMIT_SIZE 413
-#define VAR_RATELIMIT_FOR_DOMAIN 414
-#define VAR_RATELIMIT_BELOW_DOMAIN 415
-#define VAR_RATELIMIT_FACTOR 416
-#define VAR_CAPS_WHITELIST 417
-#define VAR_CACHE_MAX_NEGATIVE_TTL 418
-#define VAR_PERMIT_SMALL_HOLDDOWN 419
-#define VAR_QNAME_MINIMISATION 420
-#define VAR_IP_FREEBIND 421
-#define VAR_DEFINE_TAG 422
-#define VAR_LOCAL_ZONE_TAG 423
+#define VAR_DISABLE_DNSSEC_LAME_CHECK 411
+#define VAR_RATELIMIT 412
+#define VAR_RATELIMIT_SLABS 413
+#define VAR_RATELIMIT_SIZE 414
+#define VAR_RATELIMIT_FOR_DOMAIN 415
+#define VAR_RATELIMIT_BELOW_DOMAIN 416
+#define VAR_RATELIMIT_FACTOR 417
+#define VAR_CAPS_WHITELIST 418
+#define VAR_CACHE_MAX_NEGATIVE_TTL 419
+#define VAR_PERMIT_SMALL_HOLDDOWN 420
+#define VAR_QNAME_MINIMISATION 421
+#define VAR_IP_FREEBIND 422
+#define VAR_DEFINE_TAG 423
+#define VAR_LOCAL_ZONE_TAG 424
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -390,7 +392,7 @@ union YYSTYPE
 
        char*   str;
 
-#line 394 "util/configparser.h" /* yacc.c:1909  */
+#line 396 "util/configparser.h" /* yacc.c:1909  */
 };
 
 typedef union YYSTYPE YYSTYPE;
index d4201c92111858b2be0dc4461c229d87c9f2d35e..ee1dead5d925f8fe2ef9f7ac18ba43aef773e411 100644 (file)
@@ -121,6 +121,7 @@ extern struct config_parser_state* cfg_parser;
 %token VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES
 %token VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES
 %token VAR_HARDEN_ALGO_DOWNGRADE VAR_IP_TRANSPARENT
+%token VAR_DISABLE_DNSSEC_LAME_CHECK
 %token VAR_RATELIMIT VAR_RATELIMIT_SLABS VAR_RATELIMIT_SIZE
 %token VAR_RATELIMIT_FOR_DOMAIN VAR_RATELIMIT_BELOW_DOMAIN VAR_RATELIMIT_FACTOR
 %token VAR_CAPS_WHITELIST VAR_CACHE_MAX_NEGATIVE_TTL VAR_PERMIT_SMALL_HOLDDOWN
@@ -192,7 +193,8 @@ content_server: server_num_threads | server_verbosity | server_port |
        server_ratelimit_below_domain | server_ratelimit_factor |
        server_caps_whitelist | server_cache_max_negative_ttl |
        server_permit_small_holddown | server_qname_minimisation |
-       server_ip_freebind | server_define_tag | server_local_zone_tag
+       server_ip_freebind | server_define_tag | server_local_zone_tag |
+       server_disable_dnssec_lame_check
        ;
 stubstart: VAR_STUB_ZONE
        {
@@ -1687,6 +1689,14 @@ py_script: VAR_PYTHON_SCRIPT STRING_ARG
                free(cfg_parser->cfg->python_script);
                cfg_parser->cfg->python_script = $2;
        }
+server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG
+       {
+               OUTYY(("P(disable_dnssec_lame_check:%s)\n", $2));
+               if (strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
+                       yyerror("expected yes or no.");
+               else cfg_parser->cfg->disable_dnssec_lame_check =
+                       (strcmp($2, "yes")==0);
+       }
 %%
 
 /* parse helper routines could be here */