From 1a0bd1a150181087701da436d31b3cb99e4e7487 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Mon, 28 May 2018 14:15:06 +0000 Subject: [PATCH] - tls-win-cert option that adds the system certificate store for authenticating DNS-over-TLS connections. It can be used instead of the tls-cert-bundle option, or with it to add certificates. git-svn-id: file:///svn/unbound/trunk@4698 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 3 + doc/example.conf.in | 3 + doc/unbound.conf.5.in | 10 + util/config_file.c | 2 + util/configlexer.c | 4103 +++++++++++++++++++++-------------------- util/configlexer.lex | 1 + util/configparser.c | 1986 ++++++++++---------- util/configparser.h | 6 +- util/configparser.y | 13 +- 9 files changed, 3095 insertions(+), 3032 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index fe1310f98..1fe32cee6 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,9 @@ 28 May 2018: Wouter - Fix windows tcp and tls spin on events. - Add routine from getdns to add windows cert store to the SSL_CTX. + - tls-win-cert option that adds the system certificate store for + authenticating DNS-over-TLS connections. It can be used instead + of the tls-cert-bundle option, or with it to add certificates. 25 May 2018: Wouter - For TCP and TLS connections that don't establish, perform address diff --git a/doc/example.conf.in b/doc/example.conf.in index 18659a174..fae36b918 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -681,6 +681,9 @@ server: # Certificates used to authenticate connections made upstream. # tls-cert-bundle: "" + # Add system certs to the cert bundle, from the Windows Cert Store + # tls-win-cert: no + # Also serve tls on these port numbers (eg. 443, ...), by listing # additional-tls-port: portno for each of the port numbers. diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index be07d2d17..182dfd45d 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -403,6 +403,8 @@ Enabled or disable whether the upstream queries use TLS only for transport. Default is no. Useful in tunneling scenarios. The TLS contains plain DNS in TCP wireformat. The other server must support this (see \fBtls\-service\-key\fR). +If you enable this, also configure a tls\-cert\-bundle or use tls\-win\cert to +load CA certs, otherwise the connections cannot be authenticated. .TP .B ssl\-upstream: \fI Alternate syntax for \fBtls\-upstream\fR. If both are present in the config @@ -444,6 +446,12 @@ urls, and also DNS over TLS connections. .B ssl\-cert\-bundle: \fI Alternate syntax for \fBtls\-cert\-bundle\fR. .TP +.B tls\-win\-cert: \fI +Add the system certificates to the cert bundle certificates for authentication. +If no cert bundle, it uses only these certificates. Default is no. +On windows this option uses the certificates from the cert store. Use +the tls\-cert\-bundle option on other systems. +.TP .B additional\-tls\-port: \fI List portnumbers as additional\-tls\-port, and when interfaces are defined, eg. with the @port suffix, as this port number, they provide dns over TLS @@ -1490,6 +1498,8 @@ The default is no. .B forward\-tls\-upstream: \fI Enabled or disable whether the queries to this forwarder use TLS for transport. Default is no. +If you enable this, also configure a tls\-cert\-bundle or use tls\-win\cert to +load CA certs, otherwise the connections cannot be authenticated. .TP .B forward\-ssl\-upstream: \fI Alternate syntax for \fBforward\-tls\-upstream\fR. diff --git a/util/config_file.c b/util/config_file.c index 9f623533f..539fe135d 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -456,6 +456,7 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_STR("ssl-service-pem:", ssl_service_pem) else S_NUMBER_NONZERO("ssl-port:", ssl_port) else S_STR("tls-cert-bundle:", tls_cert_bundle) + else S_YNO("tls-win-cert:", tls_win_cert) else S_STRLIST("additional-tls-port:", additional_tls_port) else S_YNO("interface-automatic:", if_automatic) else S_YNO("use-systemd:", use_systemd) @@ -876,6 +877,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_STR(opt, "ssl-service-pem", ssl_service_pem) else O_DEC(opt, "ssl-port", ssl_port) else O_STR(opt, "tls-cert-bundle", tls_cert_bundle) + else O_YNO(opt, "tls-win-cert", tls_win_cert) else O_LST(opt, "additional-tls-port", additional_tls_port) else O_YNO(opt, "use-systemd", use_systemd) else O_YNO(opt, "do-daemonize", do_daemonize) diff --git a/util/configlexer.c b/util/configlexer.c index c1d88702f..1cfee8024 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -10,7 +10,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 4 +#define YY_FLEX_SUBMINOR_VERSION 1 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -85,16 +85,10 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif -#ifndef SIZE_MAX -#define SIZE_MAX (~(size_t)0) -#endif - #endif /* ! C99 */ #endif /* ! FLEXINT_H */ -/* begin standard C++ headers. */ - /* TODO: this is always defined, so inline it */ #define yyconst const @@ -107,26 +101,32 @@ typedef unsigned int flex_uint32_t; /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an - * integer in range [0..255] for use as an array index. +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. */ -#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * + /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START + /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart( yyin ) +#define YY_NEW_FILE yyrestart(yyin ) + #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ @@ -163,7 +163,7 @@ extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) #define YY_LINENO_REWIND_TO(ptr) @@ -172,7 +172,7 @@ extern FILE *yyin, *yyout; do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ @@ -180,6 +180,7 @@ extern FILE *yyin, *yyout; YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) + #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -222,7 +223,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -261,6 +262,7 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) + /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ @@ -281,56 +283,62 @@ static int yy_start = 0; /* start state number */ */ static int yy_did_buffer_switch_on_eof; -void yyrestart ( FILE *input_file ); -void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); -void yy_delete_buffer ( YY_BUFFER_STATE b ); -void yy_flush_buffer ( YY_BUFFER_STATE b ); -void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); -void yypop_buffer_state ( void ); +void yyrestart (FILE *input_file ); +void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); +void yy_delete_buffer (YY_BUFFER_STATE b ); +void yy_flush_buffer (YY_BUFFER_STATE b ); +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state (void ); -static void yyensure_buffer_stack ( void ); -static void yy_load_buffer_state ( void ); -static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); -#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) +static void yyensure_buffer_stack (void ); +static void yy_load_buffer_state (void ); +static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); -YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); -YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); +#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) -void *yyalloc ( yy_size_t ); -void *yyrealloc ( void *, yy_size_t ); -void yyfree ( void * ); +YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); + +void *yyalloc (yy_size_t ); +void *yyrealloc (void *,yy_size_t ); +void yyfree (void * ); #define yy_new_buffer yy_create_buffer + #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer( yyin, YY_BUF_SIZE ); \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } + #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer( yyin, YY_BUF_SIZE ); \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } + #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ -typedef flex_uint8_t YY_CHAR; + +typedef unsigned char YY_CHAR; FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; + int yylineno = 1; extern char *yytext; @@ -339,10 +347,10 @@ extern char *yytext; #endif #define yytext_ptr yytext -static yy_state_type yy_get_previous_state ( void ); -static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); -static int yy_get_next_buffer ( void ); -static void yynoreturn yy_fatal_error ( const char* msg ); +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +static void yynoreturn yy_fatal_error (yyconst char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. @@ -354,8 +362,9 @@ static void yynoreturn yy_fatal_error ( const char* msg ); (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 264 -#define YY_END_OF_BUFFER 265 + +#define YY_NUM_RULES 265 +#define YY_END_OF_BUFFER 266 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -363,298 +372,299 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[2605] = +static yyconst flex_int16_t yy_accept[2614] = { 0, - 1, 1, 246, 246, 250, 250, 254, 254, 258, 258, - 1, 1, 265, 262, 1, 244, 244, 263, 2, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 246, 247, 247, 248, 263, 250, 251, 251, - 252, 263, 257, 254, 255, 255, 256, 263, 258, 259, - 259, 260, 263, 261, 245, 2, 249, 263, 261, 262, - 0, 1, 2, 2, 2, 2, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 1, 1, 247, 247, 251, 251, 255, 255, 259, 259, + 1, 1, 266, 263, 1, 245, 245, 264, 2, 264, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 247, 248, 248, 249, 264, 251, 252, 252, + 253, 264, 258, 255, 256, 256, 257, 264, 259, 260, + 260, 261, 264, 262, 246, 2, 250, 264, 262, 263, + 0, 1, 2, 2, 2, 2, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 246, - 0, 250, 0, 257, 0, 254, 258, 0, 261, 0, - 2, 2, 261, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 247, + 0, 251, 0, 258, 0, 255, 259, 0, 262, 0, + 2, 2, 262, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 261, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 262, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 101, 262, 262, 262, 262, 262, 262, 262, 261, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 102, 263, 263, 263, 263, 263, 263, 263, 262, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 262, 262, 262, 262, 262, 85, 262, 262, 262, 262, - 262, 262, 8, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 106, 262, 261, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 263, 263, 263, 263, 263, 86, 263, 263, 263, 263, + 263, 263, 8, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 107, 263, 262, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 261, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 45, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 190, 262, 14, 15, 262, - 18, 17, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 100, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 176, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 263, 263, 262, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 46, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 191, 263, 14, + 15, 263, 18, 17, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 101, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 177, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 262, 262, 3, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 261, 262, 262, 262, - 262, 262, 262, 262, 238, 262, 262, 237, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 253, 262, + 263, 263, 263, 263, 3, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 262, + 263, 263, 263, 263, 263, 263, 263, 239, 263, 263, + 238, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 48, - 262, 214, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 49, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 165, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 20, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 121, 262, 262, 253, 262, 262, + 263, 254, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 49, 263, 215, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 50, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 166, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 20, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 122, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 220, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 140, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 120, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 83, 262, 262, 262, 262, 262, 262, + 263, 254, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 221, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 141, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 121, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 84, 263, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 28, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 29, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 46, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 99, 262, 262, 262, 262, 262, 98, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 47, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 141, 262, 262, 262, 262, 262, 262, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 28, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 29, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 47, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 100, 263, 263, + 263, 263, 263, 99, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 48, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 142, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 36, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 205, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 40, - 262, 41, 262, 262, 262, 262, 86, 262, 87, 262, - 262, 262, 84, 262, 262, 262, 262, 262, 262, 262, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 37, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 206, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 41, 263, 42, 263, 263, 263, + 263, 87, 263, 88, 263, 263, 263, 85, 263, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 7, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 183, 262, 262, 262, 262, 123, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 37, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 157, 262, 156, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 7, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 184, 263, + 263, 263, 263, 124, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 38, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 16, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 50, 262, 262, 262, 262, 262, - 262, 262, 262, 164, 262, 262, 262, 262, 262, 89, - 88, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 151, 262, 262, 262, 262, 262, - 262, 262, 262, 107, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 68, 262, 262, 262, 262, 262, 262, + 263, 263, 263, 158, 263, 157, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 16, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 51, 263, 263, 263, 263, 263, 263, 263, 263, 165, + 263, 263, 263, 263, 263, 90, 89, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 152, 263, 263, 263, 263, 263, 263, 263, 263, + 108, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 72, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 44, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 154, 155, 262, 215, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 6, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 218, 262, 262, 262, 239, + 69, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 73, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 45, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 155, 156, 263, + 216, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 6, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 34, 262, 262, 262, 262, 262, 262, - 262, 262, 147, 262, 262, 262, 102, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 169, 262, 148, - 262, 262, 181, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 35, - 262, 262, 262, 262, 262, 262, 104, 93, 262, 94, - 262, 262, 92, 262, 262, 262, 262, 262, 262, 262, - 262, 118, 262, 262, 262, 262, 262, 262, 262, 262, + 263, 263, 219, 263, 263, 263, 240, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 35, 263, 263, 263, 263, 263, 263, 263, 263, + 148, 263, 263, 263, 103, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 170, 263, 149, 263, 263, + 182, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 36, 263, 263, + 263, 263, 263, 263, 105, 94, 263, 95, 263, 263, + 93, 263, 263, 263, 263, 263, 263, 263, 263, 119, - 262, 262, 262, 204, 262, 262, 262, 262, 262, 262, - 262, 262, 149, 262, 262, 262, 262, 262, 152, 262, - 262, 262, 180, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 82, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 42, 262, - 262, 262, 22, 262, 262, 262, 262, 262, 19, 262, - 262, 262, 23, 262, 128, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 57, 59, 262, 262, 262, 262, 262, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 205, 263, 263, 263, 263, 263, 263, 263, 263, + 150, 263, 263, 263, 263, 263, 153, 263, 263, 263, + 181, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 83, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 43, 263, 263, 263, + 22, 263, 263, 263, 263, 263, 19, 263, 263, 263, + 23, 32, 263, 129, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 262, 262, 262, 262, 262, 262, 262, 222, 262, 262, - 262, 191, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 95, 262, 262, - 262, 262, 262, 262, 262, 262, 117, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 233, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 122, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 175, 262, 262, 262, 262, 262, 262, 262, 262, - 242, 262, 262, 262, 262, 262, 262, 262, 262, 139, + 263, 263, 58, 60, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 223, 263, 263, 263, + 192, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 96, 263, 263, 263, + 263, 263, 263, 263, 263, 118, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 234, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 123, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 176, 263, 263, 263, 263, 263, 263, 263, 263, 243, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 134, 262, 142, 262, 262, 262, 262, 262, 110, 262, - 262, 262, 262, 262, 78, 262, 262, 262, 262, 167, - 262, 262, 262, 262, 262, 182, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 196, 262, - 262, 262, 262, 262, 262, 103, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 138, 262, 262, 262, 262, - 262, 60, 61, 262, 262, 262, 262, 262, 43, 262, - 262, 262, 262, 262, 67, 143, 262, 158, 262, 184, + 263, 263, 263, 263, 263, 263, 263, 263, 140, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 135, + 263, 143, 263, 263, 263, 263, 263, 111, 263, 263, + 263, 263, 263, 79, 263, 263, 263, 263, 168, 263, + 263, 263, 263, 263, 183, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 197, 263, 263, + 263, 263, 263, 263, 104, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 139, 263, 263, 263, 263, 263, + 61, 62, 263, 263, 263, 263, 263, 44, 263, 263, - 153, 216, 262, 262, 262, 53, 262, 145, 262, 262, - 262, 262, 262, 9, 262, 262, 262, 81, 262, 262, - 262, 262, 209, 262, 262, 262, 166, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 137, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 124, 221, 262, 262, 262, - 262, 195, 262, 262, 262, 262, 262, 262, 262, 262, - 177, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 263, 263, 263, 68, 144, 263, 159, 263, 185, 154, + 217, 263, 263, 263, 54, 263, 146, 263, 263, 263, + 263, 263, 9, 263, 263, 263, 82, 263, 263, 263, + 263, 210, 263, 263, 263, 167, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 138, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 125, 222, 263, 263, 263, 263, + 196, 263, 263, 263, 263, 263, 263, 263, 263, 178, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 236, 262, 144, 262, - 262, 262, 52, 54, 262, 262, 262, 262, 262, 262, - 262, 80, 262, 262, 262, 262, 207, 262, 262, 262, - 217, 262, 262, 262, 262, 262, 262, 171, 30, 24, - 26, 262, 262, 262, 262, 262, 31, 25, 27, 262, - 262, 262, 262, 262, 262, 77, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 173, 170, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 51, 262, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 237, 263, 145, 263, 263, + 263, 53, 55, 263, 263, 263, 263, 263, 263, 263, + 81, 263, 263, 263, 263, 208, 263, 263, 263, 218, + 263, 263, 263, 263, 263, 263, 172, 30, 24, 26, + 263, 263, 263, 263, 263, 31, 25, 27, 263, 263, + 263, 263, 263, 263, 78, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 174, 171, 263, 263, 263, 263, 263, 263, - 105, 262, 262, 262, 262, 262, 262, 262, 262, 119, - 13, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 231, 262, 234, 262, 262, 262, 262, 262, 262, 12, - 262, 262, 21, 262, 262, 262, 213, 262, 262, 262, - 219, 262, 55, 262, 179, 262, 172, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 133, 132, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 174, 168, 262, 262, 262, 223, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 263, 263, 263, 263, 263, 263, 263, 52, 263, 106, + 263, 263, 263, 263, 263, 263, 263, 263, 120, 13, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 232, + 263, 235, 263, 263, 263, 263, 263, 263, 12, 263, + 263, 21, 263, 263, 263, 214, 263, 263, 263, 220, + 263, 56, 263, 180, 263, 173, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 134, 133, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 175, 169, 263, 263, 263, 224, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 262, 62, 262, 262, 262, 208, 262, 262, 262, 262, - 262, 178, 262, 262, 262, 262, 262, 262, 262, 262, - 240, 241, 130, 56, 262, 262, 262, 90, 91, 262, - 125, 262, 127, 262, 159, 262, 262, 262, 131, 262, - 262, 185, 262, 262, 262, 262, 262, 262, 262, 112, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 192, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 160, 262, 262, 206, - 262, 235, 262, 262, 262, 38, 262, 262, 262, 262, - 4, 262, 262, 111, 262, 262, 262, 262, 262, 262, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 63, 263, 263, 263, 209, 263, 263, 263, 263, 263, + 179, 263, 263, 263, 263, 263, 263, 263, 263, 241, + 242, 131, 57, 263, 263, 263, 91, 92, 263, 126, + 263, 128, 263, 160, 263, 263, 263, 132, 263, 263, + 186, 263, 263, 263, 263, 263, 263, 263, 113, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 193, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 161, 263, 263, 207, 263, + 236, 263, 263, 263, 39, 263, 263, 263, 263, 4, - 262, 262, 262, 262, 262, 188, 32, 33, 262, 262, - 262, 262, 262, 262, 262, 224, 262, 262, 262, 262, - 262, 262, 194, 262, 262, 163, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 65, 262, 39, 212, 262, - 189, 262, 262, 11, 262, 262, 262, 262, 262, 262, - 161, 69, 262, 262, 262, 262, 262, 136, 262, 262, - 262, 262, 262, 114, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 193, 108, 262, 96, 97, 262, 262, - 262, 71, 75, 70, 262, 63, 262, 262, 262, 10, - 262, 262, 262, 210, 262, 262, 262, 262, 135, 262, + 263, 263, 112, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 189, 33, 34, 263, 263, 263, + 263, 263, 263, 263, 225, 263, 263, 263, 263, 263, + 263, 195, 263, 263, 164, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 66, 263, 40, 213, 263, 190, + 263, 263, 11, 263, 263, 263, 263, 263, 263, 162, + 70, 263, 263, 263, 263, 263, 137, 263, 263, 263, + 263, 263, 115, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 194, 109, 263, 97, 98, 263, 263, 263, + 72, 76, 71, 263, 64, 263, 263, 263, 10, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 76, 74, 262, 64, - 232, 262, 262, 262, 150, 262, 262, 162, 262, 262, - 262, 262, 262, 262, 126, 58, 262, 262, 262, 262, - 262, 225, 262, 262, 262, 262, 262, 262, 262, 109, - 73, 115, 116, 66, 262, 211, 129, 262, 262, 262, - 262, 187, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 79, 262, 186, 262, 203, 229, 262, + 263, 263, 211, 263, 263, 263, 263, 136, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 77, 75, 263, 65, 233, + 263, 263, 263, 151, 263, 263, 163, 263, 263, 263, + 263, 263, 263, 127, 59, 263, 263, 263, 263, 263, + 226, 263, 263, 263, 263, 263, 263, 263, 110, 74, + 116, 117, 67, 263, 212, 130, 263, 263, 263, 263, + 188, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 262, 262, 262, 262, 262, 262, 262, 262, 5, 262, - 262, 262, 230, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 113, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 146, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 226, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 243, 262, 262, 199, 262, 262, 262, 262, - 262, 227, 262, 262, 262, 262, 262, 262, 228, 262, - 262, 262, 197, 262, 200, 201, 262, 262, 262, 262, + 263, 263, 80, 263, 187, 263, 204, 230, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 5, 263, 263, + 263, 231, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 114, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 147, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 227, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 244, 263, 263, 200, 263, 263, 263, 263, 263, + 228, 263, 263, 263, 263, 263, 263, 229, 263, 263, - 262, 198, 202, 0 + 263, 198, 263, 201, 202, 263, 263, 263, 263, 263, + 199, 203, 0 } ; -static const YY_CHAR yy_ec[256] = +static yyconst YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -686,7 +696,7 @@ static const YY_CHAR yy_ec[256] = 1, 1, 1, 1, 1 } ; -static const YY_CHAR yy_meta[41] = +static yyconst YY_CHAR yy_meta[41] = { 0, 1, 2, 3, 4, 5, 1, 6, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, @@ -694,15 +704,15 @@ static const YY_CHAR yy_meta[41] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[2619] = +static yyconst flex_uint16_t yy_base[2628] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 1850, 1790, 81, 5104, 5104, 5104, 96, 52, + 90, 112, 1852, 1723, 81, 5108, 5108, 5108, 96, 52, 106, 63, 107, 111, 70, 128, 130, 133, 57, 88, 76, 135, 141, 117, 148, 145, 160, 164, 185, 176, - 191, 152, 1666, 5104, 5104, 5104, 107, 1417, 5104, 5104, - 5104, 165, 1078, 1009, 5104, 5104, 5104, 211, 849, 5104, - 5104, 5104, 180, 788, 5104, 217, 5104, 221, 168, 648, + 191, 152, 1479, 5108, 5108, 5108, 107, 1423, 5108, 5108, + 5108, 165, 1394, 1337, 5108, 5108, 5108, 211, 769, 5108, + 5108, 5108, 180, 737, 5108, 217, 5108, 221, 168, 648, 225, 189, 0, 232, 0, 0, 226, 189, 85, 221, 114, 227, 234, 156, 219, 235, 236, 238, 239, 132, 246, 241, 243, 253, 244, 251, 254, 247, 260, 267, @@ -731,554 +741,556 @@ static const flex_int16_t yy_base[2619] = 700, 705, 708, 710, 713, 711, 720, 721, 722, 723, 724, 725, 733, 728, 731, 738, 741, 745, 749, 729, - 755, 730, 753, 757, 751, 763, 760, 765, 768, 759, - 5104, 775, 767, 795, 770, 787, 805, 800, 769, 789, - 777, 793, 801, 818, 791, 803, 813, 821, 659, 816, - 819, 822, 824, 826, 834, 830, 831, 832, 844, 833, - 835, 840, 855, 842, 847, 848, 854, 857, 856, 861, - 866, 869, 870, 871, 873, 872, 874, 877, 875, 876, - 896, 878, 891, 898, 888, 895, 900, 903, 904, 905, - 906, 914, 913, 910, 919, 911, 921, 912, 922, 923, + 755, 730, 753, 757, 751, 763, 760, 767, 768, 759, + 5108, 775, 777, 795, 770, 781, 793, 796, 799, 789, + 800, 803, 804, 819, 801, 805, 816, 824, 659, 806, + 817, 821, 829, 831, 838, 822, 833, 835, 847, 839, + 840, 843, 853, 852, 844, 854, 855, 857, 761, 858, + 865, 861, 863, 867, 868, 871, 874, 873, 884, 881, + 892, 875, 889, 894, 897, 887, 899, 901, 903, 904, + 905, 915, 912, 910, 913, 911, 921, 919, 922, 923, - 925, 926, 934, 928, 936, 5104, 941, 930, 938, 943, - 944, 945, 5104, 947, 948, 955, 956, 953, 960, 958, - 959, 966, 976, 961, 972, 984, 971, 982, 979, 983, - 986, 988, 980, 989, 991, 992, 1012, 996, 998, 999, - 1000, 1006, 1003, 1009, 1029, 1010, 1019, 1024, 1035, 1014, - 1040, 1027, 1033, 1037, 1030, 1043, 1046, 1047, 1048, 1053, - 1054, 5104, 1050, 1057, 1064, 1062, 1055, 1063, 1066, 1069, - 1071, 1072, 1073, 1075, 1079, 1091, 1094, 1081, 1098, 1083, - 1096, 1085, 1097, 1101, 1103, 1105, 1112, 1107, 1109, 1114, - 1116, 1118, 1124, 1131, 1115, 1127, 1126, 1129, 1130, 1128, + 924, 925, 927, 929, 936, 5108, 941, 930, 938, 934, + 944, 945, 5108, 947, 948, 949, 958, 953, 960, 956, + 955, 966, 976, 959, 972, 984, 971, 981, 973, 980, + 983, 988, 982, 989, 990, 991, 1011, 996, 999, 992, + 998, 1000, 1004, 1005, 1013, 1020, 1007, 1026, 1024, 1032, + 1028, 1034, 1036, 1038, 1039, 1040, 1041, 1042, 1043, 1045, + 1046, 1049, 5108, 1048, 1056, 1068, 1058, 1065, 1066, 1067, + 1069, 1071, 1072, 1073, 1075, 1074, 1079, 1093, 1083, 1094, + 1090, 1096, 1091, 1092, 1098, 1100, 1104, 1109, 1105, 1111, + 1113, 1121, 1123, 1125, 1132, 1107, 1129, 1114, 1127, 1136, - 1134, 1135, 1144, 1142, 1140, 1143, 1141, 1155, 1147, 1150, - 1154, 1156, 1159, 1163, 1165, 1167, 1168, 1169, 1177, 1176, - 1175, 1179, 1186, 1187, 1173, 1180, 1190, 1188, 1197, 1194, - 1198, 1199, 1206, 1201, 1209, 1210, 1215, 1204, 1202, 1223, - 1219, 1227, 1225, 1226, 1235, 1230, 1232, 1218, 1239, 1236, - 1240, 1241, 1244, 1248, 1251, 1252, 1259, 1260, 1250, 1254, - 1264, 1265, 1266, 1268, 1269, 1270, 1271, 1272, 1273, 1277, - 1278, 1274, 1285, 1279, 1301, 1280, 1281, 1288, 1290, 1298, - 1302, 1303, 1305, 1307, 1311, 1310, 1312, 1313, 1314, 1317, - 1318, 1329, 1320, 1330, 1319, 1331, 1333, 1334, 1340, 1339, + 1117, 1130, 1137, 1144, 1142, 1143, 1145, 1131, 1153, 1152, + 1148, 1155, 1154, 1159, 1156, 1164, 1165, 1166, 1168, 1177, + 1173, 1175, 1181, 1179, 1186, 1176, 1187, 1188, 1189, 1195, + 1190, 1196, 1198, 1203, 1202, 1201, 1211, 1213, 1205, 1206, + 1221, 1217, 1225, 1224, 1226, 1234, 1216, 1230, 1232, 1241, + 1236, 1237, 1239, 1242, 1253, 1238, 1249, 1262, 1257, 1240, + 1264, 1248, 1268, 1259, 1263, 1269, 1271, 1272, 1274, 1273, + 1276, 1275, 1279, 1283, 1284, 1286, 1285, 1288, 1294, 1296, + 1297, 1289, 1302, 1300, 1305, 1303, 1306, 1313, 1310, 1311, + 1319, 1320, 1323, 1324, 1329, 1333, 1321, 1335, 1336, 1337, - 1341, 1344, 1350, 1343, 1352, 1345, 1353, 1355, 1359, 1362, - 1365, 1366, 5104, 1368, 1378, 1369, 1370, 1373, 1377, 1386, - 1382, 1379, 1356, 1383, 1393, 5104, 1384, 5104, 5104, 1391, - 5104, 5104, 1392, 1388, 1396, 1406, 1409, 1411, 1404, 1413, - 1420, 1434, 1416, 1419, 1424, 1423, 1425, 1427, 1430, 1431, - 1429, 1449, 1451, 1454, 1455, 1443, 1447, 1439, 1461, 1462, - 1464, 1463, 1466, 1469, 1472, 1470, 1468, 1473, 1475, 1491, - 5104, 1476, 1493, 1495, 1494, 1492, 1496, 1499, 1500, 1501, - 1502, 1503, 1511, 1505, 1508, 1519, 1512, 5104, 1515, 1517, - 1520, 1521, 1529, 1523, 1527, 1533, 1534, 1536, 1537, 1538, + 1340, 1341, 1343, 1344, 1346, 1352, 1354, 1355, 1357, 1356, + 1359, 1360, 1365, 1367, 5108, 1362, 1374, 1372, 1375, 1373, + 1378, 1386, 1382, 1383, 1384, 1387, 1393, 5108, 1388, 5108, + 5108, 1389, 5108, 5108, 1391, 1404, 1395, 1413, 1416, 1397, + 1411, 1418, 1426, 1439, 1419, 1421, 1427, 1422, 1428, 1430, + 1437, 1432, 1434, 1435, 1448, 1452, 1454, 1460, 1456, 1450, + 1461, 1463, 1466, 1464, 1470, 1467, 1473, 1474, 1476, 1475, + 1478, 1490, 5108, 1481, 1497, 1499, 1495, 1494, 1496, 1501, + 1502, 1503, 1505, 1506, 1511, 1507, 1513, 1523, 1514, 5108, + 1515, 1518, 1526, 1519, 1529, 1530, 1522, 1534, 1537, 1539, - 737, 1539, 5104, 1477, 1544, 1540, 1548, 1545, 1549, 1552, - 1546, 1554, 1555, 1559, 1557, 1560, 1562, 1565, 1567, 1570, - 1576, 1581, 1573, 1578, 1583, 1585, 1588, 1587, 1595, 1590, - 1597, 1592, 1594, 1599, 1600, 1602, 1614, 1612, 1617, 1604, - 1616, 1624, 1621, 1626, 1609, 1628, 1631, 1632, 1634, 1635, - 1637, 1640, 1639, 1642, 5104, 1643, 1648, 5104, 1645, 1649, - 1671, 1650, 1652, 1653, 1654, 1669, 1657, 1658, 1664, 1689, - 1677, 1681, 1675, 1693, 1694, 1686, 1684, 1695, 1696, 1703, - 1707, 1715, 1717, 1701, 1704, 1723, 1713, 1714, 1712, 1716, - 1732, 1730, 1736, 1727, 1718, 1721, 1739, 1746, 5104, 1751, + 1541, 1540, 1542, 1544, 5108, 1543, 1551, 1546, 1548, 1552, + 1556, 1557, 1558, 1561, 1562, 1564, 1565, 1563, 1569, 1572, + 1570, 1574, 1579, 1587, 1575, 1590, 1591, 1592, 1593, 1600, + 1598, 1602, 1597, 1605, 1603, 1601, 1604, 1618, 1606, 1608, + 1621, 1619, 1625, 1626, 1634, 1629, 1631, 1632, 1633, 1636, + 1637, 1640, 1641, 1645, 1646, 1648, 1651, 5108, 1647, 1654, + 5108, 1655, 1656, 1678, 1657, 1659, 1661, 1660, 1665, 1664, + 1686, 1674, 1696, 1684, 1693, 1692, 1700, 1701, 1702, 1682, + 1704, 1708, 1717, 1673, 1724, 1726, 1709, 1662, 1729, 1710, + 1727, 1725, 1721, 1712, 1731, 1734, 1738, 1740, 1741, 1744, - 1752, 1734, 1747, 1754, 1756, 1757, 1646, 1758, 1759, 1768, - 1763, 1764, 1765, 1766, 1771, 1769, 1773, 1778, 1780, 5104, - 1777, 5104, 1781, 1779, 1784, 1788, 1791, 1792, 1794, 1800, - 1804, 1807, 1806, 5104, 1808, 1816, 1813, 1818, 1811, 1812, - 1820, 1822, 1826, 1829, 1827, 1834, 1830, 1831, 1837, 1839, - 1840, 1843, 1845, 1846, 5104, 1849, 1851, 1853, 1860, 1862, - 1857, 1863, 1865, 1864, 1869, 1870, 1871, 1878, 1879, 1875, - 1886, 5104, 1874, 1883, 1894, 1876, 1887, 1895, 1889, 1896, - 1897, 1907, 1908, 1903, 1899, 1911, 1906, 1912, 1915, 1917, - 1916, 1919, 1920, 1921, 5104, 1922, 1924, 124, 1929, 1930, + 1746, 5108, 1751, 1753, 1747, 1754, 1763, 1764, 1758, 1761, + 1762, 1765, 1774, 1773, 1772, 1775, 1776, 1778, 1779, 1784, + 1785, 1789, 5108, 1786, 5108, 1787, 1788, 1790, 1795, 1798, + 1800, 1804, 1797, 1811, 1819, 1814, 5108, 1815, 1822, 1824, + 1817, 1818, 1823, 1826, 1829, 1830, 1839, 1834, 1841, 1837, + 1836, 1846, 1847, 1848, 1850, 1853, 1849, 5108, 1856, 1859, + 1860, 1869, 1868, 1865, 1870, 1873, 1871, 1872, 1877, 1879, + 1884, 1886, 1882, 1885, 5108, 1881, 1900, 1896, 1893, 1883, + 1903, 1904, 1898, 1905, 1908, 1916, 1917, 1912, 1913, 1915, + 1919, 1921, 1922, 1928, 1925, 1930, 1926, 1929, 5108, 1931, - 1932, 1931, 1933, 1938, 1935, 1953, 1954, 1951, 1950, 1957, - 1949, 1958, 1959, 1960, 1961, 1966, 1967, 1965, 1969, 1971, - 1970, 1977, 1974, 1976, 5104, 1978, 1986, 1989, 1987, 1997, - 1993, 1998, 1999, 2002, 2003, 2005, 5104, 2010, 2012, 2006, - 2013, 2015, 2014, 2016, 2020, 2022, 2025, 2028, 2029, 2027, - 2030, 2032, 2036, 2033, 2037, 2038, 2043, 5104, 2053, 2045, - 2054, 2044, 2055, 2049, 2069, 2056, 2065, 2067, 2070, 2081, - 2072, 2073, 2083, 2087, 2091, 2084, 2092, 2098, 2101, 2105, - 2095, 2107, 2106, 2099, 2109, 2118, 2120, 2117, 2074, 2119, - 2123, 2131, 2121, 5104, 2126, 2125, 2134, 2136, 2144, 2141, + 1933, 124, 1937, 1940, 1936, 1941, 1944, 1957, 1942, 1958, + 1965, 1961, 1947, 1963, 1960, 1964, 1967, 1969, 1970, 1973, + 1971, 1975, 1977, 1979, 1981, 1982, 1983, 1990, 5108, 1991, + 1996, 1998, 1997, 2007, 2000, 2008, 2014, 2002, 2015, 2012, + 5108, 2023, 2024, 2013, 2025, 2028, 2026, 2027, 2034, 2036, + 2037, 2038, 2039, 2040, 2041, 2043, 2044, 2049, 2046, 2047, + 2054, 5108, 2071, 2055, 2060, 2056, 2070, 2072, 2079, 2058, + 2074, 2080, 2081, 2094, 2083, 2086, 2091, 2089, 2087, 2097, + 2100, 2104, 2110, 2115, 2101, 2114, 2119, 2098, 2108, 2122, + 2131, 2127, 2129, 2128, 2134, 1987, 2130, 5108, 2136, 2138, - 2142, 2146, 2148, 2149, 2150, 2151, 2153, 2156, 2158, 2155, - 2162, 2154, 2165, 2174, 2166, 2176, 2182, 5104, 2183, 2185, - 2177, 2188, 2171, 2193, 2189, 2178, 2195, 2198, 2200, 2201, - 2202, 5104, 2205, 2207, 2203, 2209, 2210, 2217, 2213, 2219, - 2221, 2222, 5104, 2229, 2230, 2227, 2239, 2234, 2226, 2236, - 2238, 2240, 5104, 2241, 2242, 2250, 2252, 2248, 5104, 2255, - 2253, 2251, 2256, 2258, 2257, 2262, 2259, 2264, 2266, 2269, - 2277, 2270, 2278, 5104, 2280, 2287, 2282, 2288, 2290, 2285, - 2292, 2297, 2301, 2294, 2312, 2309, 2311, 2295, 2298, 2315, - 2316, 2317, 2318, 5104, 2320, 2319, 2325, 2323, 2328, 2329, + 2139, 2143, 2151, 2147, 2149, 2156, 2155, 2158, 2159, 2160, + 2161, 2162, 2165, 2163, 2166, 2171, 2176, 2174, 2180, 2183, + 2185, 5108, 2186, 2188, 2190, 2192, 2194, 2198, 2199, 2200, + 2201, 2203, 2205, 2206, 2208, 5108, 2212, 2213, 2219, 2220, + 2226, 2227, 2216, 2223, 2229, 2230, 2233, 5108, 2240, 2242, + 2238, 2245, 2244, 2247, 2248, 2250, 2251, 5108, 2252, 2254, + 2261, 2262, 2257, 5108, 2264, 2260, 2265, 2267, 2268, 2269, + 2275, 2270, 2273, 2278, 2281, 2284, 2288, 2289, 5108, 2291, + 2301, 2293, 2297, 2292, 2299, 2303, 2304, 2313, 2308, 2323, + 2316, 2319, 2307, 2324, 2325, 2327, 2328, 2329, 5108, 2331, - 2330, 2331, 2339, 2332, 2336, 2340, 2344, 2345, 2355, 2343, - 2354, 2356, 2358, 2362, 2364, 2365, 2372, 2375, 2376, 2378, - 5104, 2381, 2367, 2374, 2382, 2384, 2386, 2387, 2388, 2390, - 2391, 2392, 2393, 2395, 2409, 2412, 2396, 2402, 2404, 2405, - 2413, 2417, 2425, 2415, 2418, 2420, 2428, 2427, 2429, 2430, - 2431, 2438, 2432, 2436, 2439, 2442, 2443, 2457, 2454, 2458, - 2434, 2460, 2461, 2464, 5104, 2463, 2465, 2467, 2472, 2476, - 2473, 2477, 2481, 2486, 2471, 2479, 2484, 2495, 2493, 5104, - 2494, 5104, 2496, 2498, 2499, 2507, 5104, 2506, 5104, 2509, - 2502, 2510, 5104, 2511, 2515, 2513, 2519, 2520, 2522, 2523, + 2333, 2334, 2336, 2337, 2338, 2341, 2339, 2342, 2344, 2347, + 2348, 2360, 2354, 2363, 2352, 2364, 2371, 2366, 2369, 2374, + 2377, 2384, 2385, 2386, 2388, 5108, 2391, 2376, 2383, 2393, + 2394, 2397, 2396, 2398, 2400, 2401, 2402, 2404, 2405, 2416, + 2423, 2406, 2413, 2414, 2419, 2421, 2425, 2434, 2427, 2429, + 2430, 2437, 2435, 2439, 2440, 2442, 2446, 2444, 2447, 2449, + 2452, 2445, 2464, 2451, 2466, 2467, 2468, 2469, 2472, 5108, + 2471, 2473, 2475, 2481, 2484, 2485, 2487, 2489, 2494, 2479, + 2486, 2496, 2506, 2502, 5108, 2503, 5108, 2505, 2507, 2508, + 2517, 5108, 2514, 5108, 2519, 2515, 2520, 5108, 2522, 2523, - 2527, 2525, 2530, 2529, 2532, 2536, 2533, 2541, 2538, 2543, - 2545, 2546, 2547, 5104, 2551, 2555, 2556, 2557, 2558, 2559, - 2561, 2563, 2566, 2567, 2569, 2574, 2571, 2580, 2583, 2581, - 2585, 2595, 5104, 2590, 2593, 2594, 2596, 5104, 2597, 2598, - 2600, 2603, 2606, 2607, 2608, 2609, 2614, 2612, 2625, 2629, - 2615, 2618, 2630, 2616, 2633, 2640, 2637, 2644, 2642, 2639, - 2646, 2648, 2649, 2656, 2657, 2653, 2660, 2655, 2661, 2663, - 2665, 2659, 2668, 2671, 2672, 2673, 2680, 2676, 2681, 2674, - 2679, 2682, 2683, 5104, 2685, 2690, 2693, 2700, 2697, 2695, - 2702, 2703, 2705, 2707, 2706, 2708, 2711, 5104, 2715, 5104, + 2527, 2528, 2529, 2532, 2534, 2510, 2537, 2539, 2540, 2541, + 2543, 2547, 2544, 2554, 2546, 2552, 2557, 2558, 2560, 5108, + 2567, 2562, 2559, 2569, 2570, 2571, 2574, 2576, 2572, 2578, + 2582, 2585, 2579, 2593, 2597, 2600, 2583, 2607, 5108, 2604, + 2587, 2605, 2606, 5108, 2608, 2609, 2613, 2611, 2615, 2616, + 2617, 2621, 2623, 2619, 2634, 2636, 2638, 2641, 2642, 2626, + 2645, 2655, 2627, 2653, 2656, 2644, 2646, 2658, 2659, 2666, + 2668, 2665, 2669, 2667, 2671, 2673, 2675, 2674, 2678, 2681, + 2682, 2683, 2687, 2689, 2691, 2684, 2686, 2693, 2688, 5108, + 2695, 2700, 2703, 2710, 2712, 2705, 2713, 2714, 2715, 2716, - 2716, 2719, 2724, 2725, 2732, 2729, 2733, 2734, 2737, 2736, - 2738, 2746, 2740, 2750, 2748, 2743, 2751, 2754, 2756, 2759, - 2761, 5104, 2760, 2762, 2765, 2767, 2768, 2769, 2778, 2782, - 2771, 2776, 2781, 2796, 5104, 2784, 2792, 2787, 2801, 2808, - 2804, 2812, 2807, 5104, 2803, 2810, 2817, 2814, 2816, 5104, - 5104, 2815, 2818, 2820, 2822, 2826, 2836, 2829, 2821, 2831, - 2832, 2844, 2833, 2841, 5104, 2847, 2843, 2848, 2851, 2853, - 2855, 2857, 2854, 5104, 2861, 2865, 2862, 2867, 2868, 2870, - 2871, 2873, 2872, 2874, 2875, 2878, 2888, 2883, 2889, 2890, - 2892, 2897, 2902, 5104, 2899, 2903, 2906, 2908, 2909, 2910, + 2718, 2717, 2722, 5108, 2721, 5108, 2723, 2734, 2740, 2742, + 2744, 2746, 2728, 2730, 2749, 2751, 2750, 2752, 2753, 2763, + 2755, 2756, 2758, 2766, 2767, 2770, 2768, 5108, 2772, 2773, + 2774, 2777, 2778, 2783, 2789, 2794, 2782, 2792, 2796, 2808, + 5108, 2785, 2801, 2798, 2810, 2811, 2812, 2821, 2818, 5108, + 2819, 2820, 2828, 2823, 2826, 5108, 5108, 2825, 2827, 2830, + 2832, 2833, 2837, 2840, 2841, 2842, 2843, 2850, 2854, 2849, + 2851, 5108, 2856, 2852, 2864, 2866, 2870, 2873, 2858, 2857, + 5108, 2859, 2877, 2879, 2881, 2882, 2884, 2885, 2887, 2888, + 2890, 2886, 2889, 2897, 2892, 2895, 2906, 2908, 2911, 2916, - 2914, 2893, 2917, 2918, 2916, 2919, 2925, 2923, 2922, 2924, - 2929, 2926, 2931, 2945, 2932, 2940, 2942, 2948, 2943, 2952, - 2955, 2947, 2957, 2958, 2960, 2964, 2961, 2972, 2968, 5104, - 2975, 2970, 2980, 2973, 2982, 2977, 2983, 2992, 2987, 2989, - 2990, 2997, 2993, 5104, 3008, 3003, 2994, 3004, 3005, 3018, - 3014, 3011, 2995, 3022, 3019, 3024, 3026, 3027, 3028, 3033, - 5104, 5104, 3030, 5104, 3034, 3035, 3037, 3038, 3040, 3041, - 3042, 3051, 3044, 3048, 5104, 3054, 3061, 3057, 3058, 3066, - 3069, 3072, 3062, 3073, 3074, 3076, 3075, 3078, 3079, 3080, - 3083, 3091, 3088, 3086, 3089, 5104, 3090, 3092, 3098, 5104, + 5108, 2917, 2910, 2921, 2918, 2923, 2924, 2926, 2928, 2929, + 2931, 2932, 2933, 2936, 2938, 2934, 2935, 2940, 2941, 2952, + 2961, 2943, 2954, 2945, 2966, 2958, 2963, 2970, 2967, 2972, + 2974, 2975, 2977, 2978, 2985, 2980, 5108, 2990, 2981, 2992, + 2988, 2991, 2998, 3000, 3008, 2993, 2989, 3003, 3010, 3011, + 5108, 3020, 3015, 3016, 3017, 3021, 3030, 3025, 3022, 3026, + 3033, 3027, 3037, 3035, 3039, 3040, 3044, 5108, 5108, 3045, + 5108, 3048, 3046, 3050, 3051, 2896, 3056, 3052, 3058, 3060, + 3063, 5108, 3064, 3068, 3070, 3073, 3077, 3081, 3083, 3084, + 3076, 3072, 3074, 3087, 3088, 3094, 3095, 3096, 3104, 3100, - 3096, 3099, 3112, 3105, 3117, 3100, 3119, 3121, 3102, 3122, - 3107, 3124, 3131, 3129, 3133, 3132, 3139, 3146, 3147, 3155, - 3126, 3142, 3156, 5104, 3151, 3153, 3158, 3134, 3166, 3161, - 3168, 3164, 5104, 3165, 3167, 3169, 5104, 3172, 3178, 3181, - 3185, 3171, 3188, 3187, 3189, 3190, 3192, 5104, 3195, 5104, - 3199, 3197, 5104, 3198, 3203, 3206, 3205, 3207, 3208, 3212, - 3219, 3214, 3220, 3221, 3222, 3223, 3225, 3232, 3224, 5104, - 3235, 3228, 3231, 3233, 3237, 3243, 5104, 5104, 3245, 5104, - 3248, 3250, 5104, 3252, 3251, 3259, 3254, 3257, 3260, 3269, - 3255, 5104, 3270, 3261, 3272, 3274, 3275, 3276, 3278, 3279, + 3101, 3102, 5108, 3103, 3105, 3110, 5108, 3107, 3109, 3108, + 3118, 3129, 3111, 3119, 3132, 3117, 3133, 3134, 3136, 3143, + 3140, 3141, 3142, 3149, 3151, 3161, 3152, 3163, 3144, 3159, + 3168, 5108, 3164, 3165, 3166, 3167, 3179, 3172, 3180, 3175, + 5108, 3177, 3181, 3183, 5108, 3182, 3190, 3196, 3198, 3184, + 3199, 3201, 3203, 3205, 3206, 5108, 3209, 5108, 3210, 3212, + 5108, 3216, 3217, 3218, 3220, 3221, 3222, 3226, 3233, 3225, + 3234, 3235, 3236, 3237, 3239, 3246, 3238, 5108, 3247, 3242, + 3249, 3254, 3250, 3251, 5108, 5108, 3257, 5108, 3186, 3261, + 5108, 3265, 3267, 3272, 3268, 3269, 3271, 3275, 3276, 5108, - 3280, 3282, 3286, 5104, 3284, 3287, 3294, 3285, 3289, 3295, - 3302, 3300, 5104, 3308, 3310, 3301, 3311, 3314, 5104, 3315, - 3317, 3323, 5104, 3318, 3327, 3322, 3328, 3334, 3330, 3337, - 3331, 3338, 3345, 3341, 3340, 3343, 5104, 3344, 3347, 3355, - 3356, 3350, 3352, 3366, 3359, 3367, 3362, 3374, 3368, 3375, - 3381, 3377, 3379, 3383, 3371, 3390, 3384, 3387, 5104, 3394, - 3395, 3396, 5104, 3397, 3398, 3402, 3403, 3407, 5104, 3404, - 3408, 3409, 5104, 3405, 5104, 3419, 3412, 3415, 3417, 3422, - 3427, 3428, 3433, 3429, 3434, 3436, 3439, 3446, 3449, 3450, - 3451, 3447, 3453, 5104, 5104, 3457, 3459, 3458, 3462, 3463, + 3279, 3278, 3282, 3287, 3288, 3289, 3290, 3291, 3292, 3293, + 3294, 5108, 3295, 3299, 3305, 3306, 3297, 3307, 3314, 3312, + 5108, 3316, 3320, 3323, 3325, 3326, 5108, 3327, 3328, 3329, + 5108, 3334, 3338, 3335, 3339, 3343, 3342, 3346, 3349, 3350, + 3358, 3354, 3353, 3355, 5108, 3356, 3357, 3365, 3368, 3362, + 3360, 3378, 3374, 3381, 3376, 3386, 3382, 3387, 3389, 3391, + 3393, 3395, 3396, 3399, 3401, 3403, 5108, 3404, 3406, 3407, + 5108, 3408, 3409, 3413, 3414, 3418, 5108, 3423, 3419, 3420, + 5108, 5108, 3422, 5108, 3427, 3426, 3430, 3436, 3437, 3439, + 3442, 3444, 3440, 3448, 3450, 3447, 3463, 3464, 3471, 3453, - 3465, 3466, 3475, 3471, 3479, 3481, 3488, 5104, 3468, 3470, - 3483, 5104, 3480, 3489, 3491, 3492, 3493, 3495, 3496, 3500, - 3497, 3502, 3503, 3504, 3506, 3510, 3519, 5104, 3509, 3516, - 3511, 3520, 3521, 3522, 3524, 3526, 5104, 3523, 3532, 3539, - 3533, 3527, 3537, 3548, 3552, 3554, 3545, 3555, 3556, 3558, - 3562, 3559, 5104, 3566, 3563, 3565, 3569, 3573, 3575, 3576, - 3578, 3579, 3587, 3589, 3591, 3580, 3582, 5104, 3593, 3600, - 3584, 3605, 3592, 3596, 3606, 3607, 3612, 3613, 3614, 3615, - 3617, 5104, 3618, 3619, 3620, 3621, 3627, 3622, 3624, 3628, - 5104, 3631, 3633, 3637, 3636, 3640, 3645, 3647, 3649, 5104, + 3466, 3467, 5108, 5108, 3469, 3475, 3470, 3473, 3477, 3480, + 3481, 3488, 3484, 3486, 3491, 3500, 5108, 3493, 3483, 3498, + 5108, 3495, 3504, 3505, 3506, 3507, 3508, 3511, 3514, 3515, + 3510, 3517, 3516, 3518, 3524, 3531, 5108, 3532, 3533, 3523, + 3534, 3535, 3536, 3538, 3539, 5108, 3540, 3544, 3545, 3549, + 3547, 3553, 3563, 3568, 3570, 3541, 3559, 3573, 3571, 3576, + 3577, 5108, 3579, 3565, 3578, 3581, 3587, 3589, 3590, 3592, + 3594, 3596, 3600, 3602, 3597, 3603, 5108, 3605, 3607, 3604, + 3614, 3608, 3615, 3616, 3617, 3625, 3620, 3627, 3628, 3630, + 5108, 3631, 3632, 3634, 3636, 3638, 3635, 3641, 3643, 5108, - 3648, 3652, 3654, 3655, 3658, 3661, 3662, 3663, 3664, 3670, - 3672, 3665, 3673, 3674, 3675, 3678, 3679, 3681, 3697, 3689, - 5104, 3676, 5104, 3692, 3698, 3700, 3702, 3704, 5104, 3705, - 3706, 3708, 3710, 3709, 5104, 3715, 3712, 3714, 3719, 5104, - 3713, 3730, 3717, 3720, 3734, 5104, 3739, 3740, 3736, 3748, - 3750, 3746, 3747, 3751, 3753, 3749, 3754, 3755, 5104, 3758, - 3757, 3767, 3759, 3768, 3770, 5104, 3769, 3771, 3772, 3775, - 3776, 3777, 3784, 3781, 3780, 5104, 3783, 3785, 3800, 3793, - 3795, 5104, 5104, 3792, 3802, 3804, 3805, 3808, 5104, 3810, - 3817, 3812, 3816, 3813, 5104, 5104, 3819, 5104, 3820, 5104, + 3645, 3646, 3650, 3648, 3652, 3659, 3661, 3663, 5108, 3664, + 3667, 3668, 3669, 3671, 3653, 3675, 3677, 3681, 3683, 3685, + 3679, 3687, 3688, 3692, 3693, 3696, 3689, 3712, 3691, 5108, + 3699, 5108, 3707, 3708, 3717, 3713, 3710, 5108, 3715, 3718, + 3721, 3723, 3724, 5108, 3725, 3726, 3728, 3727, 5108, 3741, + 3735, 3729, 3736, 3746, 5108, 3751, 3752, 3753, 3760, 3762, + 3764, 3747, 3765, 3757, 3759, 3767, 3770, 5108, 3768, 3774, + 3776, 3778, 3779, 3780, 5108, 3781, 3782, 3789, 3787, 3785, + 3788, 3796, 3792, 3794, 5108, 3795, 3804, 3806, 3807, 3808, + 5108, 5108, 3813, 3816, 3818, 3797, 3819, 5108, 3822, 3830, - 5104, 5104, 3821, 3823, 3830, 5104, 3833, 5104, 3840, 3835, - 3825, 3827, 3837, 5104, 3839, 3843, 3845, 5104, 3847, 3852, - 3848, 3850, 5104, 3854, 3851, 3857, 5104, 3859, 3862, 3863, - 3864, 3871, 3867, 3872, 3874, 3877, 3883, 3885, 3888, 3878, - 3880, 3891, 3893, 3889, 3896, 3900, 3903, 3897, 3904, 3905, - 3906, 3907, 3908, 3914, 3910, 3915, 3916, 3918, 3920, 3921, - 3922, 3924, 3925, 3927, 5104, 3929, 3930, 3932, 3934, 3939, - 3938, 3945, 3949, 3957, 3958, 5104, 5104, 3960, 3946, 3951, - 3954, 5104, 3963, 3966, 3965, 3968, 3967, 3969, 3972, 3970, - 5104, 3975, 3977, 3979, 3980, 3981, 3985, 3982, 3991, 3993, + 3825, 3829, 3831, 5108, 5108, 3833, 5108, 3834, 5108, 5108, + 5108, 3836, 3838, 3845, 5108, 3847, 5108, 3848, 3849, 3835, + 3839, 3853, 5108, 3854, 3855, 3857, 5108, 3859, 3866, 3862, + 3863, 5108, 3865, 3869, 3871, 5108, 3874, 3877, 3879, 3881, + 3870, 3882, 3883, 3885, 3892, 3894, 3899, 3901, 3895, 3887, + 3902, 3908, 3904, 3911, 3913, 3915, 3906, 3917, 3919, 3920, + 3921, 3922, 3928, 3923, 3925, 3929, 3930, 3933, 3934, 3935, + 3937, 3938, 3939, 5108, 3941, 3944, 3945, 3947, 3955, 3956, + 3958, 3965, 3971, 3972, 5108, 5108, 3974, 3960, 3976, 3962, + 5108, 3977, 3967, 3979, 3980, 3982, 3983, 3984, 3988, 5108, - 3994, 3995, 4001, 4003, 4012, 4004, 4005, 3996, 4008, 4007, - 4016, 4018, 4017, 4025, 4026, 4030, 5104, 4021, 5104, 4032, - 4031, 4033, 5104, 5104, 4034, 4035, 4043, 4044, 4037, 4046, - 4049, 5104, 4047, 4056, 4058, 4048, 5104, 4050, 4063, 4065, - 5104, 4066, 4068, 4069, 4072, 4074, 4076, 5104, 5104, 5104, - 5104, 4080, 4073, 4077, 4084, 4082, 5104, 5104, 5104, 4087, - 4085, 4089, 4093, 4086, 4096, 5104, 4098, 4102, 4103, 4100, - 4110, 4112, 4114, 4117, 4106, 4116, 4125, 4118, 4126, 4120, - 4128, 4130, 4132, 5104, 5104, 4136, 4137, 4144, 4141, 4142, - 4145, 4148, 4150, 4151, 4153, 4154, 4156, 4157, 5104, 4163, + 3993, 3986, 3999, 3990, 3994, 4004, 4005, 3996, 4006, 4007, + 4009, 4016, 4018, 4019, 4021, 4010, 4022, 4026, 4027, 4029, + 4030, 4032, 4037, 4038, 4043, 5108, 4033, 5108, 4044, 4045, + 4048, 5108, 5108, 4046, 4051, 4056, 4057, 4050, 4059, 4060, + 5108, 4061, 4069, 4063, 4070, 5108, 4071, 4074, 4078, 5108, + 4075, 4080, 4081, 4085, 4088, 4090, 5108, 5108, 5108, 5108, + 4095, 4082, 4086, 4092, 4097, 5108, 5108, 5108, 4098, 4101, + 4102, 4108, 4109, 4110, 5108, 4111, 4112, 4114, 4120, 4122, + 4124, 4125, 4129, 4113, 4127, 4136, 4133, 4139, 4137, 4141, + 4143, 4148, 5108, 5108, 4144, 4150, 4155, 4151, 4158, 4165, - 5104, 4159, 4165, 4158, 4167, 4172, 4173, 4174, 4177, 5104, - 5104, 4171, 4178, 4183, 4185, 4187, 4179, 4189, 4192, 4193, - 5104, 4194, 5104, 4195, 4196, 4203, 4208, 4205, 4211, 5104, - 4201, 4214, 5104, 4217, 4218, 4219, 5104, 4222, 4225, 4229, - 5104, 4231, 5104, 4236, 5104, 4220, 5104, 4226, 4237, 4242, - 4244, 4245, 4250, 4251, 4254, 4247, 4256, 4239, 4258, 4265, - 4261, 4263, 5104, 5104, 4270, 4266, 4268, 4271, 4273, 4280, - 4275, 4277, 4283, 5104, 5104, 4285, 4276, 4292, 5104, 4278, - 4293, 4287, 4294, 4297, 4286, 4298, 4302, 4307, 4308, 4309, - 4310, 4313, 4317, 4319, 4321, 4322, 4323, 4324, 4325, 4329, + 4160, 4161, 4162, 4167, 4168, 4169, 4172, 5108, 4170, 5108, + 4175, 4178, 4177, 4179, 4181, 4185, 4186, 4188, 5108, 5108, + 4189, 4191, 4193, 4199, 4196, 4200, 4201, 4203, 4204, 5108, + 4205, 5108, 4206, 4210, 4213, 4218, 4219, 4224, 5108, 4221, + 4222, 5108, 4228, 4225, 4231, 5108, 4233, 4237, 4241, 5108, + 4243, 5108, 4245, 5108, 4238, 5108, 4247, 4248, 4251, 4253, + 4254, 4256, 4259, 4262, 4263, 4265, 4266, 4268, 4275, 4271, + 4272, 5108, 5108, 4280, 4273, 4277, 4281, 4283, 4291, 4286, + 4288, 4294, 5108, 5108, 4290, 4298, 4299, 5108, 4287, 4300, + 4304, 4305, 4307, 4308, 4309, 4314, 4315, 4316, 4317, 4318, - 4331, 5104, 4333, 4335, 4330, 5104, 4340, 4345, 4342, 4353, - 4346, 5104, 4336, 4357, 4359, 4360, 4347, 4367, 4364, 4365, - 5104, 5104, 5104, 5104, 4371, 4372, 4368, 5104, 5104, 4373, - 5104, 4375, 5104, 4376, 5104, 4378, 4384, 4379, 5104, 4386, - 4389, 5104, 4395, 4400, 4402, 4396, 4392, 4403, 4404, 5104, - 4413, 4406, 4410, 4417, 4408, 4414, 4418, 4419, 4427, 4420, - 4425, 5104, 4428, 4429, 4431, 4433, 4436, 4434, 4432, 4439, - 4440, 4442, 4443, 4451, 4453, 4454, 5104, 4457, 4461, 5104, - 4458, 5104, 4463, 4464, 4465, 5104, 4467, 4468, 4469, 4471, - 5104, 4474, 4472, 5104, 4476, 4482, 4484, 4478, 4485, 4489, + 4326, 4329, 4331, 4333, 4335, 4337, 4320, 4338, 4339, 4341, + 5108, 4343, 4345, 4344, 5108, 4351, 4353, 4355, 4358, 4356, + 5108, 4352, 4367, 4364, 4369, 4371, 4380, 4372, 4373, 5108, + 5108, 5108, 5108, 4376, 4381, 4377, 5108, 5108, 4383, 5108, + 4384, 5108, 4388, 5108, 4387, 4393, 4391, 5108, 4397, 4403, + 5108, 4399, 4406, 4411, 4412, 4395, 4401, 4413, 5108, 4422, + 4414, 4423, 4425, 4417, 4426, 4427, 4430, 4437, 4429, 4434, + 5108, 4436, 4438, 4440, 4443, 4444, 4441, 4442, 4446, 4449, + 4450, 4459, 4452, 4461, 4463, 5108, 4466, 4470, 5108, 4467, + 5108, 4472, 4473, 4474, 5108, 4476, 4477, 4480, 4481, 5108, - 4491, 4493, 4495, 4496, 4500, 5104, 5104, 5104, 4497, 4502, - 4510, 4507, 4511, 4518, 4515, 5104, 4516, 4519, 4517, 4526, - 4523, 4528, 5104, 4530, 4525, 5104, 4532, 4535, 4537, 4538, - 4543, 4546, 4550, 4554, 4551, 5104, 4558, 5104, 5104, 4547, - 5104, 4539, 4559, 5104, 4563, 4555, 4564, 4565, 4568, 4570, - 5104, 5104, 4571, 4578, 4573, 4577, 4582, 5104, 4579, 4580, - 4583, 4586, 4589, 5104, 4593, 4590, 4591, 4592, 4596, 4594, - 4602, 4597, 4603, 5104, 5104, 4604, 5104, 5104, 4606, 4616, - 4613, 5104, 5104, 5104, 4622, 5104, 4626, 4630, 4629, 5104, - 4632, 4623, 4634, 5104, 4636, 4637, 4638, 4639, 5104, 4640, + 4483, 4485, 5108, 4486, 4491, 4493, 4487, 4494, 4498, 4495, + 4501, 4505, 4506, 4510, 5108, 5108, 5108, 4512, 4502, 4519, + 4516, 4520, 4531, 4518, 5108, 4527, 4528, 4526, 4535, 4530, + 4538, 5108, 4540, 4534, 5108, 4542, 4544, 4546, 4549, 4550, + 4557, 4559, 4561, 4562, 5108, 4565, 5108, 5108, 4552, 5108, + 4554, 4568, 5108, 4573, 4566, 4570, 4574, 4578, 4579, 5108, + 5108, 4575, 4587, 4585, 4592, 4594, 5108, 4582, 4586, 4595, + 4596, 4597, 5108, 4601, 4588, 4598, 4604, 4605, 4610, 4611, + 4612, 4614, 5108, 5108, 4615, 5108, 5108, 4617, 4621, 4627, + 5108, 5108, 5108, 4637, 5108, 4639, 4643, 4630, 5108, 4645, - 4643, 4645, 4650, 4656, 4647, 4659, 4651, 4667, 4671, 4653, - 4657, 4668, 4669, 4670, 4673, 4677, 5104, 5104, 4680, 5104, - 5104, 4682, 4684, 4686, 5104, 4687, 4691, 5104, 4694, 4688, - 4695, 4697, 4699, 4701, 5104, 5104, 4702, 4705, 4704, 4709, - 4706, 5104, 4712, 4717, 4713, 4716, 4718, 4722, 4719, 5104, - 5104, 5104, 5104, 5104, 4723, 5104, 5104, 4725, 4728, 4729, - 4731, 5104, 4733, 4736, 4734, 4741, 4738, 4750, 4742, 4744, - 4746, 4752, 4754, 4757, 4758, 4759, 4761, 4762, 4766, 4769, - 4775, 4777, 4767, 4780, 4781, 4782, 4783, 4785, 4789, 4796, - 4791, 4793, 4794, 5104, 4797, 5104, 4798, 5104, 5104, 4802, + 4632, 4642, 5108, 4647, 4648, 4649, 4651, 5108, 4652, 4613, + 4657, 4660, 4662, 4654, 4663, 4664, 4678, 4671, 4667, 4674, + 4675, 4679, 4680, 4681, 4683, 5108, 5108, 4687, 5108, 5108, + 4691, 4694, 4698, 5108, 4695, 4702, 5108, 4706, 4688, 4699, + 4707, 4709, 4713, 5108, 5108, 4710, 4714, 4715, 4718, 4716, + 5108, 4720, 4727, 4722, 4725, 4726, 4729, 4732, 5108, 5108, + 5108, 5108, 5108, 4735, 5108, 5108, 4731, 4733, 4739, 4742, + 5108, 4740, 4744, 4746, 4750, 4743, 4760, 4749, 4753, 4757, + 4764, 4765, 4766, 4767, 4768, 4770, 4774, 4777, 4778, 4785, + 4789, 4773, 4771, 4793, 4794, 4795, 4786, 4797, 4804, 4801, - 4806, 4795, 4799, 4814, 4815, 4811, 4817, 4819, 5104, 4820, - 4821, 4822, 5104, 4823, 4824, 4827, 4828, 4831, 4832, 4834, - 4837, 4836, 4833, 4848, 4845, 4855, 4856, 4853, 4859, 4860, - 4861, 4868, 4866, 4870, 5104, 4863, 4872, 4874, 4873, 4875, - 4882, 4877, 4884, 4878, 5104, 4886, 4889, 4883, 4887, 4890, - 4895, 4899, 4902, 4903, 5104, 4893, 4904, 4910, 4911, 4913, - 4915, 4917, 4918, 4922, 4923, 4925, 4931, 4926, 4932, 4934, - 4935, 4936, 5104, 4942, 4938, 5104, 4943, 4944, 4945, 4946, - 4950, 5104, 4959, 4947, 4952, 4960, 4963, 4967, 5104, 4969, - 4973, 4970, 5104, 4975, 5104, 5104, 4976, 4978, 4979, 4983, + 4803, 4805, 5108, 4806, 5108, 4807, 5108, 5108, 4809, 4813, + 4810, 4816, 4823, 4826, 4819, 4827, 4822, 5108, 4828, 4829, + 4830, 5108, 4831, 4832, 4836, 4839, 4844, 4842, 4845, 4849, + 4838, 4846, 4859, 4862, 4853, 4863, 4866, 4868, 4869, 4860, + 4876, 4872, 4881, 5108, 4878, 4875, 4883, 4884, 4885, 4892, + 4887, 4888, 4895, 5108, 4898, 4893, 4907, 4889, 4891, 4900, + 4914, 4911, 4909, 5108, 4899, 4917, 4919, 4920, 4923, 4926, + 4927, 4928, 4930, 4932, 4933, 4940, 4936, 4941, 4942, 4944, + 4945, 5108, 4951, 4946, 5108, 4952, 4953, 4954, 4955, 4959, + 5108, 4963, 4956, 4966, 4967, 4970, 4971, 5108, 4977, 4980, - 4985, 5104, 5104, 5104, 5012, 5019, 5026, 5033, 5040, 88, - 5047, 5054, 5061, 5068, 5075, 5082, 5089, 5096 + 4981, 5108, 4982, 5108, 5108, 4984, 4972, 4983, 4993, 4995, + 5108, 5108, 5108, 5016, 5023, 5030, 5037, 5044, 88, 5051, + 5058, 5065, 5072, 5079, 5086, 5093, 5100 } ; -static const flex_int16_t yy_def[2619] = +static yyconst flex_int16_t yy_def[2628] = { 0, - 2604, 1, 2605, 2605, 2606, 2606, 2607, 2607, 2608, 2608, - 2609, 2609, 2604, 2610, 2604, 2604, 2604, 2604, 2611, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2612, 2604, 2604, 2604, 2612, 2613, 2604, 2604, - 2604, 2613, 2614, 2604, 2604, 2604, 2604, 2614, 2615, 2604, - 2604, 2604, 2615, 2616, 2604, 2617, 2604, 2616, 2616, 2610, - 2610, 2604, 2618, 2611, 2618, 2611, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, + 2613, 1, 2614, 2614, 2615, 2615, 2616, 2616, 2617, 2617, + 2618, 2618, 2613, 2619, 2613, 2613, 2613, 2613, 2620, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2621, 2613, 2613, 2613, 2621, 2622, 2613, 2613, + 2613, 2622, 2623, 2613, 2613, 2613, 2613, 2623, 2624, 2613, + 2613, 2613, 2624, 2625, 2613, 2626, 2613, 2625, 2625, 2619, + 2619, 2613, 2627, 2620, 2627, 2620, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2612, - 2612, 2613, 2613, 2614, 2614, 2604, 2615, 2615, 2616, 2616, - 2617, 2617, 2616, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2621, + 2621, 2622, 2622, 2623, 2623, 2613, 2624, 2624, 2625, 2625, + 2626, 2626, 2625, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2616, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2625, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2616, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2625, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, - 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, - 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2604, 2610, 2616, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, + 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, + 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2613, 2619, 2625, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, - 2616, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2604, 2604, 2610, - 2604, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, + 2619, 2619, 2625, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2613, + 2613, 2619, 2613, 2613, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, - 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2616, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2604, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, + 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2625, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, - 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2616, 2610, 2610, + 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2613, 2619, 2613, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, + 2619, 2625, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2604, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, + 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, - 2610, 2604, 2610, 2610, 2610, 2610, 2604, 2610, 2604, 2610, - 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2613, 2619, 2613, 2619, 2619, 2619, + 2619, 2613, 2619, 2613, 2619, 2619, 2619, 2613, 2619, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2604, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2604, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, + 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2604, - 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, + 2619, 2619, 2619, 2613, 2619, 2613, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, + 2619, 2619, 2619, 2619, 2619, 2613, 2613, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2604, 2604, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2604, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2613, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2604, 2610, 2610, 2610, 2604, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2604, - 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, - 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2604, 2610, 2604, - 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, + 2619, 2619, 2613, 2619, 2619, 2619, 2613, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2613, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, + 2619, 2619, 2619, 2619, 2613, 2613, 2619, 2613, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2604, 2610, - 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, - 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2604, 2610, - 2610, 2610, 2604, 2610, 2604, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2604, 2610, 2610, 2610, 2610, 2610, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, + 2613, 2613, 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, - 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, + 2619, 2619, 2613, 2613, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2604, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2604, 2610, - 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2604, - 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, - 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, - 2610, 2604, 2604, 2610, 2610, 2610, 2610, 2610, 2604, 2610, - 2610, 2610, 2610, 2610, 2604, 2604, 2610, 2604, 2610, 2604, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, + 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, + 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2613, 2619, + 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, + 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, + 2613, 2613, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, - 2604, 2604, 2610, 2610, 2610, 2604, 2610, 2604, 2610, 2610, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2604, 2610, 2610, - 2610, 2610, 2604, 2610, 2610, 2610, 2604, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2604, 2604, 2610, 2610, 2610, - 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, + 2619, 2619, 2619, 2613, 2613, 2619, 2613, 2619, 2613, 2613, + 2613, 2619, 2619, 2619, 2613, 2619, 2613, 2619, 2619, 2619, + 2619, 2619, 2613, 2619, 2619, 2619, 2613, 2619, 2619, 2619, + 2619, 2613, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2613, 2613, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2604, 2610, - 2610, 2610, 2604, 2604, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2604, 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, - 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2604, 2604, - 2604, 2610, 2610, 2610, 2610, 2610, 2604, 2604, 2604, 2610, - 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2604, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2613, 2619, 2619, + 2619, 2613, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2613, + 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2613, 2613, 2613, + 2619, 2619, 2619, 2619, 2619, 2613, 2613, 2613, 2619, 2619, + 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2613, 2613, 2619, 2619, 2619, 2619, 2619, 2619, - 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, - 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2604, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2604, - 2610, 2610, 2604, 2610, 2610, 2610, 2604, 2610, 2610, 2610, - 2604, 2610, 2604, 2610, 2604, 2610, 2604, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2604, 2604, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2604, 2610, 2610, 2610, 2604, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2613, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2613, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, + 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, + 2619, 2613, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2613, + 2619, 2613, 2619, 2613, 2619, 2613, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2613, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2613, 2613, 2619, 2619, 2619, 2613, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, - 2610, 2604, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, - 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2604, 2604, 2604, 2604, 2610, 2610, 2610, 2604, 2604, 2610, - 2604, 2610, 2604, 2610, 2604, 2610, 2610, 2610, 2604, 2610, - 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2604, - 2610, 2604, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, - 2604, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, + 2613, 2613, 2613, 2619, 2619, 2619, 2613, 2613, 2619, 2613, + 2619, 2613, 2619, 2613, 2619, 2619, 2619, 2613, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2613, 2619, + 2613, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2613, - 2610, 2610, 2610, 2610, 2610, 2604, 2604, 2604, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, - 2610, 2610, 2604, 2610, 2610, 2604, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2604, 2604, 2610, - 2604, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, - 2604, 2604, 2610, 2610, 2610, 2610, 2610, 2604, 2610, 2610, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2604, 2610, 2604, 2604, 2610, 2610, - 2610, 2604, 2604, 2604, 2610, 2604, 2610, 2610, 2610, 2604, - 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2604, 2610, + 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2613, 2613, 2613, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, + 2619, 2613, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2613, 2619, 2613, 2613, 2619, 2613, + 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2613, + 2613, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, 2619, + 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2613, 2613, 2619, 2613, 2613, 2619, 2619, 2619, + 2613, 2613, 2613, 2619, 2613, 2619, 2619, 2619, 2613, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2604, 2610, 2604, - 2604, 2610, 2610, 2610, 2604, 2610, 2610, 2604, 2610, 2610, - 2610, 2610, 2610, 2610, 2604, 2604, 2610, 2610, 2610, 2610, - 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, - 2604, 2604, 2604, 2604, 2610, 2604, 2604, 2610, 2610, 2610, - 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2604, 2610, 2604, 2610, 2604, 2604, 2610, + 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2613, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2613, 2613, 2619, 2613, 2613, + 2619, 2619, 2619, 2613, 2619, 2619, 2613, 2619, 2619, 2619, + 2619, 2619, 2619, 2613, 2613, 2619, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2613, + 2613, 2613, 2613, 2619, 2613, 2613, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, - 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2604, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, - 2610, 2610, 2604, 2610, 2610, 2604, 2610, 2610, 2610, 2610, - 2610, 2604, 2610, 2610, 2610, 2610, 2610, 2610, 2604, 2610, - 2610, 2610, 2604, 2610, 2604, 2604, 2610, 2610, 2610, 2610, + 2619, 2619, 2613, 2619, 2613, 2619, 2613, 2613, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, + 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, 2619, + 2619, 2613, 2619, 2619, 2613, 2619, 2619, 2619, 2619, 2619, + 2613, 2619, 2619, 2619, 2619, 2619, 2619, 2613, 2619, 2619, - 2610, 2604, 2604, 0, 2604, 2604, 2604, 2604, 2604, 2604, - 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604 + 2619, 2613, 2619, 2613, 2613, 2619, 2619, 2619, 2619, 2619, + 2613, 2613, 0, 2613, 2613, 2613, 2613, 2613, 2613, 2613, + 2613, 2613, 2613, 2613, 2613, 2613, 2613 } ; -static const flex_int16_t yy_nxt[5145] = +static yyconst flex_uint16_t yy_nxt[5149] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 14, 18, 20, 21, 22, 23, 24, 25, 26, @@ -1355,500 +1367,500 @@ static const flex_int16_t yy_nxt[5145] = 71, 71, 373, 71, 381, 71, 71, 71, 382, 71, 71, 384, 71, 380, 71, 386, 377, 378, 71, 379, 71, 388, 71, 390, 383, 391, 71, 385, 387, 71, - 71, 71, 389, 71, 71, 475, 71, 400, 392, 393, + 71, 71, 389, 71, 71, 476, 71, 400, 392, 393, 397, 399, 71, 71, 406, 71, 71, 394, 395, 407, 396, 398, 71, 71, 403, 401, 402, 71, 71, 404, 405, 71, 413, 71, 71, 415, 71, 411, 410, 408, 412, 414, 409, 71, 71, 71, 71, 71, 71, 417, 422, 71, 71, 71, 71, 425, 71, 418, 416, 424, - 71, 71, 436, 421, 71, 419, 431, 420, 71, 426, + 150, 71, 436, 421, 71, 419, 431, 420, 71, 426, 437, 423, 71, 427, 71, 429, 71, 430, 71, 428, - 71, 432, 71, 71, 851, 438, 71, 439, 71, 441, - 71, 71, 150, 71, 433, 440, 448, 434, 71, 435, - 71, 449, 442, 445, 451, 443, 447, 444, 459, 446, + 71, 432, 71, 71, 71, 438, 71, 439, 497, 441, + 71, 71, 148, 71, 433, 440, 449, 434, 71, 435, + 71, 450, 442, 446, 71, 443, 448, 444, 460, 445, - 71, 150, 71, 464, 71, 466, 71, 450, 71, 460, - 452, 453, 461, 71, 71, 467, 71, 462, 71, 463, - 454, 465, 455, 456, 457, 469, 71, 458, 473, 71, - 470, 71, 71, 468, 71, 71, 471, 71, 474, 71, - 472, 481, 479, 71, 71, 71, 71, 71, 71, 476, - 478, 485, 477, 71, 480, 71, 483, 71, 488, 484, - 71, 71, 148, 482, 487, 489, 490, 71, 71, 71, - 71, 486, 495, 496, 71, 491, 492, 493, 497, 71, - 499, 494, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 509, 498, 504, 508, 507, 500, 510, 501, + 462, 447, 71, 461, 452, 463, 71, 451, 71, 71, + 453, 454, 150, 71, 71, 464, 71, 71, 71, 71, + 455, 466, 456, 457, 458, 468, 470, 459, 467, 71, + 71, 474, 71, 465, 71, 71, 469, 71, 472, 477, + 471, 475, 71, 473, 71, 482, 71, 480, 71, 479, + 478, 71, 71, 71, 486, 483, 71, 71, 484, 481, + 71, 489, 485, 490, 491, 71, 71, 71, 71, 488, + 71, 71, 496, 493, 71, 498, 71, 487, 71, 500, + 71, 71, 495, 494, 71, 492, 71, 71, 71, 501, + 499, 509, 502, 505, 71, 504, 508, 71, 503, 512, - 503, 71, 502, 511, 71, 505, 515, 506, 71, 71, - 513, 71, 512, 71, 517, 514, 71, 71, 71, 71, - 521, 522, 519, 71, 71, 71, 71, 71, 516, 518, - 523, 520, 71, 526, 71, 71, 71, 525, 71, 71, - 532, 71, 531, 71, 524, 528, 527, 71, 530, 71, - 535, 71, 533, 529, 71, 536, 71, 71, 71, 538, - 71, 71, 534, 546, 537, 539, 71, 548, 71, 71, - 541, 71, 71, 71, 71, 547, 549, 540, 542, 71, - 543, 544, 545, 553, 71, 71, 550, 551, 555, 71, - 552, 556, 71, 71, 554, 71, 71, 71, 558, 71, + 71, 510, 71, 511, 506, 71, 507, 71, 514, 513, + 71, 515, 71, 518, 71, 516, 71, 71, 71, 522, + 517, 520, 523, 71, 71, 71, 71, 519, 71, 524, + 521, 526, 71, 527, 71, 71, 71, 71, 71, 533, + 71, 532, 71, 71, 525, 534, 528, 71, 531, 71, + 536, 71, 529, 530, 71, 537, 540, 71, 71, 539, + 71, 71, 71, 535, 538, 547, 71, 549, 71, 71, + 542, 71, 71, 71, 550, 548, 546, 541, 543, 71, + 544, 545, 551, 554, 71, 71, 71, 552, 556, 71, + 553, 557, 555, 71, 71, 71, 71, 71, 559, 560, - 559, 71, 71, 562, 71, 71, 563, 565, 564, 71, - 146, 71, 71, 71, 560, 557, 71, 561, 578, 71, - 566, 580, 71, 71, 567, 71, 568, 71, 577, 575, - 576, 569, 71, 570, 579, 585, 582, 71, 581, 584, - 71, 571, 71, 71, 572, 573, 71, 583, 71, 587, - 71, 574, 588, 71, 589, 590, 71, 586, 591, 71, - 71, 71, 593, 71, 595, 592, 71, 71, 71, 596, - 150, 602, 600, 599, 601, 71, 71, 71, 594, 71, - 597, 598, 71, 604, 71, 71, 71, 603, 71, 609, - 611, 145, 71, 606, 71, 605, 71, 607, 71, 610, + 563, 71, 71, 71, 71, 71, 564, 566, 561, 71, + 565, 71, 71, 71, 562, 558, 579, 71, 71, 567, + 71, 578, 581, 568, 71, 569, 71, 584, 580, 576, + 570, 577, 571, 71, 582, 583, 586, 71, 585, 71, + 572, 71, 587, 573, 574, 71, 589, 71, 591, 71, + 575, 71, 71, 71, 71, 71, 71, 588, 71, 71, + 597, 71, 71, 593, 592, 598, 590, 594, 601, 150, + 602, 71, 595, 603, 600, 604, 596, 599, 71, 71, + 71, 71, 71, 605, 71, 71, 71, 71, 71, 611, + 613, 615, 71, 606, 608, 614, 71, 609, 607, 612, - 612, 614, 608, 613, 71, 616, 615, 71, 617, 71, - 71, 71, 618, 619, 71, 620, 71, 621, 71, 625, - 71, 628, 71, 630, 626, 71, 629, 71, 71, 71, - 631, 71, 622, 627, 624, 623, 632, 71, 633, 71, - 71, 71, 71, 71, 71, 635, 638, 71, 71, 634, - 637, 642, 641, 71, 71, 71, 71, 71, 636, 643, - 71, 645, 647, 71, 639, 648, 640, 71, 71, 71, - 650, 644, 71, 654, 646, 651, 71, 649, 71, 652, - 71, 71, 71, 656, 660, 657, 71, 653, 71, 71, - 71, 662, 71, 71, 655, 658, 663, 659, 661, 71, + 616, 618, 610, 71, 71, 71, 71, 71, 617, 71, + 622, 71, 620, 71, 623, 619, 627, 71, 71, 621, + 71, 628, 71, 630, 71, 631, 71, 71, 632, 624, + 71, 629, 625, 626, 71, 633, 71, 634, 71, 635, + 71, 636, 71, 71, 71, 71, 638, 637, 639, 71, + 71, 644, 640, 641, 643, 71, 71, 71, 71, 645, + 649, 71, 642, 647, 648, 71, 71, 71, 71, 71, + 650, 652, 71, 656, 646, 651, 653, 71, 71, 71, + 654, 71, 658, 659, 662, 655, 71, 657, 71, 71, + 71, 664, 71, 660, 71, 663, 661, 667, 665, 71, - 71, 71, 667, 71, 665, 666, 668, 71, 669, 671, - 71, 71, 71, 675, 71, 71, 672, 71, 664, 71, - 676, 670, 71, 71, 674, 677, 678, 673, 71, 681, - 682, 71, 71, 679, 684, 680, 71, 683, 71, 71, - 71, 685, 687, 71, 686, 71, 693, 688, 71, 71, - 691, 692, 71, 71, 71, 699, 689, 71, 690, 696, - 697, 71, 695, 71, 71, 71, 702, 71, 694, 706, - 701, 703, 71, 71, 704, 698, 700, 71, 71, 71, - 708, 71, 71, 71, 71, 71, 71, 71, 705, 714, - 71, 71, 71, 71, 71, 715, 707, 709, 71, 710, + 71, 71, 71, 71, 668, 669, 671, 673, 71, 71, + 677, 71, 674, 670, 71, 71, 71, 679, 71, 71, + 666, 678, 672, 676, 71, 675, 71, 680, 684, 71, + 71, 681, 686, 683, 71, 685, 682, 71, 71, 71, + 687, 689, 691, 71, 688, 71, 690, 71, 695, 71, + 71, 71, 71, 71, 71, 71, 692, 698, 699, 697, + 701, 71, 71, 702, 693, 694, 71, 703, 696, 704, + 71, 706, 71, 700, 705, 71, 71, 71, 707, 708, + 709, 71, 71, 710, 71, 71, 71, 71, 71, 71, + 711, 716, 71, 723, 712, 717, 71, 71, 71, 71, - 711, 71, 712, 71, 713, 716, 718, 720, 721, 717, - 719, 71, 722, 723, 71, 71, 71, 728, 71, 724, - 71, 725, 729, 71, 71, 71, 71, 71, 732, 726, - 71, 71, 71, 71, 727, 731, 737, 736, 739, 730, - 735, 733, 71, 71, 71, 734, 71, 71, 740, 738, - 741, 742, 71, 71, 150, 743, 71, 71, 71, 747, - 748, 744, 745, 71, 746, 71, 71, 749, 71, 71, - 750, 755, 71, 752, 751, 71, 756, 758, 71, 71, - 753, 71, 71, 71, 757, 761, 71, 763, 759, 754, - 71, 71, 71, 766, 769, 71, 71, 71, 764, 71, + 713, 71, 71, 714, 718, 715, 719, 71, 721, 71, + 71, 720, 722, 71, 731, 71, 71, 724, 71, 71, + 725, 729, 732, 71, 71, 726, 71, 727, 728, 730, + 734, 735, 71, 71, 71, 733, 71, 71, 146, 736, + 739, 740, 71, 737, 741, 738, 71, 742, 71, 71, + 71, 743, 744, 71, 71, 745, 150, 71, 746, 71, + 751, 750, 748, 752, 747, 71, 749, 71, 71, 71, + 71, 758, 71, 71, 759, 71, 754, 761, 71, 753, + 71, 764, 760, 755, 756, 71, 71, 71, 71, 762, + 757, 71, 766, 769, 763, 71, 71, 71, 767, 71, - 760, 71, 762, 767, 71, 71, 71, 779, 765, 71, - 768, 771, 776, 780, 778, 772, 770, 71, 773, 71, - 781, 777, 71, 782, 71, 774, 71, 786, 775, 71, - 143, 784, 71, 71, 794, 783, 71, 71, 71, 799, - 71, 798, 71, 71, 71, 801, 785, 71, 787, 788, - 800, 789, 71, 795, 790, 796, 71, 802, 807, 791, - 71, 797, 71, 803, 71, 792, 793, 71, 71, 804, - 805, 809, 808, 806, 71, 71, 71, 71, 810, 71, - 814, 71, 71, 71, 813, 71, 71, 820, 71, 71, - 71, 819, 854, 818, 823, 811, 812, 815, 821, 816, + 71, 71, 71, 770, 71, 765, 71, 145, 71, 768, + 71, 774, 783, 781, 771, 775, 779, 71, 776, 780, + 773, 786, 772, 782, 71, 777, 71, 784, 778, 71, + 785, 71, 71, 789, 71, 71, 143, 797, 787, 71, + 71, 71, 802, 71, 801, 71, 804, 71, 71, 806, + 71, 788, 71, 790, 791, 798, 792, 803, 799, 793, + 800, 71, 805, 71, 794, 71, 807, 71, 808, 71, + 795, 796, 809, 71, 71, 810, 71, 71, 813, 71, + 71, 811, 812, 71, 817, 816, 71, 71, 71, 71, + 823, 71, 141, 822, 71, 818, 814, 824, 815, 826, - 824, 817, 825, 822, 71, 71, 71, 71, 71, 71, - 826, 827, 71, 71, 71, 71, 71, 828, 71, 831, - 829, 71, 832, 834, 71, 71, 837, 835, 71, 836, - 71, 830, 71, 71, 71, 833, 71, 839, 841, 840, - 71, 844, 71, 842, 838, 843, 71, 71, 847, 71, - 71, 71, 71, 71, 845, 852, 855, 71, 71, 71, - 850, 71, 71, 853, 848, 71, 857, 71, 71, 849, - 71, 846, 71, 71, 856, 71, 864, 863, 71, 858, - 71, 861, 859, 71, 867, 860, 71, 862, 865, 71, - 868, 71, 866, 872, 71, 871, 71, 870, 71, 869, + 819, 821, 825, 71, 827, 820, 828, 71, 71, 71, + 71, 829, 71, 830, 71, 71, 71, 831, 71, 71, + 71, 834, 832, 837, 71, 835, 71, 71, 71, 838, + 840, 71, 71, 833, 839, 71, 71, 842, 836, 71, + 843, 845, 71, 71, 844, 846, 841, 71, 847, 848, + 71, 850, 71, 71, 71, 71, 71, 71, 857, 71, + 855, 71, 853, 858, 71, 71, 860, 851, 856, 71, + 71, 71, 849, 852, 71, 71, 71, 71, 71, 854, + 859, 867, 71, 71, 866, 71, 861, 71, 71, 862, + 863, 870, 71, 864, 865, 869, 868, 871, 874, 875, - 71, 71, 879, 71, 881, 71, 873, 71, 71, 882, - 71, 874, 71, 71, 878, 71, 875, 71, 886, 889, - 876, 877, 71, 880, 884, 71, 883, 71, 888, 71, - 71, 893, 885, 890, 71, 891, 887, 71, 895, 71, - 896, 71, 892, 898, 150, 71, 897, 71, 71, 901, - 71, 900, 71, 71, 894, 71, 71, 904, 71, 71, - 899, 71, 71, 71, 916, 71, 71, 71, 967, 917, - 71, 71, 902, 903, 905, 907, 922, 71, 908, 141, - 906, 918, 71, 909, 71, 921, 920, 910, 71, 911, - 71, 923, 919, 912, 71, 913, 924, 71, 927, 71, + 71, 873, 872, 71, 71, 71, 71, 881, 876, 883, + 71, 71, 885, 71, 71, 71, 71, 71, 71, 71, + 886, 71, 892, 877, 878, 882, 880, 879, 893, 888, + 884, 71, 71, 887, 71, 894, 890, 889, 71, 71, + 891, 897, 71, 899, 71, 71, 71, 71, 902, 150, + 71, 901, 896, 71, 71, 905, 895, 904, 71, 71, + 71, 71, 898, 900, 71, 903, 908, 71, 71, 71, + 71, 920, 71, 71, 71, 71, 921, 71, 71, 907, + 906, 911, 924, 909, 910, 941, 71, 71, 912, 922, + 913, 71, 925, 945, 914, 71, 915, 71, 923, 71, - 914, 925, 71, 928, 926, 915, 71, 71, 71, 71, - 936, 929, 931, 932, 71, 935, 71, 71, 933, 937, - 71, 930, 934, 938, 939, 71, 71, 71, 71, 71, - 71, 71, 949, 940, 71, 941, 71, 942, 948, 950, - 71, 951, 943, 71, 944, 71, 952, 71, 953, 71, - 956, 958, 71, 957, 955, 945, 946, 954, 960, 71, - 71, 964, 947, 959, 71, 71, 962, 71, 961, 71, - 71, 71, 71, 963, 965, 970, 71, 71, 71, 71, - 968, 71, 71, 973, 71, 971, 71, 979, 969, 966, - 71, 71, 71, 71, 71, 977, 972, 71, 975, 974, + 916, 927, 917, 928, 926, 71, 71, 918, 929, 71, + 931, 930, 919, 71, 71, 71, 937, 71, 933, 935, + 932, 71, 71, 71, 940, 71, 956, 939, 934, 936, + 71, 938, 942, 943, 71, 952, 71, 71, 71, 71, + 71, 944, 71, 946, 71, 953, 955, 71, 947, 957, + 948, 71, 954, 71, 71, 958, 962, 71, 964, 71, + 71, 949, 950, 963, 71, 959, 71, 71, 951, 965, + 968, 71, 960, 961, 71, 71, 71, 71, 71, 966, + 967, 974, 969, 971, 972, 71, 71, 71, 71, 71, + 970, 71, 71, 977, 973, 975, 983, 71, 71, 71, - 978, 71, 976, 71, 71, 71, 980, 71, 981, 985, - 986, 982, 987, 71, 990, 983, 984, 71, 989, 71, - 71, 71, 988, 993, 71, 71, 71, 995, 994, 71, - 996, 71, 991, 71, 997, 71, 1003, 992, 998, 71, - 71, 1005, 71, 71, 71, 999, 1006, 71, 1001, 2604, - 71, 1000, 71, 71, 1002, 1008, 71, 1009, 71, 71, - 1004, 1011, 71, 1012, 71, 1007, 71, 1017, 1014, 1010, - 71, 1013, 1016, 71, 1018, 71, 71, 71, 71, 1019, - 1015, 1021, 71, 71, 71, 1026, 1027, 71, 71, 71, - 1031, 71, 71, 1028, 1020, 1022, 71, 1025, 1033, 71, + 71, 71, 71, 71, 976, 979, 981, 982, 71, 978, + 71, 71, 980, 71, 985, 984, 989, 71, 990, 992, + 986, 987, 991, 988, 71, 993, 994, 71, 71, 997, + 71, 71, 71, 1001, 998, 71, 71, 71, 999, 71, + 995, 1000, 71, 71, 996, 1002, 1007, 71, 1009, 71, + 71, 2613, 71, 1010, 71, 1005, 1003, 1004, 1006, 71, + 71, 71, 71, 71, 1012, 1013, 71, 1008, 1015, 71, + 1011, 1016, 71, 71, 1017, 1018, 1021, 1014, 71, 1020, + 1022, 71, 71, 71, 71, 71, 71, 1023, 1019, 1025, + 71, 1030, 71, 1031, 71, 71, 71, 71, 71, 71, - 71, 1023, 71, 1024, 1029, 1030, 1032, 71, 71, 71, - 71, 1035, 71, 1036, 1039, 1040, 71, 1042, 1034, 71, - 71, 71, 1038, 1043, 71, 71, 1047, 1037, 71, 71, - 71, 1041, 71, 71, 71, 71, 1053, 71, 1044, 1045, - 1046, 1049, 71, 71, 71, 71, 71, 1048, 71, 1057, - 1059, 71, 1050, 2604, 1052, 1058, 1054, 1056, 1055, 1051, - 1061, 1062, 71, 71, 71, 1064, 71, 71, 1060, 1063, - 71, 71, 71, 71, 71, 1065, 1066, 1068, 71, 71, - 71, 1074, 71, 71, 71, 1067, 1071, 71, 1069, 71, - 71, 71, 1083, 1070, 1079, 1072, 1077, 1073, 1075, 71, + 1032, 1024, 1026, 1033, 1027, 1029, 71, 1035, 1036, 71, + 1028, 71, 1034, 71, 1038, 1037, 71, 71, 71, 1039, + 1040, 71, 1041, 1044, 1045, 71, 71, 1048, 71, 71, + 71, 1047, 71, 1043, 71, 71, 1042, 1052, 71, 71, + 1046, 71, 71, 71, 71, 1058, 71, 1051, 1050, 71, + 71, 1049, 1054, 71, 71, 71, 1053, 71, 1055, 1062, + 71, 1061, 1069, 1057, 1059, 1066, 1063, 1056, 1060, 1064, + 71, 71, 1067, 71, 71, 1065, 71, 71, 71, 1068, + 71, 1070, 71, 71, 71, 1073, 71, 1071, 71, 1079, + 71, 1072, 71, 1076, 71, 71, 71, 1074, 1163, 1077, - 71, 1076, 71, 1080, 1084, 1081, 71, 1078, 1082, 1085, - 71, 71, 71, 1087, 1086, 71, 71, 1090, 71, 71, - 1089, 1092, 1094, 71, 1088, 71, 71, 71, 71, 71, - 1095, 1097, 1098, 71, 1091, 71, 1099, 1093, 71, 1096, - 71, 71, 71, 71, 1100, 71, 71, 1102, 1104, 71, - 71, 71, 1101, 1103, 1105, 1109, 71, 71, 71, 1106, - 1114, 1110, 71, 1108, 1107, 1113, 71, 71, 71, 71, - 1111, 1112, 1115, 1118, 1119, 1116, 1120, 1117, 71, 2604, - 71, 1121, 71, 71, 1125, 71, 71, 71, 1122, 2604, - 1134, 1151, 1123, 1124, 71, 1133, 71, 71, 1132, 1126, + 71, 1082, 1075, 71, 71, 1088, 1080, 1078, 1084, 71, + 71, 71, 1081, 71, 1089, 71, 1083, 1085, 1090, 1086, + 71, 71, 1087, 1092, 1091, 71, 71, 71, 71, 2613, + 1094, 1093, 1095, 1097, 1096, 1099, 71, 71, 71, 71, + 71, 71, 1100, 1102, 1098, 1103, 1101, 71, 1104, 71, + 71, 71, 71, 71, 71, 1105, 71, 71, 1109, 71, + 71, 1107, 71, 1114, 1110, 1108, 1106, 71, 71, 71, + 2613, 71, 1111, 71, 1113, 1112, 1118, 1115, 1119, 1116, + 1117, 1121, 1120, 71, 71, 71, 1125, 71, 1123, 1122, + 1127, 1126, 71, 71, 71, 1130, 71, 1124, 1139, 71, - 71, 1135, 1127, 1128, 71, 71, 1137, 1129, 71, 1136, - 1138, 71, 71, 1130, 71, 1140, 1139, 1131, 71, 71, - 71, 1141, 71, 1142, 1145, 1148, 1146, 1149, 1143, 1144, - 71, 71, 71, 71, 71, 1150, 71, 1157, 71, 71, - 1147, 1152, 1158, 1160, 71, 1159, 1153, 71, 1154, 71, - 1155, 1164, 1156, 1161, 71, 71, 1165, 71, 1163, 71, - 1167, 71, 71, 71, 71, 1162, 71, 71, 71, 71, - 1169, 71, 1172, 1168, 1174, 71, 1166, 1176, 71, 71, - 1173, 1170, 1171, 1179, 71, 1175, 1180, 71, 1182, 71, - 71, 71, 1178, 1177, 1181, 71, 71, 1183, 71, 1184, + 71, 1128, 71, 1140, 71, 1141, 1129, 71, 1138, 1137, + 71, 71, 1131, 71, 71, 1132, 1133, 71, 1143, 1142, + 1134, 71, 1144, 71, 1145, 1151, 1135, 71, 71, 1153, + 1136, 1146, 71, 1147, 1148, 71, 1149, 1150, 1154, 1152, + 71, 71, 71, 71, 71, 1155, 1156, 71, 1162, 71, + 1157, 71, 71, 1165, 1164, 1158, 71, 1159, 1169, 1160, + 71, 1161, 71, 1170, 71, 1168, 1166, 1172, 71, 71, + 1167, 71, 71, 71, 71, 71, 71, 1174, 71, 71, + 1179, 1177, 1171, 1173, 71, 1181, 1185, 71, 1178, 71, + 1175, 1176, 1180, 71, 1184, 1187, 71, 1182, 71, 71, - 1187, 71, 71, 1185, 1188, 1189, 71, 1190, 71, 1186, - 1193, 71, 1191, 71, 71, 71, 71, 1196, 71, 1195, - 71, 1197, 71, 71, 1199, 1198, 71, 1200, 1201, 1192, - 71, 1202, 71, 1194, 71, 71, 1207, 1208, 1204, 71, - 71, 1205, 71, 71, 1203, 1209, 1210, 71, 1206, 71, - 1214, 71, 71, 71, 71, 71, 1211, 1218, 1212, 1219, - 1213, 71, 1221, 71, 71, 71, 71, 1220, 71, 71, - 71, 71, 71, 1215, 1216, 71, 1228, 71, 1217, 71, - 1222, 1225, 71, 71, 1224, 1226, 1223, 1232, 1227, 1233, - 71, 71, 1229, 71, 1237, 71, 1235, 1231, 71, 1238, + 1188, 71, 1189, 71, 1192, 71, 1190, 71, 1186, 1183, + 1194, 71, 71, 71, 71, 1198, 71, 1195, 71, 71, + 2613, 71, 1191, 1201, 1200, 71, 71, 1193, 1202, 71, + 1208, 1203, 71, 71, 1196, 1197, 71, 1204, 1199, 71, + 71, 1205, 71, 71, 1206, 1207, 71, 1213, 1210, 1214, + 1211, 71, 1216, 71, 1209, 71, 1215, 71, 71, 1212, + 71, 71, 1220, 71, 71, 71, 1217, 71, 1224, 1225, + 71, 1227, 1219, 71, 71, 71, 1226, 71, 71, 1218, + 71, 71, 71, 71, 1221, 1222, 71, 1228, 71, 1234, + 1223, 71, 1231, 1229, 71, 1232, 1239, 71, 1230, 1238, - 71, 71, 1230, 71, 1239, 71, 1234, 71, 71, 1240, - 71, 71, 1236, 1242, 71, 1245, 1247, 1241, 1246, 1249, - 1243, 1248, 71, 1244, 71, 71, 1250, 1252, 71, 71, - 71, 71, 71, 71, 1255, 1251, 71, 1253, 71, 1260, - 1261, 71, 71, 71, 71, 71, 1254, 1258, 1256, 71, - 1259, 1257, 71, 71, 2604, 1264, 71, 71, 71, 1262, - 1267, 1263, 1270, 1265, 1268, 1271, 1266, 71, 71, 71, - 1275, 71, 1269, 1272, 1273, 71, 1274, 71, 71, 1280, - 71, 1277, 1281, 1279, 1285, 71, 1276, 71, 71, 71, - 1282, 71, 1283, 1284, 71, 71, 1286, 71, 1278, 71, + 1233, 71, 71, 1235, 71, 71, 71, 1241, 1243, 1237, + 71, 1236, 71, 1244, 71, 1245, 71, 71, 1246, 1247, + 71, 71, 1251, 1242, 1240, 1252, 71, 1248, 1253, 71, + 1255, 1249, 71, 1256, 1250, 1254, 71, 71, 71, 1258, + 71, 71, 71, 1257, 71, 1261, 71, 71, 1266, 71, + 71, 71, 71, 1267, 71, 71, 1260, 71, 1264, 1262, + 71, 71, 1263, 1259, 1265, 71, 1270, 71, 1268, 1272, + 1269, 1271, 1273, 71, 1277, 1274, 71, 71, 1276, 71, + 1275, 1278, 71, 1279, 71, 1281, 1280, 71, 1283, 71, + 71, 1286, 1287, 1291, 1282, 1285, 71, 71, 71, 71, - 71, 71, 1291, 71, 71, 71, 71, 1290, 71, 71, - 1294, 1288, 1293, 1287, 1289, 71, 1297, 71, 71, 1299, - 1295, 1298, 71, 1292, 1300, 71, 71, 1296, 71, 1301, - 71, 71, 1307, 71, 1302, 1311, 1303, 1304, 71, 1310, - 71, 71, 71, 71, 71, 71, 1305, 71, 1306, 71, - 1309, 71, 71, 1319, 1308, 71, 71, 2604, 1320, 1312, - 1325, 1313, 1314, 1315, 1318, 1316, 1317, 71, 1321, 1322, - 71, 71, 1323, 71, 71, 1324, 71, 71, 71, 1328, - 71, 1331, 1326, 1329, 71, 71, 71, 1327, 1335, 71, - 71, 1336, 71, 1332, 71, 1337, 1330, 71, 1338, 71, + 1288, 71, 1289, 1290, 71, 1292, 71, 71, 1284, 71, + 71, 71, 1297, 71, 71, 71, 1296, 71, 71, 71, + 1300, 1294, 1299, 1303, 1293, 1295, 71, 71, 1304, 71, + 1305, 1301, 71, 1298, 71, 1306, 71, 1302, 71, 1307, + 71, 1313, 71, 71, 1317, 1308, 1309, 71, 71, 1316, + 71, 1310, 71, 71, 1311, 71, 1312, 71, 71, 71, + 71, 1315, 71, 1325, 71, 71, 1314, 1318, 1326, 1329, + 1327, 1319, 1320, 1322, 1321, 1324, 1328, 71, 1323, 71, + 71, 71, 71, 1330, 71, 71, 71, 1334, 71, 1337, + 1332, 1335, 71, 1331, 71, 1333, 1341, 71, 71, 71, - 1333, 1334, 1343, 1339, 1340, 1344, 71, 71, 71, 71, - 1341, 71, 71, 1348, 1349, 71, 1347, 1342, 1350, 71, - 71, 1351, 71, 71, 71, 1345, 71, 1354, 71, 1355, - 1346, 1352, 71, 71, 1358, 71, 71, 1357, 71, 1353, - 71, 1361, 71, 71, 1365, 71, 71, 1356, 1363, 71, - 1359, 71, 1362, 1366, 71, 1368, 71, 1364, 71, 71, - 71, 1360, 1371, 1374, 71, 1373, 1367, 1370, 71, 71, - 71, 71, 71, 1369, 71, 1381, 71, 2604, 1372, 71, - 71, 1382, 71, 1376, 71, 1379, 1375, 71, 1390, 1377, - 1378, 1385, 1386, 71, 71, 1388, 71, 1380, 71, 1383, + 71, 1338, 71, 1342, 1336, 1343, 1344, 71, 1339, 71, + 1340, 1345, 1346, 1349, 1350, 71, 71, 1347, 71, 71, + 71, 71, 1354, 71, 1355, 1353, 1356, 71, 71, 1348, + 71, 1357, 71, 71, 1351, 71, 71, 1361, 1360, 1352, + 71, 71, 71, 1364, 1358, 71, 1363, 71, 1367, 1359, + 71, 1368, 71, 71, 71, 1372, 71, 71, 1370, 71, + 71, 1362, 1366, 1365, 1373, 71, 1369, 71, 1375, 1371, + 71, 71, 71, 71, 1378, 71, 1377, 1374, 1380, 1381, + 71, 1376, 71, 71, 71, 71, 1383, 71, 1388, 71, + 1379, 71, 71, 1382, 1389, 71, 71, 1386, 71, 1401, - 1384, 1389, 1392, 71, 1387, 1394, 71, 71, 71, 71, - 71, 71, 1398, 71, 1399, 1396, 71, 1393, 1391, 71, - 71, 71, 71, 1404, 1403, 71, 1395, 71, 71, 71, - 1400, 71, 2604, 1411, 1397, 1402, 1410, 1401, 71, 1405, - 1412, 1407, 71, 71, 1408, 1406, 71, 1416, 1413, 1415, - 71, 1417, 71, 71, 1414, 71, 1409, 71, 1418, 71, - 1419, 71, 71, 1424, 1425, 1420, 71, 1427, 71, 71, - 71, 1426, 71, 71, 71, 1430, 71, 1421, 71, 1429, - 1422, 71, 1423, 1431, 71, 71, 71, 71, 1439, 71, - 1432, 1428, 71, 71, 71, 71, 71, 1444, 71, 1435, + 71, 1384, 1385, 1393, 1392, 1390, 71, 1397, 1395, 1387, + 71, 1391, 1394, 71, 1399, 1396, 1398, 71, 71, 71, + 71, 71, 71, 1405, 71, 1403, 71, 1406, 71, 71, + 71, 1400, 71, 1410, 71, 1411, 71, 1402, 1407, 71, + 71, 1424, 2613, 1417, 1409, 1404, 1408, 71, 1412, 71, + 1414, 71, 1413, 1415, 71, 71, 1418, 71, 71, 71, + 1420, 1422, 1423, 1419, 1421, 1416, 71, 1425, 71, 71, + 1427, 71, 71, 1431, 1426, 1432, 1434, 1428, 71, 71, + 71, 71, 71, 1433, 71, 1437, 71, 71, 71, 1436, + 1429, 71, 1430, 1438, 71, 71, 71, 71, 1446, 71, - 1436, 1433, 1438, 71, 1434, 1437, 71, 1440, 71, 1442, - 71, 1446, 1441, 71, 1447, 71, 71, 1443, 71, 71, - 71, 71, 1449, 1445, 71, 1448, 1454, 1452, 71, 71, - 1455, 1461, 71, 1456, 1451, 1453, 1462, 71, 71, 1450, - 1457, 1463, 71, 1458, 1464, 71, 71, 71, 1459, 71, - 71, 71, 1467, 71, 1460, 1465, 71, 1474, 1469, 71, - 1475, 71, 1473, 71, 71, 1466, 1468, 71, 1471, 71, - 1470, 1472, 71, 71, 71, 71, 1476, 1477, 71, 1484, - 71, 71, 71, 1479, 71, 1478, 1481, 1487, 1480, 71, - 1486, 71, 1488, 1483, 71, 71, 1485, 71, 1482, 1498, + 71, 71, 71, 1435, 71, 1439, 71, 1451, 71, 1442, + 1443, 1440, 1444, 71, 1441, 1445, 71, 1447, 71, 1448, + 1449, 1453, 1450, 71, 1454, 71, 71, 71, 71, 71, + 71, 71, 1456, 1452, 71, 71, 71, 1459, 1461, 1462, + 1455, 71, 1463, 71, 1460, 1458, 1468, 71, 1474, 1465, + 1457, 1464, 1469, 71, 1466, 71, 1471, 71, 1470, 71, + 1473, 1467, 71, 71, 71, 71, 71, 1482, 71, 71, + 1481, 71, 1472, 1476, 1478, 1480, 71, 1479, 1475, 71, + 71, 71, 1477, 71, 1484, 71, 71, 71, 1491, 1483, + 71, 71, 2613, 1488, 1486, 71, 71, 1485, 71, 1487, - 71, 2604, 1492, 1495, 1490, 71, 1489, 1491, 1496, 71, - 1493, 1497, 1494, 1500, 71, 1501, 71, 71, 1499, 1503, - 71, 71, 1502, 71, 1507, 71, 1504, 71, 71, 71, - 71, 71, 1509, 71, 71, 71, 1505, 1506, 1510, 71, - 1508, 1513, 71, 1516, 71, 71, 71, 1511, 1514, 71, - 1512, 1521, 1518, 1515, 71, 1517, 71, 71, 1520, 1524, - 71, 71, 1522, 1519, 71, 1526, 71, 71, 71, 1527, - 71, 1528, 1523, 1529, 71, 71, 1525, 1533, 71, 1530, - 71, 71, 1537, 71, 71, 71, 71, 71, 71, 1532, - 1531, 71, 1535, 1539, 1534, 1544, 71, 1540, 1538, 1541, + 1493, 1494, 71, 1495, 1490, 71, 1492, 71, 1505, 71, + 1489, 71, 1504, 1499, 71, 1502, 1497, 1496, 1508, 1498, + 1503, 71, 1507, 71, 71, 71, 1500, 1501, 1510, 1506, + 1509, 71, 71, 71, 71, 1514, 71, 1511, 71, 71, + 71, 71, 1516, 71, 1523, 71, 71, 1513, 1517, 1515, + 71, 1520, 1512, 71, 71, 71, 71, 1518, 1521, 1519, + 1522, 1529, 71, 71, 71, 71, 1524, 71, 1532, 71, + 71, 71, 71, 1526, 1525, 1527, 1528, 71, 1530, 71, + 1538, 1534, 1531, 71, 1535, 1533, 71, 1540, 1536, 1541, + 71, 1537, 71, 1539, 71, 71, 1545, 71, 71, 71, - 1536, 71, 71, 71, 1548, 71, 71, 1542, 1545, 1547, - 71, 1543, 71, 1549, 1550, 71, 71, 1551, 1553, 71, - 1546, 71, 71, 71, 1555, 1552, 1556, 71, 1558, 71, - 71, 71, 71, 1554, 1561, 71, 71, 71, 71, 71, - 1565, 1562, 71, 1570, 71, 71, 1566, 1557, 1559, 1560, - 1563, 1564, 1571, 71, 1569, 71, 71, 1576, 71, 1567, - 71, 71, 1568, 1575, 1577, 71, 1572, 1578, 71, 1580, - 71, 71, 1573, 71, 71, 1574, 1583, 71, 1584, 1585, - 1579, 71, 1587, 71, 1586, 71, 71, 1589, 71, 1592, - 71, 2604, 1581, 71, 1582, 71, 71, 1593, 1591, 1594, + 71, 71, 71, 71, 1552, 71, 1543, 1547, 71, 71, + 71, 1542, 1546, 1548, 1544, 1549, 1633, 1553, 1550, 71, + 1556, 71, 1551, 71, 71, 1555, 1554, 1557, 1558, 71, + 71, 71, 1560, 1561, 71, 1559, 71, 71, 1563, 71, + 1564, 71, 71, 1562, 71, 71, 71, 71, 71, 71, + 1569, 71, 1573, 71, 71, 1570, 71, 1574, 71, 1565, + 1567, 1571, 1568, 1566, 1578, 71, 1572, 71, 1579, 1577, + 1575, 71, 1584, 1576, 71, 1585, 71, 1580, 1582, 71, + 71, 1583, 1586, 71, 1588, 71, 1581, 71, 71, 1591, + 71, 71, 1593, 71, 71, 1592, 1594, 1595, 71, 1597, - 71, 1588, 71, 71, 1601, 71, 71, 71, 71, 1606, - 71, 1590, 1595, 1596, 1597, 1603, 71, 71, 71, 1598, - 1604, 71, 1599, 1600, 71, 1609, 1602, 71, 1607, 1612, - 1605, 71, 71, 1608, 1613, 71, 1610, 71, 1615, 71, - 71, 71, 1618, 71, 1611, 1619, 71, 71, 71, 1623, - 71, 71, 1620, 71, 71, 71, 1621, 71, 1614, 1616, - 1625, 71, 1617, 1626, 71, 1628, 1624, 71, 1632, 1622, - 71, 71, 1631, 1635, 71, 71, 1636, 1630, 1634, 71, - 1638, 1627, 71, 1629, 1637, 71, 71, 71, 71, 71, - 1633, 71, 71, 71, 1643, 1639, 71, 1646, 1647, 71, + 1587, 71, 71, 71, 71, 71, 71, 1599, 1589, 1590, + 1600, 71, 1596, 71, 1601, 1602, 71, 1609, 1603, 1604, + 1605, 71, 1607, 71, 71, 1606, 1598, 1611, 71, 71, + 71, 1614, 1612, 71, 71, 71, 1608, 1617, 71, 71, + 71, 1615, 1613, 71, 1610, 1621, 71, 1618, 71, 1616, + 71, 1623, 71, 71, 1626, 1619, 1627, 71, 71, 71, + 1620, 71, 1631, 71, 71, 71, 1622, 1628, 1624, 71, + 1629, 71, 1636, 71, 1625, 1640, 71, 71, 1634, 1632, + 1630, 71, 1639, 71, 1643, 71, 71, 71, 1644, 71, + 71, 1635, 1638, 1642, 71, 1645, 71, 71, 1647, 1637, - 1642, 71, 71, 71, 71, 71, 1650, 1640, 1641, 71, - 1644, 71, 71, 71, 1649, 71, 1656, 1660, 71, 1645, - 71, 1648, 1651, 1652, 1653, 71, 1654, 1658, 1655, 1659, - 71, 1657, 71, 1663, 71, 71, 1664, 71, 1668, 71, - 1666, 1669, 71, 1661, 71, 71, 71, 71, 1662, 1665, - 1670, 1673, 71, 1674, 1676, 71, 1671, 1667, 1675, 71, - 71, 1672, 1677, 1680, 71, 1678, 71, 1679, 71, 71, - 1682, 71, 1684, 1685, 71, 1687, 1681, 71, 71, 71, - 71, 71, 71, 1683, 71, 71, 2604, 1691, 1692, 1688, - 1689, 71, 1693, 1694, 71, 1697, 1686, 1695, 71, 1690, + 71, 71, 1646, 1641, 1651, 1648, 1649, 71, 71, 71, + 1654, 1655, 1650, 71, 71, 71, 71, 71, 71, 1658, + 71, 71, 71, 71, 71, 1652, 1664, 1665, 1668, 1657, + 71, 71, 71, 1656, 1653, 1659, 1660, 1661, 1662, 1663, + 1666, 1667, 71, 1669, 1671, 71, 71, 71, 1670, 71, + 1676, 1672, 1677, 71, 71, 71, 71, 71, 1678, 1685, + 1673, 1681, 71, 1682, 71, 71, 1679, 1674, 1683, 1675, + 1686, 1680, 71, 1684, 71, 1689, 71, 71, 71, 71, + 71, 71, 1691, 1687, 1688, 71, 1694, 1696, 71, 1690, + 71, 1692, 71, 71, 71, 71, 71, 71, 1701, 71, - 71, 71, 71, 71, 1696, 71, 1698, 1699, 71, 1700, - 71, 71, 71, 1702, 1701, 1703, 71, 1708, 71, 71, - 71, 71, 1704, 1705, 1707, 71, 1710, 71, 1706, 1709, - 1711, 1712, 71, 71, 71, 71, 71, 71, 71, 1719, - 1717, 71, 1714, 1718, 71, 71, 71, 1713, 71, 1721, - 71, 1720, 1715, 1724, 1716, 1725, 71, 1728, 71, 1723, - 1722, 71, 1726, 71, 71, 71, 1733, 71, 71, 1727, - 71, 1735, 71, 71, 71, 1736, 1738, 1729, 1732, 1730, - 1731, 1737, 71, 71, 1734, 71, 1741, 71, 71, 71, - 1739, 71, 71, 71, 1740, 71, 1742, 71, 71, 71, + 1697, 1700, 1698, 71, 1702, 1693, 1706, 1695, 1703, 71, + 1704, 71, 71, 1699, 71, 1738, 71, 1705, 71, 71, + 1707, 1708, 71, 71, 1709, 71, 1712, 1711, 1710, 71, + 71, 71, 1717, 71, 71, 71, 1716, 1713, 71, 71, + 1719, 1714, 1715, 1718, 1720, 1721, 71, 71, 71, 71, + 71, 71, 71, 1728, 1726, 71, 1723, 1727, 1722, 71, + 71, 1730, 71, 71, 71, 1729, 1724, 71, 1725, 1737, + 71, 1733, 1731, 1732, 71, 1735, 1734, 1736, 71, 1742, + 71, 71, 71, 1744, 71, 71, 1745, 1746, 71, 71, + 1739, 71, 71, 1740, 1741, 71, 1750, 1747, 1743, 1748, - 71, 1744, 71, 1745, 1746, 1749, 1753, 71, 71, 1743, - 1748, 1756, 1752, 71, 71, 71, 1754, 1751, 1750, 1747, - 1757, 71, 1755, 71, 71, 1760, 1759, 71, 71, 1762, - 71, 71, 1761, 1758, 1763, 71, 71, 1764, 1766, 1768, - 71, 71, 1765, 71, 71, 1767, 1770, 71, 1772, 1771, - 71, 71, 1776, 71, 71, 1773, 71, 71, 71, 1777, - 71, 1769, 1774, 71, 1779, 71, 1778, 1782, 71, 71, - 1783, 1775, 71, 1786, 1781, 71, 1780, 1787, 1784, 71, - 71, 71, 1788, 1789, 71, 1785, 1791, 71, 71, 1793, - 71, 1790, 71, 1792, 71, 1794, 71, 71, 1798, 1795, + 71, 71, 71, 71, 71, 71, 71, 71, 71, 1751, + 71, 1749, 71, 1758, 1753, 1754, 1755, 1762, 71, 71, + 71, 1757, 1752, 1765, 1761, 71, 1759, 71, 1760, 71, + 1764, 1756, 1766, 71, 1768, 1769, 71, 1763, 71, 71, + 71, 71, 71, 1771, 1775, 1767, 1772, 71, 71, 1773, + 1777, 71, 71, 1774, 1770, 71, 71, 1779, 1780, 71, + 1781, 1776, 71, 71, 1782, 1785, 71, 71, 71, 71, + 71, 71, 1786, 71, 1778, 71, 1788, 1791, 71, 1787, + 1783, 71, 1792, 1784, 1790, 1795, 2613, 71, 1789, 71, + 1793, 71, 1796, 1794, 71, 71, 1797, 1798, 1800, 71, - 71, 1796, 1800, 71, 1797, 1799, 1801, 71, 71, 71, - 71, 71, 1802, 1804, 1805, 71, 71, 71, 71, 1803, - 71, 71, 71, 1806, 1814, 71, 1812, 1813, 71, 1811, - 71, 1807, 71, 1808, 1809, 71, 1810, 1815, 1816, 1821, - 71, 71, 71, 1818, 1820, 1823, 71, 71, 1817, 71, - 1822, 1825, 71, 1828, 1826, 1819, 1830, 1831, 1829, 71, - 71, 1824, 71, 71, 71, 1827, 71, 1832, 1833, 1835, - 71, 71, 71, 1836, 1840, 71, 71, 1841, 71, 71, - 1839, 71, 1844, 71, 71, 1849, 1834, 1837, 71, 1845, - 1842, 1846, 71, 71, 71, 1848, 71, 1843, 1838, 1847, + 71, 1802, 71, 1803, 71, 1799, 71, 1801, 71, 71, + 1807, 1809, 71, 1804, 71, 1805, 71, 71, 1806, 71, + 71, 71, 71, 1810, 1813, 1814, 71, 71, 1811, 1812, + 1808, 71, 71, 71, 1815, 71, 71, 1821, 1822, 71, + 71, 1823, 1816, 71, 1817, 1818, 1825, 1819, 1820, 71, + 71, 1830, 71, 71, 1824, 71, 1832, 71, 1827, 1829, + 71, 71, 1826, 71, 1831, 1834, 71, 2613, 1835, 1841, + 1837, 1839, 1833, 1836, 1828, 1838, 71, 71, 1840, 71, + 71, 1844, 71, 71, 71, 1849, 71, 1842, 71, 1845, + 71, 1850, 1848, 71, 71, 1853, 71, 71, 1855, 71, - 1851, 71, 71, 1850, 71, 71, 71, 1853, 71, 71, - 71, 1856, 1859, 71, 1860, 71, 71, 71, 1852, 71, - 1855, 1862, 71, 71, 71, 1858, 1857, 1854, 1865, 71, - 1861, 1866, 71, 71, 71, 71, 71, 71, 1864, 71, - 71, 1867, 2604, 1863, 1876, 71, 71, 1869, 1868, 1873, - 71, 1875, 71, 1871, 1879, 1877, 1872, 1870, 71, 1878, - 1874, 71, 1881, 1880, 1882, 71, 1883, 71, 71, 71, - 1886, 71, 71, 1884, 1889, 71, 71, 1890, 71, 71, - 1887, 1885, 71, 1888, 1891, 1895, 71, 1896, 71, 71, - 1898, 71, 71, 71, 1894, 71, 1892, 71, 1893, 1900, + 1843, 71, 1854, 1846, 71, 1851, 71, 1857, 71, 1856, + 1858, 71, 1852, 71, 1847, 1860, 1859, 71, 71, 71, + 71, 71, 1862, 71, 71, 1865, 1868, 71, 71, 71, + 71, 71, 1869, 1861, 1864, 1871, 71, 71, 1870, 1866, + 1867, 1863, 1874, 1875, 71, 71, 71, 71, 71, 71, + 1873, 71, 71, 71, 71, 1872, 1885, 71, 71, 1878, + 71, 1886, 71, 1882, 1876, 1877, 71, 1880, 1884, 1893, + 1881, 1879, 71, 1883, 1888, 1887, 71, 1890, 71, 1889, + 1891, 71, 1892, 71, 71, 1894, 71, 1895, 1898, 71, + 71, 71, 71, 1896, 71, 1899, 1897, 1900, 1901, 1904, - 71, 1901, 71, 1902, 71, 71, 71, 1903, 1897, 71, - 1899, 1905, 1906, 71, 1904, 1910, 1907, 1908, 71, 71, - 71, 1912, 1911, 1909, 1914, 71, 71, 71, 71, 1918, - 71, 71, 71, 71, 71, 71, 1913, 71, 1922, 1923, - 71, 71, 1916, 1927, 71, 1915, 71, 1917, 1921, 71, - 71, 1919, 1925, 71, 1924, 1920, 1926, 1929, 71, 1932, - 71, 71, 71, 1930, 1934, 71, 1928, 71, 71, 1933, - 1936, 71, 1937, 1935, 71, 71, 71, 71, 71, 1931, - 1941, 1942, 1943, 71, 1939, 71, 71, 71, 71, 71, - 1945, 71, 71, 1938, 71, 1940, 1948, 1949, 1944, 1947, + 71, 1905, 71, 71, 1907, 71, 1903, 71, 1909, 71, + 71, 1902, 1910, 71, 1911, 71, 71, 71, 71, 1915, + 71, 71, 1906, 1914, 1912, 1908, 1917, 71, 71, 71, + 71, 1921, 1920, 71, 1919, 1913, 1916, 1923, 71, 1918, + 71, 71, 1927, 71, 71, 71, 1922, 71, 71, 71, + 1932, 71, 1924, 1931, 71, 1925, 71, 1936, 71, 71, + 1926, 71, 1930, 71, 1928, 71, 71, 1933, 1929, 1934, + 1938, 1935, 71, 1941, 71, 1939, 71, 71, 1943, 1937, + 71, 71, 71, 1942, 71, 1945, 1946, 1949, 71, 1944, + 71, 1940, 71, 1950, 71, 1951, 71, 1948, 71, 1952, - 1950, 1951, 71, 1946, 1953, 71, 1954, 1958, 1952, 1955, - 71, 71, 1957, 71, 1956, 71, 1959, 71, 71, 71, - 1965, 71, 71, 71, 1960, 71, 71, 71, 71, 1972, - 71, 1967, 71, 71, 1963, 1964, 2604, 1961, 1966, 1962, - 1968, 1969, 1970, 71, 1971, 1975, 1976, 71, 1973, 71, - 1974, 1977, 71, 71, 1979, 1980, 1978, 1981, 1982, 71, - 71, 71, 71, 71, 71, 1984, 71, 71, 71, 1988, - 71, 71, 71, 1990, 1983, 1989, 1986, 1992, 1985, 1991, - 71, 71, 71, 71, 71, 71, 1987, 1994, 71, 71, - 71, 2001, 1998, 71, 71, 2000, 71, 71, 71, 1997, + 71, 71, 71, 1954, 71, 71, 71, 1947, 1963, 71, + 1957, 1953, 71, 1956, 1958, 1959, 1961, 1955, 1960, 1962, + 71, 71, 1966, 71, 1967, 71, 71, 1968, 71, 1965, + 71, 71, 1964, 1974, 71, 1969, 71, 71, 71, 71, + 71, 71, 71, 1970, 1972, 1971, 1976, 1973, 71, 71, + 1977, 1975, 1980, 1982, 71, 1978, 1979, 1981, 1985, 71, + 71, 1984, 1983, 1986, 71, 71, 71, 1989, 1987, 1990, + 71, 1988, 71, 71, 1992, 71, 1991, 71, 71, 1993, + 71, 71, 1994, 71, 1997, 1998, 1995, 71, 2000, 71, + 1999, 71, 71, 71, 71, 71, 2001, 2003, 71, 1996, - 2002, 1993, 1995, 2005, 1996, 71, 71, 2006, 71, 1999, - 2008, 2003, 2004, 71, 2007, 71, 2010, 71, 71, 2009, - 2011, 71, 2013, 71, 2015, 71, 71, 2014, 2017, 71, - 71, 2019, 71, 71, 71, 2018, 71, 2016, 71, 2021, - 71, 2022, 2023, 71, 2012, 2024, 71, 2025, 71, 2026, - 71, 2020, 71, 71, 2027, 2029, 71, 2032, 71, 2034, - 71, 71, 2028, 71, 71, 71, 2037, 71, 2031, 2033, - 71, 2030, 71, 2040, 2041, 71, 71, 71, 2036, 2035, - 71, 2042, 2043, 2038, 71, 71, 2044, 71, 2039, 2048, - 71, 71, 2047, 71, 2045, 2049, 71, 2050, 71, 2046, + 71, 71, 71, 2010, 2007, 71, 2009, 71, 71, 71, + 71, 2011, 2002, 2015, 2004, 2005, 2006, 71, 2008, 71, + 71, 71, 2014, 2017, 2013, 2012, 71, 2613, 2016, 71, + 2019, 71, 71, 2022, 2020, 71, 2021, 2024, 71, 2023, + 2018, 2026, 71, 71, 71, 2028, 71, 71, 71, 71, + 2025, 71, 71, 2027, 2030, 2034, 2031, 2032, 71, 2033, + 71, 71, 71, 2035, 2036, 2029, 71, 71, 71, 2041, + 71, 2038, 71, 2043, 2037, 71, 71, 2046, 71, 71, + 2040, 2042, 71, 71, 71, 2053, 2039, 71, 2049, 2050, + 71, 2045, 71, 2044, 71, 71, 71, 2051, 71, 2052, - 2051, 71, 71, 2052, 71, 2054, 71, 2055, 2057, 71, - 71, 2053, 2058, 71, 2056, 2059, 71, 71, 71, 71, - 71, 71, 2060, 71, 2061, 2064, 2066, 71, 71, 71, - 2062, 71, 2067, 71, 71, 71, 2073, 71, 71, 2063, - 71, 2065, 71, 71, 2070, 71, 2074, 71, 2072, 2069, - 2080, 71, 71, 2075, 2068, 2076, 2082, 2071, 71, 71, - 2077, 2084, 71, 2083, 71, 2078, 2081, 71, 2079, 2085, - 71, 71, 2086, 71, 2087, 2089, 71, 2088, 71, 71, - 71, 71, 71, 71, 2098, 71, 2090, 2099, 71, 2095, - 71, 2101, 71, 71, 71, 71, 2091, 2092, 71, 2100, + 71, 2047, 2048, 2056, 2057, 71, 2058, 71, 71, 2054, + 2055, 2059, 71, 2060, 71, 71, 2063, 71, 2062, 71, + 2061, 71, 2064, 2066, 71, 2067, 71, 2068, 71, 2065, + 71, 2069, 71, 71, 71, 71, 71, 2070, 71, 2073, + 2075, 71, 71, 71, 2071, 2076, 71, 71, 71, 2082, + 71, 71, 71, 2072, 71, 2074, 2079, 71, 71, 2083, + 71, 2081, 2078, 2089, 2077, 2613, 2084, 2085, 71, 71, + 2080, 71, 2086, 71, 2091, 71, 2092, 2093, 71, 2087, + 71, 2088, 2090, 2094, 71, 71, 2095, 71, 2096, 71, + 71, 2097, 71, 71, 2099, 71, 71, 71, 2101, 71, - 2093, 2094, 2096, 2097, 71, 2104, 71, 71, 71, 71, - 2105, 2102, 2103, 2110, 71, 2111, 71, 71, 71, 2112, - 71, 71, 2106, 2108, 2107, 71, 2116, 2109, 2115, 71, - 71, 71, 2120, 2114, 71, 2113, 2119, 2121, 71, 71, - 2117, 2122, 2123, 71, 71, 71, 71, 71, 71, 2118, - 71, 2129, 2604, 2124, 2125, 2130, 71, 71, 2133, 71, - 71, 71, 71, 71, 2126, 2127, 2134, 2128, 2132, 71, - 2137, 71, 2131, 2136, 2138, 2135, 71, 2141, 71, 71, - 2143, 71, 71, 2139, 2145, 71, 71, 71, 2147, 71, - 71, 2142, 2146, 71, 2148, 71, 2140, 71, 71, 71, + 2098, 71, 2107, 71, 2104, 2108, 71, 71, 2109, 71, + 2100, 2110, 71, 2103, 2102, 2106, 2105, 71, 71, 71, + 71, 2111, 71, 71, 2113, 2112, 2121, 2115, 2119, 71, + 2120, 71, 71, 2114, 71, 71, 2117, 2116, 2123, 71, + 71, 2118, 71, 71, 2125, 71, 71, 2129, 2128, 2130, + 71, 71, 2122, 2131, 2124, 2132, 71, 71, 71, 71, + 2126, 71, 2127, 71, 71, 2133, 2134, 2138, 2139, 71, + 71, 2142, 71, 71, 71, 2146, 71, 2143, 2135, 2137, + 2136, 2141, 71, 71, 71, 2140, 2145, 71, 71, 2144, + 2150, 71, 2152, 71, 71, 71, 2147, 2154, 71, 71, - 71, 2144, 71, 2150, 2152, 2153, 71, 2155, 2149, 71, - 2151, 71, 2154, 71, 2156, 71, 71, 2158, 2157, 71, - 2160, 2161, 2163, 71, 2164, 71, 2159, 71, 2162, 71, - 71, 71, 2169, 71, 2165, 2166, 2170, 2167, 71, 71, - 2171, 71, 2174, 71, 2175, 71, 2173, 2168, 2172, 71, - 71, 2178, 2182, 2177, 71, 71, 2179, 71, 71, 2180, - 2181, 71, 2176, 71, 71, 2183, 71, 71, 2184, 71, - 71, 71, 71, 2185, 2188, 2187, 71, 2191, 71, 2190, - 71, 2186, 2189, 2192, 71, 71, 71, 71, 2197, 2193, - 71, 71, 71, 2194, 2195, 2196, 71, 2202, 71, 2198, + 2151, 71, 2156, 71, 2148, 71, 2155, 2149, 71, 2157, + 71, 71, 2159, 2153, 71, 71, 2162, 2158, 2160, 2161, + 2164, 71, 71, 71, 71, 71, 71, 71, 2163, 2165, + 2169, 2167, 2170, 71, 2172, 71, 2173, 71, 71, 2168, + 71, 2166, 71, 2178, 2176, 2174, 71, 2175, 2171, 71, + 71, 2179, 71, 2180, 71, 2183, 71, 71, 2177, 2182, + 2184, 71, 2187, 71, 71, 2181, 2186, 2188, 71, 2189, + 2185, 71, 2191, 71, 71, 71, 2190, 2192, 71, 2193, + 71, 71, 71, 71, 2194, 71, 2199, 2197, 71, 2196, + 71, 71, 71, 2200, 71, 2195, 2201, 2198, 71, 71, - 71, 2204, 71, 2199, 2206, 71, 71, 71, 71, 71, - 2211, 2200, 2604, 2210, 71, 2201, 71, 2205, 71, 2203, - 2212, 71, 2208, 2215, 71, 2207, 2213, 71, 2209, 2214, - 71, 71, 71, 71, 2217, 71, 2220, 2221, 71, 71, - 2216, 2222, 71, 2223, 71, 2218, 2604, 2219, 2224, 71, - 71, 2227, 71, 2225, 2228, 71, 2229, 71, 71, 2226, - 71, 2230, 2231, 71, 71, 2232, 2233, 71, 2235, 71, - 2236, 71, 2238, 2239, 71, 2234, 71, 2241, 71, 71, - 2240, 71, 2242, 71, 71, 2237, 71, 2247, 71, 71, - 71, 71, 2246, 71, 2249, 2250, 71, 2252, 71, 71, + 2206, 71, 71, 2204, 71, 2203, 71, 2205, 2202, 71, + 2207, 2211, 71, 71, 71, 2215, 71, 71, 71, 71, + 2220, 2208, 2213, 71, 2209, 2210, 71, 2219, 2212, 2214, + 2221, 71, 71, 2217, 71, 71, 2216, 71, 71, 2218, + 2222, 71, 2223, 2224, 71, 2226, 71, 2229, 2225, 2230, + 71, 71, 2227, 2231, 71, 2232, 71, 2233, 71, 2228, + 71, 71, 2236, 2237, 71, 2238, 71, 71, 2240, 71, + 2239, 2234, 71, 2241, 2242, 71, 71, 2244, 71, 71, + 2235, 71, 2247, 2248, 71, 71, 71, 2250, 71, 2249, + 71, 2243, 2251, 71, 71, 2246, 71, 2245, 2256, 71, - 71, 2244, 2243, 2251, 2245, 71, 71, 71, 2253, 2255, - 71, 71, 2258, 2248, 2262, 71, 2254, 2256, 2257, 2260, - 71, 71, 71, 71, 2266, 2261, 71, 2267, 2259, 2264, - 71, 2268, 71, 2269, 71, 71, 71, 71, 71, 2263, - 2271, 2265, 71, 71, 71, 2277, 71, 2274, 71, 71, - 2270, 2278, 2280, 71, 2282, 71, 2272, 2604, 71, 71, - 71, 2279, 2275, 2273, 2276, 2281, 71, 2285, 2284, 2286, - 71, 2283, 71, 71, 2290, 2289, 2287, 71, 71, 2291, - 71, 71, 2288, 2294, 71, 71, 71, 2293, 71, 71, - 2292, 71, 71, 2296, 2295, 2604, 2300, 71, 2301, 71, + 71, 71, 2255, 71, 71, 2258, 2259, 71, 2260, 2252, + 2253, 71, 71, 71, 2254, 2262, 2264, 71, 71, 2261, + 71, 71, 71, 2267, 2257, 2263, 2271, 71, 71, 71, + 71, 71, 2275, 71, 2265, 2266, 2270, 2273, 2268, 71, + 2276, 2269, 71, 2277, 71, 2278, 71, 2272, 71, 2274, + 71, 71, 71, 2280, 71, 2286, 71, 71, 71, 2282, + 2283, 2287, 2279, 2289, 71, 71, 71, 2291, 71, 71, + 2281, 71, 2284, 2290, 2285, 2288, 2292, 71, 2293, 2295, + 71, 2296, 71, 2294, 71, 71, 71, 2299, 2303, 71, + 71, 2297, 2300, 71, 71, 2302, 71, 71, 2301, 2298, - 2298, 2302, 71, 2304, 2303, 71, 2305, 2306, 71, 71, - 2299, 2297, 2307, 71, 2308, 71, 71, 71, 2309, 71, - 2313, 71, 2312, 71, 2314, 2310, 71, 71, 2315, 2316, - 71, 71, 71, 71, 2321, 2311, 2319, 2323, 71, 2317, - 71, 71, 71, 2326, 71, 71, 71, 71, 2318, 71, - 2320, 2329, 71, 71, 2330, 71, 71, 2325, 2322, 2327, - 2324, 2334, 2328, 2333, 71, 2336, 71, 71, 2331, 2338, - 71, 71, 2332, 2339, 71, 2341, 71, 71, 71, 2344, - 71, 71, 71, 2343, 71, 71, 2337, 71, 2348, 71, - 2335, 71, 2340, 2342, 2351, 71, 2352, 71, 71, 2349, + 71, 71, 2305, 2304, 71, 2309, 71, 2310, 71, 2307, + 71, 2315, 71, 2311, 71, 2312, 71, 2313, 2316, 71, + 2314, 2306, 2308, 2317, 71, 71, 71, 71, 2319, 2322, + 71, 2321, 2323, 2320, 2318, 71, 71, 2325, 71, 71, + 71, 2324, 71, 71, 2330, 2328, 2332, 71, 2326, 71, + 71, 71, 2335, 71, 71, 71, 71, 71, 2338, 71, + 2327, 2329, 71, 71, 2339, 71, 2334, 2331, 2333, 2336, + 2337, 2342, 71, 2345, 71, 2340, 71, 2343, 2347, 71, + 71, 2341, 2348, 71, 2350, 71, 71, 71, 2353, 71, + 71, 2344, 2352, 71, 71, 2346, 71, 2357, 71, 71, - 2353, 2345, 71, 2347, 71, 2346, 71, 2358, 71, 71, - 71, 2350, 2359, 71, 2360, 71, 2356, 2363, 2354, 2364, - 71, 2355, 2361, 71, 71, 2366, 2357, 2365, 71, 71, - 71, 71, 71, 2371, 2368, 2362, 71, 2369, 71, 71, - 2374, 71, 2375, 71, 2377, 71, 2367, 2378, 71, 2370, - 71, 71, 71, 2372, 2373, 2379, 71, 2376, 2382, 71, - 71, 2381, 2383, 71, 71, 2380, 2384, 71, 71, 2385, - 2386, 71, 71, 2389, 2388, 2390, 71, 71, 71, 2387, - 2394, 71, 2391, 71, 71, 2397, 71, 2393, 2395, 2399, - 71, 71, 71, 71, 2398, 71, 71, 2392, 2396, 71, + 71, 2349, 2351, 2360, 71, 2361, 71, 71, 71, 2362, + 2354, 71, 2358, 2356, 71, 71, 2355, 2367, 71, 71, + 2365, 2359, 2368, 71, 2369, 71, 2372, 2363, 2373, 71, + 2364, 71, 71, 71, 2366, 2371, 2374, 2370, 2375, 71, + 71, 71, 2380, 71, 71, 2377, 2378, 71, 71, 2376, + 2383, 71, 2384, 71, 2386, 71, 2387, 71, 2379, 71, + 2381, 2382, 71, 71, 2388, 71, 2385, 71, 2390, 2391, + 71, 2392, 71, 2393, 71, 71, 2389, 2395, 71, 71, + 2394, 71, 2398, 71, 2396, 2399, 71, 71, 71, 2397, + 2403, 71, 71, 2400, 2406, 71, 2402, 2404, 71, 71, - 2400, 2403, 71, 71, 71, 71, 71, 71, 2405, 71, - 71, 2404, 2401, 2402, 2406, 71, 71, 71, 2417, 71, - 2604, 2415, 2407, 2411, 2408, 2409, 71, 2410, 2418, 71, - 2419, 2414, 2412, 2413, 2420, 71, 71, 2416, 2421, 71, - 2422, 2423, 71, 71, 2425, 71, 2424, 71, 2428, 71, - 71, 71, 71, 71, 2426, 2430, 71, 2429, 71, 2434, - 71, 2427, 2435, 71, 71, 2433, 71, 2431, 2436, 71, - 71, 2432, 71, 2439, 2441, 2437, 2440, 2438, 2443, 2442, - 71, 71, 71, 71, 71, 2445, 71, 2447, 2448, 2450, - 71, 2444, 2451, 71, 2452, 71, 2453, 71, 2454, 71, + 71, 71, 2405, 2401, 2408, 71, 2407, 71, 71, 71, + 71, 71, 2409, 2412, 71, 2410, 2414, 71, 71, 2411, + 2416, 2413, 2415, 71, 71, 71, 71, 71, 71, 2426, + 71, 2417, 2424, 2427, 71, 2442, 2419, 2418, 2613, 2420, + 71, 2421, 2422, 71, 2428, 71, 2423, 2433, 2425, 2429, + 71, 2430, 71, 2431, 2432, 71, 71, 2434, 71, 2437, + 71, 71, 71, 2435, 71, 71, 2439, 71, 2438, 2436, + 71, 2443, 2444, 71, 2445, 71, 71, 71, 2452, 2440, + 71, 2447, 2446, 2441, 71, 2450, 2448, 71, 71, 2449, + 2451, 71, 71, 71, 71, 2459, 71, 2456, 2457, 2460, - 71, 71, 2446, 2456, 71, 2449, 2457, 71, 71, 2455, - 71, 2460, 71, 2462, 71, 71, 2458, 71, 71, 71, - 2459, 2464, 71, 2466, 2469, 71, 71, 2461, 2468, 71, - 71, 71, 71, 2463, 2471, 71, 71, 2467, 71, 2475, - 2470, 71, 71, 2465, 71, 2477, 71, 71, 2474, 71, - 2472, 71, 2482, 2473, 71, 71, 2483, 71, 2479, 71, - 2481, 2476, 2478, 71, 2485, 71, 2484, 71, 2486, 2480, - 71, 71, 71, 2494, 71, 71, 2487, 2488, 2496, 71, - 71, 2489, 71, 2497, 2495, 2491, 2493, 2498, 71, 2499, - 71, 2492, 2490, 71, 71, 71, 71, 2502, 71, 2500, + 71, 71, 2454, 2461, 71, 2453, 2462, 71, 71, 2455, + 2463, 71, 71, 2458, 2465, 71, 2467, 2464, 2466, 71, + 71, 2469, 71, 71, 2468, 2471, 71, 71, 71, 71, + 2473, 71, 2475, 71, 2478, 71, 2477, 2470, 71, 71, + 71, 2472, 71, 2480, 71, 71, 71, 2476, 71, 2479, + 2486, 2484, 71, 71, 2474, 71, 71, 71, 2481, 71, + 2482, 2483, 71, 71, 2491, 2492, 71, 2485, 2490, 2488, + 71, 2493, 2487, 71, 2494, 2495, 2489, 71, 71, 71, + 71, 71, 2503, 71, 71, 2496, 71, 71, 2497, 2505, + 71, 71, 2506, 2498, 2500, 2502, 2504, 2507, 71, 71, - 2503, 2504, 71, 2507, 71, 2509, 71, 71, 71, 71, - 71, 71, 71, 2501, 2513, 71, 2515, 2506, 2508, 71, - 2514, 2517, 2518, 2505, 71, 2511, 2510, 71, 71, 2512, - 71, 2516, 71, 71, 71, 71, 71, 71, 2519, 2524, - 71, 71, 2526, 2520, 71, 71, 71, 71, 2523, 71, - 71, 2521, 2531, 2522, 2528, 2532, 2525, 2529, 71, 2527, - 2535, 71, 2537, 2536, 2530, 2534, 71, 2533, 71, 71, - 2538, 2539, 71, 71, 71, 2543, 71, 2540, 2541, 71, - 2546, 71, 2545, 71, 2544, 71, 71, 71, 71, 2551, - 71, 71, 2554, 2542, 2548, 71, 71, 71, 2555, 71, + 2501, 2508, 71, 2499, 2510, 2509, 71, 71, 71, 2511, + 71, 2516, 2512, 2513, 71, 2518, 71, 71, 71, 71, + 71, 2522, 71, 71, 2514, 2515, 71, 2523, 2517, 71, + 2526, 2524, 71, 2527, 2520, 71, 71, 2519, 2521, 71, + 71, 71, 71, 71, 71, 71, 2528, 2533, 2525, 71, + 2535, 71, 71, 2529, 2530, 71, 2532, 71, 71, 71, + 2546, 2531, 71, 2540, 2534, 2537, 71, 2541, 2536, 2542, + 2538, 2544, 71, 71, 2539, 71, 71, 2547, 2543, 71, + 2545, 71, 71, 2552, 2548, 71, 2549, 2550, 71, 71, + 2553, 71, 2551, 2554, 71, 2555, 71, 71, 71, 2560, - 71, 2558, 71, 71, 2547, 2549, 71, 2550, 71, 2552, - 2553, 2556, 71, 2562, 2557, 71, 71, 71, 2566, 2559, - 2563, 2561, 2560, 71, 71, 2568, 71, 2569, 71, 2564, - 71, 71, 2565, 2570, 2573, 71, 71, 2571, 71, 71, - 2575, 2574, 2567, 2576, 71, 71, 2577, 71, 71, 71, - 2572, 71, 2578, 2580, 2582, 71, 71, 71, 71, 71, - 71, 2584, 2585, 71, 2588, 71, 2579, 2604, 2581, 2604, - 2583, 2589, 71, 71, 2592, 2593, 71, 2586, 2587, 2590, - 71, 2595, 71, 71, 2591, 2596, 71, 2594, 71, 71, - 2597, 71, 71, 2598, 2599, 2602, 71, 2603, 71, 2604, + 71, 71, 71, 2557, 71, 71, 71, 2556, 71, 2563, + 2564, 71, 71, 71, 2562, 2565, 2558, 2559, 2566, 2561, + 71, 2568, 71, 2569, 71, 2567, 2570, 71, 2571, 2572, + 71, 2575, 71, 71, 2577, 2573, 71, 2578, 2574, 71, + 71, 71, 2582, 71, 2579, 71, 71, 2580, 2584, 71, + 2583, 2576, 2585, 71, 71, 71, 2586, 71, 71, 71, + 2581, 2587, 2589, 2591, 71, 71, 71, 71, 71, 71, + 2593, 2594, 71, 2597, 2588, 2598, 71, 2590, 2592, 71, + 71, 2601, 2602, 71, 71, 71, 2595, 2596, 2599, 2604, + 71, 2603, 2605, 71, 71, 71, 71, 71, 2600, 2613, - 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2600, 2601, 43, 43, 43, 43, 43, 43, 43, 48, - 48, 48, 48, 48, 48, 48, 53, 53, 53, 53, - 53, 53, 53, 59, 59, 59, 59, 59, 59, 59, - 64, 64, 64, 64, 64, 64, 64, 74, 74, 2604, - 74, 74, 74, 74, 140, 140, 2604, 2604, 2604, 140, - 140, 142, 142, 2604, 2604, 142, 2604, 142, 144, 2604, - 2604, 2604, 2604, 2604, 144, 147, 147, 2604, 2604, 2604, - 147, 147, 149, 2604, 2604, 2604, 2604, 2604, 149, 151, - 151, 2604, 151, 151, 151, 151, 75, 75, 2604, 75, + 2607, 2606, 2608, 2613, 2609, 2611, 71, 2612, 71, 2613, + 2613, 2613, 2613, 2613, 2613, 2610, 43, 43, 43, 43, + 43, 43, 43, 48, 48, 48, 48, 48, 48, 48, + 53, 53, 53, 53, 53, 53, 53, 59, 59, 59, + 59, 59, 59, 59, 64, 64, 64, 64, 64, 64, + 64, 74, 74, 2613, 74, 74, 74, 74, 140, 140, + 2613, 2613, 2613, 140, 140, 142, 142, 2613, 2613, 142, + 2613, 142, 144, 2613, 2613, 2613, 2613, 2613, 144, 147, + 147, 2613, 2613, 2613, 147, 147, 149, 2613, 2613, 2613, + 2613, 2613, 149, 151, 151, 2613, 151, 151, 151, 151, - 75, 75, 75, 13, 2604, 2604, 2604, 2604, 2604, 2604, - 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2604, 2604, 2604, 2604 + 75, 75, 2613, 75, 75, 75, 75, 13, 2613, 2613, + 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, + 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, + 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, + 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613 } ; -static const flex_int16_t yy_chk[5145] = +static yyconst flex_int16_t yy_chk[5149] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1858,13 +1870,13 @@ static const flex_int16_t yy_chk[5145] = 5, 3, 6, 20, 4, 20, 20, 5, 20, 6, 7, 7, 7, 7, 20, 7, 8, 8, 8, 8, 29, 8, 7, 9, 9, 9, 22, 22, 8, 10, - 10, 10, 15, 25, 9, 29, 15, 25, 2610, 31, + 10, 10, 15, 25, 9, 29, 15, 25, 2619, 31, 10, 11, 11, 11, 11, 11, 11, 19, 79, 19, 19, 30, 19, 11, 31, 79, 30, 25, 19, 19, 47, 47, 11, 12, 12, 12, 12, 12, 12, 21, 23, 23, 21, 21, 24, 12, 21, 81, 23, 24, - 34, 21, 23, 24, 12, 23, 24, 898, 24, 24, + 34, 21, 23, 24, 12, 23, 24, 902, 24, 24, 21, 26, 26, 27, 27, 90, 28, 81, 32, 32, 28, 34, 27, 28, 33, 33, 26, 32, 36, 33, 28, 35, 28, 32, 90, 42, 35, 32, 52, 84, @@ -1932,490 +1944,490 @@ static const flex_int16_t yy_chk[5145] = 297, 303, 304, 304, 306, 306, 305, 302, 301, 300, 303, 305, 300, 307, 308, 309, 310, 311, 312, 308, 313, 314, 320, 322, 315, 316, 313, 309, 307, 315, - 701, 316, 322, 312, 317, 310, 320, 311, 318, 317, + 64, 316, 322, 312, 317, 310, 320, 311, 318, 317, 323, 314, 319, 318, 325, 319, 323, 319, 321, 318, - 324, 321, 330, 327, 701, 324, 326, 325, 328, 326, - 333, 329, 339, 335, 321, 325, 330, 321, 332, 321, - 341, 332, 326, 327, 333, 326, 329, 326, 335, 328, + 324, 321, 330, 327, 369, 324, 326, 325, 369, 326, + 328, 329, 59, 335, 321, 325, 330, 321, 332, 321, + 333, 332, 326, 327, 336, 326, 329, 326, 335, 326, - 336, 64, 340, 339, 345, 341, 342, 332, 334, 336, - 334, 334, 337, 338, 343, 342, 346, 337, 337, 338, - 334, 340, 334, 334, 334, 344, 347, 334, 348, 350, - 345, 344, 351, 343, 348, 352, 346, 353, 348, 354, - 347, 355, 353, 356, 357, 358, 360, 355, 361, 350, - 352, 359, 351, 362, 354, 364, 357, 359, 362, 358, - 365, 366, 59, 356, 361, 363, 363, 367, 363, 369, - 368, 360, 368, 369, 370, 364, 365, 366, 370, 371, - 371, 367, 372, 373, 374, 376, 375, 377, 379, 380, - 378, 382, 379, 370, 376, 378, 377, 372, 380, 373, + 337, 328, 340, 336, 333, 337, 337, 332, 334, 338, + 334, 334, 339, 341, 345, 338, 342, 343, 346, 350, + 334, 340, 334, 334, 334, 342, 344, 334, 341, 347, + 351, 348, 344, 339, 352, 356, 343, 348, 346, 350, + 345, 348, 353, 347, 354, 355, 357, 353, 358, 352, + 351, 355, 360, 361, 359, 356, 362, 365, 357, 354, + 359, 362, 358, 363, 363, 364, 363, 366, 367, 361, + 368, 370, 368, 365, 372, 370, 373, 360, 371, 371, + 374, 375, 367, 366, 376, 364, 378, 377, 382, 372, + 370, 378, 373, 376, 380, 375, 377, 379, 374, 381, - 375, 385, 374, 381, 383, 376, 385, 376, 386, 381, - 383, 384, 382, 387, 387, 384, 388, 389, 390, 391, - 391, 392, 389, 394, 396, 398, 393, 392, 386, 388, - 393, 390, 395, 396, 397, 399, 400, 395, 401, 402, - 402, 404, 401, 408, 394, 398, 397, 403, 400, 405, - 405, 409, 403, 399, 407, 407, 410, 411, 412, 409, - 414, 415, 404, 417, 408, 410, 418, 419, 416, 417, - 412, 420, 421, 419, 424, 418, 420, 411, 414, 422, - 414, 415, 416, 423, 427, 425, 421, 422, 425, 423, - 422, 426, 429, 433, 424, 428, 430, 426, 427, 431, + 386, 379, 383, 380, 376, 381, 376, 384, 383, 382, + 385, 384, 387, 387, 388, 385, 389, 390, 391, 391, + 386, 389, 392, 394, 396, 393, 395, 388, 392, 393, + 390, 395, 398, 396, 397, 399, 400, 401, 402, 402, + 403, 401, 404, 408, 394, 403, 397, 410, 400, 405, + 405, 409, 398, 399, 407, 407, 410, 411, 412, 409, + 414, 415, 416, 404, 408, 417, 418, 419, 421, 420, + 412, 417, 424, 419, 420, 418, 416, 411, 414, 422, + 414, 415, 421, 423, 427, 425, 429, 422, 425, 423, + 422, 426, 424, 430, 428, 433, 431, 426, 427, 428, - 428, 432, 434, 431, 435, 436, 432, 434, 433, 438, - 54, 439, 440, 441, 429, 426, 443, 430, 441, 442, - 435, 443, 444, 446, 436, 437, 437, 450, 440, 438, - 439, 437, 447, 437, 442, 447, 445, 448, 444, 446, - 452, 437, 445, 455, 437, 437, 453, 445, 449, 449, - 454, 437, 450, 451, 451, 452, 456, 448, 453, 457, - 458, 459, 455, 463, 457, 454, 460, 461, 467, 458, - 464, 465, 463, 461, 464, 466, 468, 465, 456, 469, - 459, 460, 470, 467, 471, 472, 473, 466, 474, 472, - 474, 53, 475, 469, 478, 468, 480, 470, 482, 473, + 431, 432, 434, 435, 436, 440, 432, 434, 429, 438, + 433, 441, 439, 442, 430, 426, 441, 443, 444, 435, + 447, 440, 443, 436, 437, 437, 445, 446, 442, 438, + 437, 439, 437, 446, 444, 445, 447, 449, 446, 448, + 437, 451, 448, 437, 437, 450, 450, 452, 452, 453, + 437, 454, 455, 456, 457, 458, 459, 449, 460, 461, + 458, 464, 462, 454, 453, 459, 451, 455, 462, 465, + 464, 467, 456, 465, 461, 466, 457, 460, 468, 469, + 470, 466, 471, 467, 472, 473, 474, 476, 475, 473, + 475, 477, 477, 468, 470, 476, 479, 471, 469, 474, - 475, 477, 471, 476, 476, 479, 478, 477, 480, 481, - 483, 479, 481, 482, 484, 483, 485, 484, 486, 487, - 488, 489, 489, 491, 487, 487, 490, 490, 495, 491, - 492, 492, 485, 488, 486, 485, 493, 493, 494, 497, - 496, 500, 498, 499, 494, 496, 499, 501, 502, 495, - 498, 503, 502, 505, 507, 504, 506, 503, 497, 504, - 509, 506, 508, 510, 500, 509, 501, 511, 508, 512, - 511, 505, 513, 513, 507, 511, 514, 510, 515, 511, - 516, 517, 518, 515, 519, 516, 525, 512, 521, 520, - 519, 521, 522, 526, 514, 517, 522, 518, 520, 523, + 478, 480, 472, 481, 483, 484, 478, 480, 479, 482, + 484, 485, 482, 486, 485, 481, 488, 487, 489, 483, + 496, 488, 488, 490, 490, 491, 491, 498, 492, 486, + 501, 489, 486, 487, 492, 493, 493, 494, 494, 495, + 499, 496, 497, 502, 508, 495, 498, 497, 499, 500, + 503, 504, 500, 501, 503, 505, 506, 504, 507, 505, + 509, 511, 502, 507, 508, 510, 509, 513, 512, 515, + 510, 512, 514, 514, 506, 511, 512, 516, 517, 518, + 512, 519, 516, 517, 520, 513, 521, 515, 522, 526, + 520, 522, 524, 518, 523, 521, 519, 524, 523, 525, - 524, 528, 525, 527, 523, 524, 526, 530, 527, 529, - 529, 531, 532, 533, 534, 539, 530, 538, 522, 533, - 534, 528, 535, 536, 532, 535, 536, 531, 537, 539, - 540, 548, 541, 537, 542, 538, 540, 541, 543, 544, - 542, 543, 545, 546, 544, 547, 549, 545, 545, 550, - 548, 548, 549, 551, 552, 554, 546, 553, 547, 552, - 553, 554, 551, 559, 555, 556, 557, 560, 550, 560, - 556, 557, 557, 558, 558, 553, 555, 561, 562, 563, - 562, 564, 565, 566, 567, 568, 569, 572, 559, 568, - 570, 571, 574, 576, 577, 569, 561, 563, 573, 564, + 527, 528, 529, 531, 525, 526, 528, 530, 530, 532, + 534, 533, 531, 527, 536, 535, 534, 536, 539, 540, + 523, 535, 529, 533, 537, 532, 538, 537, 541, 547, + 542, 538, 543, 540, 541, 542, 539, 544, 543, 545, + 544, 546, 547, 548, 545, 549, 546, 546, 550, 551, + 552, 556, 553, 560, 550, 554, 548, 553, 554, 552, + 555, 562, 557, 556, 549, 549, 555, 557, 551, 558, + 559, 559, 564, 554, 558, 558, 565, 561, 560, 561, + 562, 563, 566, 563, 567, 568, 570, 569, 572, 571, + 564, 569, 573, 576, 565, 570, 574, 575, 577, 576, - 565, 578, 566, 579, 567, 570, 572, 574, 575, 571, - 573, 580, 576, 577, 575, 581, 582, 582, 583, 578, - 584, 579, 583, 586, 585, 587, 588, 589, 586, 580, - 590, 591, 595, 593, 581, 585, 591, 590, 593, 584, - 589, 587, 592, 594, 596, 588, 597, 598, 594, 592, - 595, 596, 600, 599, 601, 597, 604, 602, 606, 601, - 602, 598, 599, 603, 600, 605, 607, 603, 608, 623, - 604, 609, 609, 606, 605, 610, 610, 611, 611, 612, - 607, 614, 616, 617, 610, 615, 618, 617, 612, 608, - 619, 615, 622, 620, 623, 621, 624, 627, 618, 620, + 566, 578, 582, 567, 571, 568, 572, 579, 574, 580, + 581, 573, 575, 584, 584, 583, 586, 577, 585, 587, + 578, 582, 585, 589, 590, 579, 588, 580, 581, 583, + 587, 588, 591, 592, 597, 586, 593, 594, 54, 589, + 592, 593, 595, 590, 594, 591, 596, 595, 598, 599, + 600, 596, 597, 601, 602, 598, 603, 604, 599, 605, + 604, 603, 601, 605, 600, 606, 602, 607, 608, 610, + 609, 611, 611, 612, 612, 616, 607, 613, 613, 606, + 614, 617, 612, 608, 609, 618, 620, 617, 619, 614, + 610, 621, 619, 622, 616, 623, 624, 625, 620, 622, - 614, 634, 616, 621, 630, 633, 625, 634, 619, 635, - 622, 625, 627, 635, 633, 625, 624, 639, 625, 636, - 636, 630, 637, 637, 638, 625, 640, 641, 625, 643, - 48, 639, 644, 641, 643, 638, 646, 645, 647, 648, - 648, 647, 651, 649, 650, 650, 640, 642, 642, 642, - 649, 642, 658, 644, 642, 645, 656, 651, 656, 642, - 657, 646, 652, 652, 653, 642, 642, 654, 655, 653, - 654, 658, 657, 655, 659, 660, 662, 661, 659, 663, - 663, 667, 664, 666, 662, 665, 668, 669, 669, 672, - 704, 668, 704, 667, 672, 660, 661, 664, 670, 665, + 626, 629, 632, 623, 635, 618, 627, 53, 637, 621, + 640, 627, 637, 635, 624, 627, 629, 636, 627, 632, + 626, 640, 625, 636, 641, 627, 638, 638, 627, 639, + 639, 642, 645, 643, 646, 648, 48, 645, 641, 643, + 647, 649, 650, 650, 649, 652, 652, 653, 654, 654, + 651, 642, 644, 644, 644, 646, 644, 651, 647, 644, + 648, 655, 653, 660, 644, 656, 655, 657, 656, 659, + 644, 644, 657, 658, 661, 658, 662, 664, 661, 663, + 666, 659, 660, 665, 665, 664, 667, 668, 670, 669, + 671, 671, 43, 670, 674, 666, 662, 672, 663, 674, - 673, 666, 674, 670, 670, 676, 673, 675, 674, 677, - 675, 676, 678, 679, 680, 681, 682, 677, 684, 680, - 678, 685, 681, 683, 683, 687, 686, 684, 689, 685, - 690, 679, 686, 691, 692, 682, 694, 689, 691, 690, - 695, 694, 693, 692, 687, 693, 696, 697, 697, 698, - 699, 700, 702, 706, 695, 702, 705, 705, 708, 711, - 700, 707, 709, 702, 698, 710, 707, 712, 713, 699, - 715, 696, 714, 716, 706, 717, 714, 713, 718, 708, - 719, 711, 709, 720, 717, 710, 723, 712, 715, 721, - 718, 724, 716, 722, 722, 721, 725, 720, 726, 719, + 667, 669, 672, 672, 675, 668, 676, 678, 677, 679, + 675, 677, 676, 678, 680, 681, 682, 679, 683, 684, + 686, 682, 680, 685, 685, 683, 687, 689, 691, 686, + 688, 692, 694, 681, 687, 697, 688, 691, 684, 693, + 692, 694, 695, 696, 693, 695, 689, 698, 696, 697, + 699, 699, 700, 702, 701, 703, 706, 704, 706, 708, + 704, 709, 702, 707, 707, 710, 709, 700, 704, 711, + 712, 713, 698, 701, 714, 715, 718, 716, 717, 703, + 708, 716, 719, 721, 715, 720, 710, 722, 725, 711, + 712, 719, 723, 713, 714, 718, 717, 720, 723, 724, - 728, 727, 729, 730, 731, 732, 723, 733, 729, 732, - 731, 724, 734, 735, 728, 736, 725, 740, 735, 738, - 726, 727, 745, 730, 734, 738, 733, 737, 737, 741, - 739, 742, 734, 739, 743, 740, 736, 742, 744, 744, - 745, 746, 741, 747, 747, 748, 746, 749, 750, 750, - 751, 749, 753, 752, 743, 754, 756, 753, 759, 807, - 748, 757, 760, 762, 762, 763, 764, 765, 807, 763, - 767, 768, 751, 752, 754, 757, 768, 769, 759, 43, - 756, 764, 766, 760, 761, 767, 766, 761, 773, 761, - 771, 769, 765, 761, 772, 761, 770, 777, 772, 776, + 724, 722, 721, 726, 727, 728, 729, 730, 725, 732, + 733, 731, 734, 730, 736, 732, 735, 737, 734, 739, + 735, 740, 740, 726, 727, 731, 729, 728, 741, 737, + 733, 738, 742, 736, 741, 742, 738, 737, 743, 744, + 739, 745, 746, 747, 747, 748, 749, 745, 750, 750, + 751, 749, 744, 752, 753, 753, 743, 752, 754, 755, + 759, 756, 746, 748, 757, 751, 756, 760, 762, 763, + 765, 765, 766, 768, 767, 788, 766, 770, 769, 755, + 754, 760, 769, 757, 759, 784, 784, 772, 762, 767, + 763, 764, 770, 788, 764, 780, 764, 774, 768, 771, - 761, 770, 770, 773, 771, 761, 774, 775, 778, 779, - 780, 774, 775, 776, 784, 779, 780, 785, 777, 781, - 781, 774, 778, 782, 783, 789, 787, 788, 782, 790, - 783, 795, 788, 784, 796, 785, 786, 786, 787, 789, - 794, 790, 786, 792, 786, 791, 791, 802, 792, 793, - 795, 797, 797, 796, 794, 786, 786, 793, 800, 798, - 803, 804, 786, 798, 800, 801, 802, 804, 801, 805, - 806, 808, 809, 803, 805, 810, 811, 812, 813, 814, - 808, 810, 816, 813, 815, 811, 817, 819, 809, 806, - 821, 818, 824, 819, 823, 817, 812, 825, 815, 814, + 764, 772, 764, 773, 771, 776, 775, 764, 773, 773, + 775, 774, 764, 777, 778, 779, 780, 781, 777, 778, + 776, 782, 787, 790, 783, 794, 794, 782, 777, 779, + 783, 781, 785, 786, 793, 790, 14, 785, 792, 786, + 791, 787, 789, 789, 795, 791, 793, 796, 789, 795, + 789, 797, 792, 798, 799, 796, 800, 800, 803, 801, + 805, 789, 789, 801, 803, 797, 804, 806, 789, 804, + 807, 809, 798, 799, 810, 811, 807, 808, 812, 805, + 806, 813, 808, 810, 811, 815, 814, 813, 816, 817, + 809, 818, 819, 816, 812, 814, 822, 820, 821, 824, - 818, 826, 816, 14, 827, 828, 821, 829, 823, 827, - 828, 824, 829, 830, 832, 825, 826, 831, 831, 833, - 832, 835, 830, 836, 839, 840, 837, 837, 836, 836, - 837, 838, 833, 841, 838, 842, 844, 835, 839, 843, - 845, 846, 844, 847, 848, 840, 847, 846, 842, 13, - 849, 841, 850, 851, 843, 849, 852, 850, 853, 854, - 845, 852, 856, 853, 857, 848, 858, 859, 856, 851, - 861, 854, 858, 859, 860, 860, 862, 864, 863, 861, - 857, 863, 865, 866, 867, 868, 869, 873, 870, 876, - 874, 868, 869, 870, 862, 864, 874, 867, 876, 871, + 826, 827, 822, 828, 815, 818, 820, 821, 829, 817, + 833, 830, 819, 831, 826, 824, 830, 832, 831, 833, + 827, 828, 832, 829, 834, 834, 835, 836, 838, 839, + 841, 842, 835, 841, 839, 839, 843, 840, 840, 844, + 836, 840, 845, 846, 838, 842, 847, 848, 849, 851, + 850, 13, 847, 850, 849, 845, 843, 844, 846, 852, + 853, 854, 857, 855, 852, 853, 856, 848, 855, 859, + 851, 856, 860, 861, 857, 859, 862, 854, 864, 861, + 863, 863, 862, 865, 867, 868, 866, 864, 860, 866, + 869, 871, 870, 872, 876, 873, 880, 871, 874, 872, - 877, 865, 879, 866, 871, 873, 875, 875, 878, 880, - 881, 878, 885, 879, 882, 883, 884, 885, 877, 887, - 882, 883, 881, 886, 886, 888, 890, 880, 889, 891, - 890, 884, 892, 893, 894, 896, 897, 897, 887, 888, - 889, 892, 899, 900, 902, 901, 903, 891, 905, 902, - 904, 904, 893, 0, 896, 903, 899, 901, 900, 894, - 906, 907, 911, 909, 908, 909, 906, 907, 905, 908, - 910, 912, 913, 914, 915, 910, 911, 913, 918, 916, - 917, 919, 919, 921, 920, 912, 916, 923, 914, 924, - 922, 926, 926, 915, 924, 917, 922, 918, 920, 927, + 873, 865, 867, 874, 868, 870, 879, 877, 878, 878, + 869, 883, 876, 877, 880, 879, 881, 882, 884, 881, + 882, 885, 883, 886, 887, 888, 889, 890, 890, 886, + 887, 889, 891, 885, 892, 893, 884, 894, 895, 897, + 888, 894, 898, 896, 900, 901, 901, 893, 892, 905, + 903, 891, 896, 904, 906, 909, 895, 907, 897, 906, + 913, 905, 913, 900, 903, 910, 907, 898, 904, 908, + 908, 910, 911, 915, 912, 909, 914, 916, 911, 912, + 917, 914, 918, 919, 921, 917, 920, 915, 922, 923, + 923, 916, 924, 920, 925, 926, 927, 918, 996, 921, - 929, 921, 928, 924, 927, 924, 931, 923, 924, 928, - 930, 932, 933, 930, 929, 934, 935, 933, 936, 940, - 932, 935, 938, 938, 931, 939, 941, 943, 942, 944, - 939, 941, 942, 945, 934, 946, 943, 936, 947, 940, - 950, 948, 949, 951, 944, 952, 954, 946, 948, 953, - 955, 956, 945, 947, 949, 953, 957, 962, 960, 950, - 959, 954, 964, 952, 951, 957, 959, 961, 963, 966, - 955, 956, 960, 963, 964, 961, 965, 962, 967, 0, - 968, 965, 965, 969, 969, 971, 972, 989, 966, 0, - 973, 989, 967, 968, 970, 972, 973, 976, 971, 970, + 996, 926, 919, 928, 930, 930, 924, 922, 928, 931, + 933, 932, 925, 935, 931, 938, 927, 928, 932, 928, + 934, 936, 928, 934, 933, 940, 944, 937, 939, 0, + 936, 935, 937, 939, 938, 942, 942, 943, 945, 947, + 948, 946, 943, 945, 940, 946, 944, 949, 947, 950, + 951, 952, 953, 954, 955, 948, 956, 957, 952, 959, + 960, 950, 958, 957, 953, 951, 949, 961, 964, 966, + 0, 970, 954, 965, 956, 955, 961, 958, 963, 959, + 960, 965, 964, 967, 963, 968, 969, 971, 967, 966, + 970, 969, 969, 972, 973, 973, 975, 968, 977, 976, - 974, 974, 970, 970, 975, 977, 976, 970, 981, 975, - 977, 978, 984, 970, 979, 979, 978, 970, 980, 983, - 982, 980, 985, 980, 983, 986, 984, 987, 981, 982, - 988, 986, 990, 987, 993, 988, 991, 991, 996, 995, - 985, 990, 992, 995, 992, 993, 990, 997, 990, 998, - 990, 999, 990, 996, 1000, 1001, 999, 999, 998, 1002, - 1001, 1003, 1004, 1005, 1006, 997, 1007, 1012, 1010, 1008, - 1003, 1009, 1006, 1002, 1008, 1011, 1000, 1010, 1013, 1015, - 1007, 1004, 1005, 1013, 1023, 1009, 1014, 1014, 1016, 1016, - 1021, 1026, 1012, 1011, 1015, 1017, 1019, 1017, 1020, 1019, + 979, 971, 978, 978, 977, 979, 972, 974, 976, 975, + 980, 988, 974, 981, 985, 974, 974, 982, 981, 980, + 974, 989, 982, 983, 983, 988, 974, 986, 984, 990, + 974, 984, 987, 984, 985, 990, 986, 987, 991, 989, + 992, 994, 993, 997, 991, 992, 993, 995, 995, 999, + 994, 1000, 1001, 999, 997, 994, 1002, 994, 1003, 994, + 1004, 994, 1005, 1003, 1003, 1002, 1000, 1005, 1007, 1006, + 1001, 1008, 1009, 1010, 1011, 1012, 1014, 1007, 1013, 1015, + 1012, 1010, 1004, 1006, 1016, 1014, 1018, 1018, 1011, 1017, + 1008, 1009, 1013, 1019, 1017, 1020, 1020, 1015, 1021, 1023, - 1022, 1022, 1025, 1020, 1023, 1024, 1024, 1025, 1027, 1021, - 1028, 1028, 1026, 1029, 1030, 1031, 1035, 1031, 1033, 1030, - 1034, 1033, 1036, 1037, 1035, 1034, 1039, 1036, 1037, 1027, - 1038, 1038, 1040, 1029, 1041, 1042, 1044, 1045, 1040, 1049, - 1046, 1041, 1044, 1045, 1039, 1046, 1047, 1048, 1042, 1050, - 1051, 1051, 1047, 1052, 1054, 1055, 1048, 1056, 1049, 1057, - 1050, 1058, 1060, 1056, 1062, 1057, 1061, 1058, 1060, 1063, - 1065, 1064, 1067, 1052, 1054, 1066, 1066, 1068, 1055, 1069, - 1061, 1063, 1070, 1072, 1062, 1064, 1061, 1070, 1065, 1071, - 1071, 1073, 1067, 1075, 1076, 1077, 1073, 1069, 1080, 1076, + 1021, 1024, 1023, 1025, 1026, 1026, 1024, 1027, 1019, 1016, + 1028, 1028, 1029, 1030, 1031, 1032, 1032, 1029, 1033, 1034, + 0, 1035, 1025, 1035, 1034, 1037, 1038, 1027, 1037, 1043, + 1043, 1038, 1039, 1040, 1030, 1031, 1044, 1039, 1033, 1041, + 1042, 1040, 1045, 1046, 1041, 1042, 1047, 1049, 1045, 1050, + 1046, 1051, 1052, 1049, 1044, 1050, 1051, 1053, 1052, 1047, + 1054, 1055, 1056, 1056, 1057, 1059, 1053, 1060, 1061, 1062, + 1063, 1065, 1055, 1066, 1061, 1062, 1063, 1065, 1067, 1054, + 1068, 1069, 1070, 1072, 1057, 1059, 1073, 1066, 1071, 1071, + 1060, 1074, 1068, 1066, 1075, 1069, 1076, 1076, 1067, 1075, - 1076, 1078, 1068, 1079, 1077, 1081, 1072, 1084, 1088, 1078, - 1082, 1089, 1075, 1080, 1083, 1082, 1083, 1079, 1082, 1085, - 1081, 1084, 1086, 1081, 1087, 1085, 1086, 1088, 1090, 1091, - 1092, 1093, 1096, 1095, 1091, 1087, 1098, 1089, 1097, 1097, - 1098, 1099, 1100, 1101, 1102, 1104, 1090, 1095, 1092, 1105, - 1096, 1093, 1103, 1106, 0, 1101, 1110, 1107, 1108, 1099, - 1104, 1100, 1107, 1102, 1105, 1108, 1103, 1111, 1109, 1112, - 1112, 1113, 1106, 1109, 1110, 1114, 1111, 1115, 1116, 1117, - 1123, 1114, 1118, 1116, 1123, 1117, 1113, 1124, 1118, 1119, - 1119, 1120, 1120, 1122, 1122, 1125, 1124, 1126, 1115, 1127, + 1070, 1077, 1078, 1072, 1080, 1084, 1082, 1078, 1081, 1074, + 1083, 1073, 1085, 1081, 1081, 1082, 1086, 1087, 1083, 1084, + 1093, 1089, 1087, 1080, 1077, 1087, 1088, 1085, 1088, 1091, + 1090, 1086, 1092, 1091, 1086, 1089, 1090, 1094, 1095, 1093, + 1096, 1097, 1098, 1092, 1100, 1096, 1101, 1102, 1102, 1103, + 1104, 1105, 1107, 1103, 1106, 1108, 1095, 1109, 1100, 1097, + 1110, 1111, 1098, 1094, 1101, 1115, 1106, 1113, 1104, 1108, + 1105, 1107, 1109, 1112, 1113, 1110, 1114, 1116, 1112, 1118, + 1111, 1114, 1119, 1115, 1117, 1117, 1116, 1120, 1119, 1128, + 1121, 1122, 1123, 1128, 1118, 1121, 1129, 1122, 1123, 1124, - 1128, 1129, 1129, 1130, 1131, 1132, 1133, 1128, 1134, 1137, - 1132, 1126, 1131, 1125, 1127, 1138, 1135, 1139, 1140, 1136, - 1133, 1135, 1135, 1130, 1136, 1136, 1141, 1134, 1144, 1137, - 1142, 1145, 1143, 1146, 1138, 1147, 1139, 1140, 1143, 1146, - 1148, 1147, 1149, 1150, 1151, 1153, 1141, 1161, 1142, 1154, - 1145, 1152, 1155, 1155, 1144, 1156, 1157, 0, 1156, 1148, - 1161, 1149, 1150, 1151, 1154, 1152, 1153, 1159, 1157, 1158, - 1158, 1160, 1159, 1162, 1163, 1160, 1166, 1164, 1167, 1164, - 1168, 1166, 1162, 1164, 1175, 1169, 1171, 1163, 1170, 1170, - 1172, 1171, 1176, 1167, 1173, 1172, 1164, 1177, 1173, 1174, + 1124, 1125, 1125, 1127, 1127, 1129, 1130, 1131, 1120, 1133, + 1132, 1134, 1134, 1135, 1136, 1137, 1133, 1138, 1139, 1142, + 1137, 1131, 1136, 1140, 1130, 1132, 1143, 1144, 1140, 1140, + 1141, 1138, 1145, 1135, 1146, 1141, 1141, 1139, 1147, 1142, + 1149, 1148, 1150, 1151, 1152, 1143, 1144, 1148, 1153, 1151, + 1152, 1145, 1154, 1155, 1146, 1156, 1147, 1158, 1162, 1157, + 1159, 1150, 1160, 1160, 1164, 1161, 1149, 1153, 1161, 1164, + 1162, 1154, 1155, 1157, 1156, 1159, 1163, 1163, 1158, 1165, + 1166, 1167, 1168, 1165, 1171, 1169, 1172, 1169, 1173, 1171, + 1167, 1169, 1180, 1166, 1174, 1168, 1175, 1175, 1176, 1181, - 1168, 1169, 1178, 1174, 1175, 1179, 1179, 1181, 1178, 1183, - 1176, 1184, 1185, 1185, 1186, 1191, 1184, 1177, 1188, 1188, - 1186, 1190, 1190, 1192, 1194, 1181, 1196, 1194, 1195, 1195, - 1183, 1191, 1197, 1198, 1198, 1199, 1200, 1197, 1202, 1192, - 1201, 1201, 1204, 1203, 1205, 1205, 1207, 1196, 1203, 1206, - 1199, 1209, 1202, 1206, 1208, 1208, 1210, 1204, 1211, 1212, - 1213, 1200, 1211, 1215, 1215, 1213, 1207, 1210, 1216, 1217, - 1218, 1219, 1220, 1209, 1221, 1221, 1222, 0, 1212, 1223, - 1224, 1222, 1225, 1217, 1227, 1219, 1216, 1226, 1230, 1218, - 1218, 1225, 1226, 1228, 1230, 1228, 1229, 1220, 1231, 1223, + 1177, 1172, 1178, 1176, 1169, 1177, 1178, 1179, 1173, 1182, + 1174, 1179, 1180, 1183, 1184, 1184, 1186, 1181, 1188, 1183, + 1189, 1190, 1190, 1206, 1191, 1189, 1193, 1193, 1196, 1182, + 1191, 1195, 1195, 1197, 1186, 1199, 1200, 1200, 1199, 1188, + 1201, 1202, 1203, 1203, 1196, 1204, 1202, 1205, 1206, 1197, + 1207, 1207, 1208, 1209, 1210, 1211, 1211, 1213, 1209, 1215, + 1212, 1201, 1205, 1204, 1212, 1216, 1208, 1214, 1214, 1210, + 1217, 1218, 1223, 1219, 1217, 1222, 1216, 1213, 1219, 1221, + 1221, 1215, 1224, 1225, 1226, 1229, 1223, 1227, 1227, 1228, + 1218, 1230, 1233, 1222, 1228, 1231, 1237, 1225, 1232, 1241, - 1224, 1229, 1232, 1234, 1227, 1235, 1235, 1236, 1232, 1237, - 1239, 1240, 1240, 1241, 1241, 1237, 1242, 1234, 1231, 1243, - 1244, 1245, 1246, 1246, 1245, 1248, 1236, 1247, 1251, 1254, - 1242, 1252, 0, 1251, 1239, 1244, 1250, 1243, 1249, 1247, - 1252, 1249, 1250, 1253, 1249, 1248, 1255, 1256, 1253, 1255, - 1257, 1257, 1260, 1256, 1254, 1259, 1249, 1258, 1258, 1261, - 1259, 1262, 1263, 1264, 1265, 1260, 1266, 1267, 1268, 1264, - 1265, 1266, 1272, 1267, 1269, 1270, 1270, 1261, 1271, 1269, - 1262, 1273, 1263, 1271, 1274, 1275, 1276, 1280, 1279, 1278, - 1272, 1268, 1281, 1277, 1279, 1282, 1283, 1285, 1285, 1275, + 1241, 1224, 1224, 1232, 1231, 1229, 1234, 1236, 1234, 1226, + 1235, 1230, 1233, 1236, 1238, 1235, 1237, 1240, 1242, 1243, + 1238, 1245, 1246, 1246, 1248, 1243, 1247, 1247, 1249, 1250, + 1251, 1240, 1254, 1251, 1252, 1252, 1253, 1242, 1248, 1260, + 1263, 1263, 0, 1256, 1250, 1245, 1249, 1255, 1253, 1256, + 1255, 1257, 1254, 1255, 1258, 1259, 1257, 1266, 1261, 1267, + 1259, 1261, 1262, 1258, 1260, 1255, 1264, 1264, 1262, 1265, + 1266, 1268, 1269, 1270, 1265, 1271, 1273, 1267, 1272, 1270, + 1274, 1271, 1273, 1272, 1275, 1276, 1276, 1278, 1277, 1275, + 1268, 1279, 1269, 1277, 1280, 1281, 1282, 1286, 1285, 1287, - 1276, 1273, 1278, 1286, 1274, 1277, 1287, 1280, 1290, 1282, - 1289, 1287, 1281, 1288, 1288, 1291, 1292, 1283, 1293, 1295, - 1294, 1296, 1290, 1286, 1297, 1289, 1295, 1293, 1299, 1301, - 1296, 1302, 1302, 1296, 1292, 1294, 1303, 1303, 1304, 1291, - 1297, 1304, 1306, 1299, 1305, 1305, 1307, 1308, 1299, 1310, - 1309, 1311, 1308, 1313, 1301, 1306, 1316, 1314, 1310, 1312, - 1315, 1315, 1313, 1314, 1317, 1307, 1309, 1318, 1312, 1319, - 1311, 1312, 1320, 1323, 1321, 1324, 1316, 1317, 1325, 1325, - 1326, 1327, 1328, 1319, 1331, 1318, 1321, 1328, 1320, 1332, - 1327, 1329, 1329, 1324, 1333, 1330, 1326, 1336, 1323, 1337, + 1283, 1289, 1284, 1274, 1285, 1278, 1288, 1291, 1291, 1281, + 1282, 1279, 1283, 1292, 1280, 1284, 1293, 1286, 1296, 1287, + 1288, 1293, 1289, 1294, 1294, 1295, 1297, 1298, 1299, 1300, + 1302, 1301, 1296, 1292, 1305, 1303, 1307, 1299, 1301, 1302, + 1295, 1313, 1302, 1314, 1300, 1298, 1308, 1308, 1314, 1305, + 1297, 1303, 1309, 1309, 1305, 1310, 1311, 1311, 1310, 1312, + 1313, 1307, 1315, 1317, 1316, 1318, 1319, 1321, 1321, 1322, + 1320, 1323, 1312, 1316, 1318, 1319, 1320, 1318, 1315, 1324, + 1325, 1327, 1317, 1326, 1323, 1329, 1330, 1331, 1331, 1322, + 1332, 1333, 0, 1327, 1325, 1337, 1334, 1324, 1342, 1326, - 1338, 0, 1331, 1334, 1330, 1337, 1329, 1330, 1334, 1334, - 1332, 1336, 1333, 1339, 1339, 1340, 1345, 1341, 1338, 1342, - 1343, 1340, 1341, 1346, 1347, 1342, 1343, 1348, 1352, 1349, - 1347, 1353, 1349, 1354, 1359, 1355, 1345, 1346, 1349, 1356, - 1348, 1354, 1358, 1357, 1360, 1361, 1363, 1352, 1355, 1357, - 1353, 1362, 1359, 1356, 1364, 1358, 1367, 1362, 1361, 1366, - 1366, 1368, 1363, 1360, 1369, 1368, 1370, 1373, 1371, 1369, - 1372, 1370, 1364, 1371, 1375, 1377, 1367, 1376, 1376, 1372, - 1378, 1379, 1380, 1380, 1381, 1383, 1382, 1384, 1385, 1375, - 1373, 1386, 1378, 1382, 1377, 1387, 1388, 1383, 1381, 1384, + 1333, 1334, 1335, 1335, 1330, 1338, 1332, 1336, 1343, 1339, + 1329, 1344, 1342, 1337, 1343, 1340, 1336, 1335, 1346, 1336, + 1340, 1340, 1345, 1345, 1346, 1347, 1338, 1339, 1348, 1344, + 1347, 1349, 1351, 1352, 1348, 1353, 1354, 1349, 1358, 1355, + 1359, 1353, 1355, 1360, 1363, 1361, 1362, 1352, 1355, 1354, + 1363, 1360, 1351, 1364, 1365, 1366, 1367, 1358, 1361, 1359, + 1362, 1369, 1370, 1368, 1371, 1374, 1364, 1369, 1373, 1373, + 1380, 1379, 1382, 1366, 1365, 1367, 1368, 1375, 1370, 1376, + 1379, 1375, 1371, 1377, 1376, 1374, 1378, 1382, 1377, 1383, + 1383, 1378, 1384, 1380, 1385, 1386, 1387, 1387, 1388, 1392, - 1379, 1387, 1389, 1390, 1391, 1391, 1402, 1385, 1388, 1390, - 1392, 1386, 1395, 1392, 1393, 1393, 1396, 1395, 1397, 1397, - 1389, 1398, 1399, 1400, 1399, 1396, 1400, 1401, 1402, 1405, - 1403, 1404, 1406, 1398, 1405, 1409, 1408, 1410, 1407, 1412, - 1409, 1406, 1411, 1413, 1413, 1415, 1410, 1401, 1403, 1404, - 1407, 1408, 1414, 1416, 1412, 1417, 1419, 1419, 1414, 1410, - 1422, 1418, 1411, 1418, 1420, 1420, 1415, 1421, 1421, 1423, - 1423, 1424, 1416, 1425, 1427, 1417, 1426, 1426, 1427, 1428, - 1422, 1429, 1431, 1432, 1429, 1428, 1434, 1433, 1431, 1436, - 1436, 0, 1424, 1433, 1425, 1435, 1437, 1437, 1435, 1438, + 1389, 1390, 1393, 1391, 1394, 1395, 1385, 1389, 1396, 1476, + 1394, 1384, 1388, 1390, 1386, 1391, 1476, 1395, 1392, 1397, + 1398, 1398, 1393, 1403, 1399, 1397, 1396, 1399, 1400, 1400, + 1402, 1405, 1403, 1404, 1404, 1402, 1406, 1407, 1406, 1408, + 1407, 1409, 1410, 1405, 1411, 1412, 1413, 1416, 1417, 1414, + 1412, 1415, 1416, 1418, 1419, 1413, 1422, 1417, 1424, 1408, + 1410, 1414, 1411, 1409, 1420, 1420, 1415, 1423, 1421, 1419, + 1417, 1426, 1426, 1418, 1421, 1427, 1427, 1422, 1424, 1425, + 1429, 1425, 1428, 1428, 1430, 1430, 1423, 1431, 1432, 1433, + 1433, 1434, 1435, 1436, 1439, 1434, 1436, 1438, 1435, 1440, - 1439, 1432, 1440, 1441, 1442, 1438, 1443, 1447, 1453, 1447, - 1442, 1434, 1439, 1439, 1439, 1445, 1446, 1448, 1449, 1439, - 1445, 1445, 1440, 1441, 1452, 1450, 1443, 1451, 1448, 1453, - 1446, 1450, 1455, 1449, 1454, 1454, 1451, 1456, 1456, 1457, - 1458, 1459, 1459, 1463, 1452, 1460, 1460, 1465, 1466, 1467, - 1467, 1468, 1463, 1469, 1470, 1471, 1465, 1473, 1455, 1457, - 1469, 1474, 1458, 1470, 1472, 1472, 1468, 1476, 1477, 1466, - 1478, 1479, 1476, 1480, 1477, 1483, 1481, 1474, 1479, 1480, - 1483, 1471, 1481, 1473, 1482, 1482, 1484, 1485, 1487, 1486, - 1478, 1488, 1489, 1490, 1488, 1484, 1491, 1491, 1492, 1494, + 1429, 1441, 1447, 1438, 1442, 1440, 1446, 1442, 1431, 1432, + 1443, 1443, 1439, 1444, 1444, 1445, 1448, 1449, 1446, 1446, + 1446, 1445, 1447, 1449, 1450, 1446, 1441, 1452, 1453, 1454, + 1455, 1454, 1452, 1452, 1456, 1459, 1448, 1457, 1458, 1460, + 1462, 1455, 1453, 1457, 1450, 1461, 1461, 1458, 1464, 1456, + 1463, 1463, 1465, 1466, 1466, 1459, 1467, 1467, 1470, 1473, + 1460, 1472, 1474, 1474, 1475, 1478, 1462, 1470, 1464, 1477, + 1472, 1479, 1479, 1480, 1465, 1484, 1481, 1483, 1477, 1475, + 1473, 1484, 1483, 1485, 1487, 1492, 1486, 1493, 1488, 1491, + 1487, 1478, 1481, 1486, 1488, 1489, 1489, 1490, 1491, 1480, - 1487, 1493, 1495, 1497, 1492, 1498, 1495, 1485, 1486, 1501, - 1489, 1499, 1502, 1506, 1494, 1509, 1502, 1506, 1504, 1490, - 1511, 1493, 1495, 1497, 1498, 1503, 1499, 1504, 1501, 1505, - 1505, 1503, 1507, 1508, 1508, 1510, 1509, 1512, 1513, 1521, - 1511, 1514, 1514, 1507, 1513, 1516, 1515, 1528, 1507, 1510, - 1515, 1517, 1517, 1518, 1519, 1522, 1516, 1512, 1518, 1518, - 1519, 1516, 1520, 1523, 1525, 1521, 1526, 1522, 1520, 1523, - 1526, 1527, 1528, 1529, 1530, 1531, 1525, 1532, 1534, 1529, - 1535, 1531, 1536, 1527, 1542, 1538, 0, 1536, 1538, 1532, - 1534, 1539, 1539, 1540, 1540, 1543, 1530, 1541, 1541, 1535, + 1494, 1495, 1490, 1485, 1495, 1492, 1493, 1496, 1497, 1498, + 1498, 1499, 1494, 1500, 1501, 1502, 1504, 1499, 1505, 1502, + 1508, 1510, 1509, 1506, 1513, 1496, 1509, 1510, 1513, 1501, + 1516, 1511, 1514, 1500, 1497, 1502, 1504, 1505, 1506, 1508, + 1511, 1512, 1512, 1514, 1515, 1515, 1517, 1518, 1514, 1519, + 1520, 1516, 1521, 1521, 1522, 1523, 1520, 1529, 1522, 1527, + 1517, 1524, 1524, 1525, 1525, 1527, 1523, 1518, 1526, 1519, + 1528, 1523, 1530, 1526, 1526, 1531, 1528, 1533, 1534, 1535, + 1536, 1531, 1534, 1529, 1530, 1538, 1537, 1539, 1540, 1533, + 1542, 1535, 1537, 1539, 1543, 1546, 1544, 1550, 1546, 1589, - 1544, 1543, 1545, 1546, 1542, 1547, 1544, 1545, 1549, 1546, - 1552, 1554, 1551, 1549, 1547, 1551, 1555, 1557, 1557, 1556, - 1558, 1559, 1552, 1554, 1556, 1560, 1559, 1562, 1555, 1558, - 1560, 1561, 1561, 1563, 1564, 1565, 1566, 1569, 1567, 1568, - 1566, 1572, 1563, 1567, 1573, 1568, 1574, 1562, 1571, 1571, - 1575, 1569, 1564, 1573, 1565, 1574, 1576, 1579, 1579, 1572, - 1571, 1581, 1575, 1582, 1585, 1584, 1586, 1587, 1591, 1576, - 1588, 1588, 1586, 1589, 1594, 1589, 1591, 1581, 1585, 1582, - 1584, 1590, 1590, 1593, 1587, 1595, 1595, 1596, 1597, 1598, - 1593, 1599, 1600, 1601, 1594, 1602, 1596, 1605, 1608, 1603, + 1540, 1544, 1542, 1547, 1547, 1536, 1551, 1538, 1548, 1548, + 1549, 1549, 1551, 1543, 1552, 1589, 1553, 1550, 1554, 1555, + 1552, 1553, 1557, 1559, 1554, 1560, 1559, 1557, 1555, 1562, + 1563, 1564, 1565, 1565, 1566, 1567, 1564, 1560, 1570, 1568, + 1567, 1562, 1563, 1566, 1568, 1569, 1569, 1571, 1572, 1573, + 1574, 1577, 1575, 1576, 1574, 1580, 1571, 1575, 1570, 1576, + 1579, 1579, 1581, 1583, 1584, 1577, 1572, 1582, 1573, 1587, + 1587, 1581, 1579, 1580, 1590, 1583, 1582, 1584, 1592, 1594, + 1593, 1595, 1596, 1596, 1597, 1594, 1597, 1598, 1598, 1599, + 1590, 1602, 1601, 1592, 1593, 1603, 1603, 1599, 1595, 1601, - 1606, 1598, 1609, 1599, 1600, 1603, 1607, 1607, 1610, 1597, - 1602, 1610, 1606, 1612, 1616, 1611, 1608, 1605, 1603, 1601, - 1611, 1614, 1609, 1615, 1617, 1615, 1614, 1618, 1620, 1617, - 1621, 1624, 1616, 1612, 1618, 1626, 1622, 1620, 1622, 1625, - 1625, 1627, 1621, 1629, 1631, 1624, 1627, 1628, 1629, 1628, - 1630, 1632, 1633, 1635, 1634, 1630, 1636, 1638, 1633, 1634, - 1639, 1626, 1631, 1642, 1636, 1643, 1635, 1640, 1640, 1641, - 1641, 1632, 1645, 1644, 1639, 1647, 1638, 1645, 1642, 1644, - 1646, 1649, 1646, 1647, 1655, 1643, 1648, 1648, 1650, 1650, - 1652, 1647, 1653, 1649, 1651, 1651, 1654, 1657, 1654, 1652, + 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1613, 1604, + 1617, 1602, 1614, 1611, 1606, 1607, 1608, 1615, 1615, 1616, + 1618, 1610, 1605, 1618, 1614, 1620, 1611, 1619, 1613, 1622, + 1617, 1609, 1619, 1623, 1622, 1623, 1624, 1616, 1625, 1626, + 1628, 1629, 1630, 1625, 1630, 1620, 1626, 1632, 1634, 1628, + 1633, 1633, 1635, 1629, 1624, 1637, 1636, 1635, 1636, 1638, + 1637, 1632, 1639, 1640, 1638, 1641, 1643, 1642, 1644, 1646, + 1647, 1641, 1642, 1651, 1634, 1650, 1644, 1648, 1648, 1643, + 1639, 1649, 1649, 1640, 1647, 1652, 0, 1653, 1646, 1655, + 1650, 1652, 1653, 1651, 1654, 1657, 1654, 1655, 1656, 1656, - 1658, 1653, 1656, 1656, 1653, 1655, 1657, 1660, 1661, 1662, - 1664, 1665, 1658, 1661, 1662, 1666, 1667, 1670, 1674, 1660, - 1668, 1671, 1672, 1664, 1674, 1677, 1671, 1672, 1678, 1670, - 1679, 1665, 1676, 1666, 1667, 1680, 1668, 1674, 1676, 1681, - 1681, 1682, 1684, 1678, 1680, 1683, 1683, 1685, 1677, 1686, - 1682, 1685, 1687, 1688, 1686, 1679, 1689, 1690, 1688, 1688, - 1692, 1684, 1689, 1690, 1691, 1687, 1693, 1691, 1692, 1696, - 1696, 1698, 1697, 1697, 1699, 1699, 1700, 1700, 1701, 1702, - 1698, 1709, 1703, 1710, 1704, 1709, 1693, 1697, 1703, 1704, - 1701, 1705, 1705, 1713, 1706, 1707, 1711, 1702, 1697, 1706, + 1658, 1658, 1659, 1659, 1660, 1655, 1661, 1657, 1662, 1663, + 1662, 1664, 1664, 1660, 1665, 1661, 1666, 1668, 1661, 1669, + 1670, 1672, 1673, 1665, 1669, 1670, 1674, 1675, 1666, 1668, + 1663, 1676, 1679, 1680, 1672, 1683, 1678, 1679, 1680, 1686, + 1685, 1683, 1673, 1687, 1674, 1675, 1685, 1676, 1678, 1688, + 1689, 1690, 1690, 1693, 1683, 1691, 1692, 1692, 1687, 1689, + 1696, 1694, 1686, 1695, 1691, 1694, 1700, 0, 1695, 1700, + 1697, 1698, 1693, 1696, 1688, 1697, 1697, 1698, 1699, 1701, + 1702, 1705, 1705, 1707, 1699, 1708, 1708, 1701, 1706, 1706, + 1709, 1709, 1707, 1710, 1711, 1712, 1719, 1713, 1714, 1714, - 1711, 1707, 1714, 1710, 1715, 1716, 1717, 1714, 1718, 1719, - 1721, 1717, 1720, 1720, 1721, 1722, 1723, 1724, 1713, 1725, - 1716, 1723, 1729, 1726, 1731, 1719, 1718, 1715, 1726, 1730, - 1722, 1727, 1727, 1732, 1733, 1734, 1738, 1735, 1725, 1736, - 1742, 1729, 0, 1724, 1739, 1739, 1741, 1731, 1730, 1735, - 1743, 1738, 1740, 1733, 1742, 1740, 1734, 1732, 1747, 1741, - 1736, 1744, 1744, 1743, 1745, 1745, 1746, 1746, 1748, 1749, - 1749, 1750, 1752, 1747, 1751, 1751, 1755, 1752, 1756, 1754, - 1750, 1748, 1757, 1750, 1754, 1758, 1758, 1759, 1759, 1760, - 1761, 1761, 1762, 1766, 1757, 1767, 1755, 1771, 1756, 1763, + 1702, 1712, 1713, 1706, 1715, 1710, 1718, 1716, 1722, 1715, + 1718, 1720, 1711, 1716, 1706, 1720, 1719, 1723, 1724, 1725, + 1726, 1727, 1723, 1731, 1728, 1726, 1729, 1729, 1730, 1733, + 1732, 1734, 1730, 1722, 1725, 1732, 1740, 1735, 1731, 1727, + 1728, 1724, 1735, 1736, 1736, 1738, 1739, 1741, 1742, 1743, + 1734, 1744, 1745, 1747, 1756, 1733, 1748, 1748, 1749, 1740, + 1751, 1749, 1750, 1744, 1738, 1739, 1752, 1742, 1747, 1756, + 1743, 1741, 1757, 1745, 1751, 1750, 1753, 1753, 1764, 1752, + 1754, 1754, 1755, 1755, 1759, 1757, 1758, 1758, 1760, 1760, + 1761, 1765, 1763, 1759, 1766, 1761, 1759, 1763, 1764, 1767, - 1763, 1764, 1764, 1765, 1765, 1773, 1769, 1766, 1760, 1774, - 1762, 1769, 1770, 1770, 1767, 1774, 1771, 1772, 1772, 1775, - 1776, 1776, 1775, 1773, 1777, 1777, 1778, 1779, 1780, 1781, - 1781, 1783, 1784, 1785, 1786, 1788, 1776, 1789, 1786, 1787, - 1787, 1790, 1779, 1792, 1792, 1778, 1793, 1780, 1785, 1795, - 1794, 1783, 1789, 1796, 1788, 1784, 1790, 1794, 1797, 1797, - 1798, 1801, 1799, 1795, 1799, 1802, 1793, 1803, 1804, 1798, - 1802, 1805, 1803, 1801, 1806, 1807, 1808, 1809, 1812, 1796, - 1807, 1808, 1809, 1810, 1805, 1811, 1813, 1814, 1815, 1822, - 1811, 1816, 1817, 1804, 1818, 1806, 1814, 1815, 1810, 1813, + 1767, 1768, 1768, 1769, 1770, 1770, 1766, 1771, 1772, 1772, + 1775, 1765, 1773, 1773, 1774, 1774, 1776, 1780, 1778, 1779, + 1779, 1782, 1769, 1778, 1775, 1771, 1781, 1781, 1783, 1784, + 1785, 1785, 1784, 1787, 1783, 1776, 1780, 1786, 1786, 1782, + 1788, 1789, 1790, 1790, 1792, 1793, 1785, 1794, 1797, 1795, + 1796, 1796, 1787, 1795, 1798, 1788, 1799, 1801, 1801, 1802, + 1789, 1804, 1794, 1803, 1792, 1805, 1815, 1797, 1793, 1798, + 1803, 1799, 1806, 1806, 1807, 1804, 1808, 1810, 1808, 1802, + 1811, 1812, 1813, 1807, 1814, 1811, 1812, 1815, 1816, 1810, + 1817, 1805, 1821, 1816, 1818, 1817, 1819, 1814, 1820, 1818, - 1816, 1817, 1820, 1812, 1819, 1824, 1820, 1826, 1818, 1822, - 1819, 1825, 1825, 1826, 1824, 1827, 1827, 1828, 1830, 1831, - 1832, 1832, 1834, 1833, 1827, 1837, 1841, 1838, 1836, 1841, - 1843, 1834, 1839, 1844, 1830, 1831, 0, 1828, 1833, 1828, - 1836, 1837, 1838, 1842, 1839, 1844, 1845, 1845, 1842, 1849, - 1843, 1847, 1847, 1848, 1849, 1850, 1848, 1851, 1852, 1852, - 1853, 1850, 1856, 1851, 1854, 1854, 1855, 1857, 1858, 1858, - 1861, 1860, 1863, 1861, 1853, 1860, 1856, 1863, 1855, 1862, - 1862, 1864, 1867, 1865, 1868, 1869, 1857, 1865, 1870, 1871, - 1872, 1873, 1870, 1875, 1874, 1872, 1877, 1873, 1878, 1869, + 1822, 1823, 1827, 1820, 1829, 1824, 1825, 1813, 1829, 1826, + 1823, 1819, 1831, 1822, 1824, 1825, 1827, 1821, 1826, 1828, + 1833, 1834, 1834, 1837, 1835, 1828, 1836, 1836, 1839, 1833, + 1835, 1840, 1831, 1841, 1841, 1836, 1842, 1843, 1845, 1846, + 1848, 1847, 1852, 1837, 1839, 1837, 1843, 1840, 1851, 1853, + 1845, 1842, 1848, 1851, 1850, 1846, 1847, 1850, 1854, 1854, + 1862, 1853, 1852, 1856, 1856, 1857, 1858, 1859, 1857, 1860, + 1864, 1858, 1865, 1859, 1862, 1860, 1861, 1861, 1863, 1863, + 1866, 1869, 1864, 1867, 1867, 1869, 1865, 1870, 1871, 1871, + 1870, 1872, 1873, 1874, 1876, 1877, 1872, 1874, 1880, 1866, - 1874, 1864, 1867, 1878, 1868, 1884, 1880, 1879, 1881, 1871, - 1881, 1875, 1877, 1879, 1880, 1885, 1885, 1886, 1887, 1884, - 1886, 1888, 1888, 1890, 1891, 1892, 1894, 1890, 1893, 1893, - 1891, 1897, 1897, 1899, 1903, 1894, 1904, 1892, 1911, 1903, - 1912, 1904, 1905, 1905, 1887, 1907, 1907, 1909, 1910, 1910, - 1913, 1899, 1915, 1909, 1911, 1913, 1916, 1917, 1917, 1920, - 1919, 1921, 1912, 1922, 1925, 1920, 1924, 1924, 1916, 1919, - 1926, 1915, 1928, 1928, 1929, 1929, 1930, 1931, 1922, 1921, - 1933, 1930, 1931, 1925, 1932, 1934, 1932, 1935, 1926, 1936, - 1936, 1940, 1935, 1941, 1933, 1937, 1937, 1938, 1938, 1934, + 1879, 1881, 1878, 1882, 1879, 1883, 1881, 1884, 1886, 1882, + 1896, 1883, 1873, 1888, 1876, 1877, 1878, 1887, 1880, 1888, + 1889, 1890, 1887, 1890, 1886, 1884, 1893, 0, 1889, 1894, + 1894, 1895, 1897, 1897, 1895, 1899, 1896, 1900, 1901, 1899, + 1893, 1902, 1902, 1900, 1903, 1906, 1906, 1908, 1920, 1912, + 1901, 1913, 1921, 1903, 1912, 1918, 1913, 1914, 1914, 1916, + 1916, 1918, 1919, 1919, 1920, 1908, 1922, 1924, 1925, 1926, + 1926, 1922, 1928, 1929, 1921, 1930, 1931, 1933, 1933, 1929, + 1925, 1928, 1934, 1941, 1935, 1941, 1924, 1937, 1937, 1938, + 1938, 1931, 1939, 1930, 1940, 1942, 1943, 1939, 1944, 1940, - 1939, 1939, 1944, 1940, 1942, 1942, 1943, 1943, 1945, 1945, - 1948, 1941, 1946, 1946, 1944, 1947, 1947, 1949, 1950, 1951, - 1952, 1953, 1948, 1955, 1949, 1952, 1954, 1954, 1956, 1957, - 1950, 1958, 1955, 1959, 1960, 1961, 1961, 1962, 1963, 1951, - 1964, 1953, 1966, 1967, 1958, 1968, 1962, 1969, 1960, 1957, - 1969, 1971, 1970, 1963, 1956, 1964, 1971, 1959, 1972, 1979, - 1966, 1973, 1973, 1972, 1980, 1967, 1970, 1981, 1968, 1974, - 1974, 1975, 1975, 1978, 1978, 1980, 1983, 1979, 1985, 1984, - 1987, 1986, 1988, 1990, 1990, 1989, 1981, 1992, 1992, 1987, - 1993, 1994, 1994, 1995, 1996, 1998, 1983, 1984, 1997, 1993, + 1950, 1934, 1935, 1944, 1945, 1945, 1946, 1946, 1949, 1942, + 1943, 1947, 1947, 1948, 1948, 1951, 1951, 1953, 1950, 1957, + 1949, 1952, 1952, 1954, 1954, 1955, 1955, 1956, 1956, 1953, + 1958, 1957, 1959, 1960, 1961, 1962, 1964, 1958, 1965, 1961, + 1963, 1963, 1966, 1967, 1959, 1964, 1968, 1969, 1970, 1970, + 1971, 1972, 1973, 1960, 1975, 1962, 1967, 1976, 1977, 1971, + 1978, 1969, 1966, 1978, 1965, 0, 1972, 1973, 1979, 1980, + 1968, 1981, 1975, 1988, 1980, 1990, 1981, 1982, 1982, 1976, + 1993, 1977, 1979, 1983, 1983, 1984, 1984, 1987, 1987, 1989, + 1992, 1988, 1994, 1995, 1990, 1996, 1997, 1998, 1993, 2002, - 1985, 1986, 1988, 1989, 1999, 1997, 2000, 2001, 2002, 2008, - 1998, 1995, 1996, 2003, 2003, 2004, 2004, 2006, 2007, 2005, - 2010, 2009, 1999, 2001, 2000, 2005, 2009, 2002, 2008, 2011, - 2013, 2012, 2013, 2007, 2018, 2006, 2012, 2014, 2014, 2015, - 2010, 2015, 2016, 2016, 2021, 2020, 2022, 2025, 2026, 2011, - 2029, 2026, 0, 2018, 2020, 2027, 2027, 2028, 2030, 2030, - 2033, 2036, 2031, 2038, 2021, 2022, 2031, 2025, 2029, 2034, - 2035, 2035, 2028, 2034, 2036, 2033, 2039, 2040, 2040, 2042, - 2043, 2043, 2044, 2038, 2045, 2045, 2053, 2046, 2047, 2047, - 2054, 2042, 2046, 2052, 2052, 2056, 2039, 2055, 2061, 2064, + 1989, 1999, 1999, 2004, 1996, 2001, 2001, 2005, 2002, 2008, + 1992, 2003, 2003, 1995, 1994, 1998, 1997, 2006, 2007, 2009, + 2010, 2004, 2011, 2016, 2006, 2005, 2014, 2008, 2012, 2012, + 2013, 2013, 2014, 2007, 2015, 2017, 2010, 2009, 2016, 2018, + 2019, 2011, 2020, 2021, 2018, 2022, 2027, 2022, 2021, 2023, + 2023, 2024, 2015, 2024, 2017, 2025, 2025, 2029, 2030, 2034, + 2019, 2031, 2020, 2038, 2035, 2027, 2029, 2035, 2036, 2036, + 2037, 2039, 2039, 2040, 2042, 2044, 2044, 2040, 2030, 2034, + 2031, 2038, 2043, 2045, 2047, 2037, 2043, 2048, 2051, 2042, + 2049, 2049, 2052, 2052, 2053, 2062, 2045, 2054, 2054, 2063, - 2060, 2044, 2062, 2054, 2056, 2060, 2063, 2062, 2053, 2065, - 2055, 2067, 2061, 2070, 2063, 2068, 2069, 2065, 2064, 2075, - 2068, 2069, 2071, 2071, 2072, 2072, 2067, 2073, 2070, 2076, - 2074, 2078, 2077, 2080, 2073, 2074, 2078, 2075, 2077, 2079, - 2079, 2081, 2082, 2082, 2083, 2083, 2081, 2076, 2080, 2086, - 2087, 2088, 2091, 2087, 2089, 2090, 2088, 2088, 2091, 2089, - 2090, 2092, 2086, 2093, 2094, 2092, 2095, 2096, 2093, 2097, - 2098, 2104, 2102, 2094, 2097, 2096, 2100, 2102, 2103, 2100, - 2105, 2095, 2098, 2103, 2112, 2106, 2107, 2108, 2108, 2104, - 2109, 2113, 2117, 2105, 2106, 2107, 2114, 2115, 2115, 2109, + 2051, 2055, 2056, 2056, 2047, 2064, 2055, 2048, 2061, 2061, + 2065, 2069, 2063, 2053, 2070, 2071, 2069, 2062, 2064, 2065, + 2071, 2072, 2073, 2074, 2076, 2077, 2084, 2078, 2070, 2072, + 2077, 2074, 2078, 2079, 2080, 2080, 2081, 2081, 2082, 2076, + 2085, 2073, 2083, 2086, 2084, 2082, 2087, 2083, 2079, 2086, + 2089, 2087, 2088, 2088, 2090, 2091, 2091, 2095, 2085, 2090, + 2092, 2092, 2097, 2096, 2098, 2089, 2096, 2097, 2097, 2098, + 2095, 2099, 2100, 2101, 2102, 2103, 2099, 2101, 2100, 2102, + 2104, 2105, 2106, 2109, 2103, 2107, 2109, 2106, 2111, 2105, + 2113, 2112, 2114, 2111, 2115, 2104, 2112, 2107, 2116, 2117, - 2116, 2117, 2118, 2112, 2119, 2119, 2120, 2122, 2124, 2125, - 2126, 2113, 0, 2125, 2131, 2114, 2126, 2118, 2128, 2116, - 2127, 2127, 2122, 2131, 2129, 2120, 2128, 2132, 2124, 2129, - 2134, 2135, 2136, 2146, 2134, 2138, 2138, 2139, 2139, 2148, - 2132, 2140, 2140, 2142, 2142, 2135, 0, 2136, 2144, 2144, - 2149, 2149, 2158, 2146, 2150, 2150, 2151, 2151, 2152, 2148, - 2156, 2152, 2153, 2153, 2154, 2154, 2155, 2155, 2157, 2157, - 2158, 2159, 2160, 2161, 2161, 2156, 2162, 2165, 2160, 2166, - 2162, 2167, 2165, 2165, 2168, 2159, 2169, 2170, 2171, 2177, - 2172, 2180, 2169, 2170, 2172, 2173, 2173, 2177, 2176, 2185, + 2117, 2118, 2121, 2115, 2122, 2114, 2123, 2116, 2113, 2125, + 2118, 2124, 2124, 2126, 2127, 2128, 2128, 2129, 2131, 2133, + 2135, 2121, 2126, 2134, 2122, 2123, 2135, 2134, 2125, 2127, + 2136, 2136, 2137, 2131, 2140, 2141, 2129, 2138, 2144, 2133, + 2137, 2143, 2138, 2140, 2145, 2143, 2147, 2147, 2141, 2148, + 2148, 2155, 2144, 2149, 2149, 2151, 2151, 2153, 2153, 2145, + 2157, 2158, 2158, 2159, 2159, 2160, 2160, 2161, 2162, 2162, + 2161, 2155, 2163, 2163, 2164, 2164, 2165, 2166, 2166, 2167, + 2157, 2168, 2169, 2170, 2170, 2171, 2175, 2174, 2169, 2171, + 2176, 2165, 2174, 2174, 2177, 2168, 2178, 2167, 2179, 2180, - 2182, 2167, 2166, 2176, 2168, 2178, 2181, 2183, 2178, 2181, - 2184, 2186, 2183, 2171, 2187, 2187, 2180, 2182, 2182, 2185, - 2188, 2189, 2190, 2191, 2191, 2186, 2192, 2192, 2184, 2189, - 2193, 2193, 2194, 2194, 2195, 2196, 2197, 2198, 2199, 2188, - 2196, 2190, 2200, 2205, 2201, 2203, 2203, 2199, 2204, 2213, - 2195, 2204, 2207, 2207, 2209, 2209, 2197, 0, 2208, 2211, - 2217, 2205, 2200, 2198, 2201, 2208, 2210, 2213, 2211, 2214, - 2214, 2210, 2215, 2216, 2218, 2217, 2215, 2219, 2220, 2218, - 2218, 2227, 2216, 2225, 2225, 2226, 2230, 2220, 2232, 2234, - 2219, 2236, 2238, 2227, 2226, 0, 2236, 2237, 2237, 2240, + 2189, 2181, 2178, 2185, 2179, 2181, 2182, 2182, 2185, 2175, + 2176, 2186, 2187, 2190, 2177, 2187, 2190, 2191, 2192, 2186, + 2193, 2194, 2195, 2192, 2180, 2189, 2196, 2196, 2197, 2198, + 2199, 2200, 2200, 2207, 2191, 2191, 2195, 2198, 2193, 2201, + 2201, 2194, 2202, 2202, 2203, 2203, 2204, 2197, 2205, 2199, + 2206, 2208, 2209, 2205, 2210, 2212, 2212, 2214, 2213, 2207, + 2208, 2213, 2204, 2216, 2216, 2222, 2217, 2218, 2218, 2220, + 2206, 2219, 2209, 2217, 2210, 2214, 2219, 2224, 2220, 2223, + 2223, 2224, 2225, 2222, 2226, 2228, 2229, 2227, 2234, 2234, + 2236, 2225, 2227, 2227, 2235, 2229, 2239, 2241, 2228, 2226, - 2232, 2238, 2241, 2241, 2240, 2247, 2241, 2243, 2243, 2246, - 2234, 2230, 2244, 2244, 2245, 2245, 2248, 2249, 2246, 2252, - 2251, 2255, 2249, 2253, 2252, 2247, 2251, 2256, 2253, 2254, - 2254, 2257, 2258, 2260, 2259, 2248, 2257, 2261, 2261, 2255, - 2259, 2263, 2264, 2265, 2265, 2269, 2266, 2268, 2256, 2267, - 2258, 2268, 2270, 2271, 2269, 2272, 2273, 2264, 2260, 2266, - 2263, 2273, 2267, 2272, 2274, 2275, 2275, 2276, 2270, 2278, - 2278, 2281, 2271, 2279, 2279, 2283, 2283, 2284, 2285, 2287, - 2287, 2288, 2289, 2285, 2290, 2293, 2276, 2292, 2292, 2295, - 2274, 2298, 2281, 2284, 2296, 2296, 2297, 2297, 2299, 2293, + 2245, 2243, 2236, 2235, 2247, 2245, 2246, 2246, 2256, 2241, + 2249, 2252, 2252, 2247, 2257, 2249, 2250, 2250, 2253, 2253, + 2250, 2239, 2243, 2254, 2254, 2255, 2258, 2261, 2256, 2260, + 2264, 2258, 2261, 2257, 2255, 2260, 2262, 2263, 2263, 2265, + 2266, 2262, 2269, 2267, 2268, 2266, 2270, 2270, 2264, 2272, + 2268, 2273, 2274, 2274, 2277, 2278, 2275, 2276, 2277, 2279, + 2265, 2267, 2280, 2281, 2278, 2283, 2273, 2269, 2272, 2275, + 2276, 2281, 2282, 2284, 2284, 2279, 2285, 2282, 2287, 2287, + 2290, 2280, 2288, 2288, 2292, 2292, 2293, 2294, 2296, 2296, + 2297, 2283, 2294, 2298, 2299, 2285, 2301, 2301, 2302, 2304, - 2298, 2288, 2300, 2290, 2301, 2289, 2302, 2303, 2303, 2304, - 2309, 2295, 2304, 2305, 2305, 2310, 2301, 2311, 2299, 2312, - 2312, 2300, 2309, 2311, 2313, 2314, 2302, 2313, 2315, 2317, - 2319, 2314, 2318, 2320, 2317, 2310, 2321, 2318, 2325, 2320, - 2322, 2322, 2324, 2324, 2327, 2327, 2315, 2328, 2328, 2319, - 2329, 2330, 2342, 2321, 2321, 2329, 2331, 2325, 2332, 2332, - 2340, 2331, 2333, 2333, 2335, 2330, 2334, 2334, 2346, 2335, - 2337, 2337, 2343, 2343, 2342, 2345, 2345, 2347, 2348, 2340, - 2349, 2349, 2346, 2350, 2353, 2354, 2355, 2348, 2350, 2356, - 2356, 2354, 2359, 2360, 2355, 2357, 2361, 2347, 2353, 2362, + 2307, 2290, 2293, 2305, 2305, 2306, 2306, 2308, 2310, 2307, + 2297, 2309, 2302, 2299, 2311, 2319, 2298, 2312, 2312, 2313, + 2310, 2304, 2313, 2314, 2314, 2318, 2320, 2308, 2321, 2321, + 2309, 2324, 2320, 2322, 2311, 2319, 2322, 2318, 2323, 2328, + 2326, 2327, 2329, 2330, 2323, 2326, 2327, 2334, 2329, 2324, + 2331, 2331, 2333, 2333, 2336, 2336, 2337, 2337, 2328, 2338, + 2330, 2330, 2339, 2340, 2338, 2349, 2334, 2351, 2340, 2341, + 2341, 2342, 2342, 2343, 2343, 2344, 2339, 2346, 2346, 2355, + 2344, 2352, 2352, 2356, 2349, 2354, 2354, 2357, 2362, 2351, + 2358, 2358, 2359, 2355, 2363, 2368, 2357, 2359, 2364, 2369, - 2357, 2361, 2363, 2366, 2367, 2368, 2365, 2370, 2363, 2369, - 2372, 2362, 2359, 2360, 2365, 2371, 2373, 2376, 2379, 2379, - 0, 2373, 2366, 2370, 2367, 2368, 2381, 2369, 2380, 2380, - 2381, 2372, 2371, 2371, 2385, 2385, 2392, 2376, 2387, 2387, - 2388, 2388, 2389, 2388, 2391, 2391, 2389, 2393, 2395, 2395, - 2396, 2397, 2398, 2400, 2392, 2397, 2401, 2396, 2402, 2402, - 2405, 2393, 2403, 2403, 2407, 2401, 2410, 2398, 2404, 2404, - 2411, 2400, 2406, 2407, 2408, 2405, 2407, 2406, 2409, 2408, - 2408, 2412, 2413, 2414, 2409, 2411, 2415, 2413, 2414, 2416, - 2416, 2410, 2419, 2419, 2422, 2422, 2423, 2423, 2424, 2424, + 2363, 2375, 2362, 2356, 2365, 2365, 2364, 2366, 2370, 2371, + 2372, 2376, 2366, 2370, 2374, 2368, 2372, 2377, 2378, 2369, + 2375, 2371, 2374, 2379, 2380, 2381, 2410, 2382, 2385, 2388, + 2388, 2376, 2382, 2389, 2389, 2410, 2378, 2377, 0, 2379, + 2390, 2380, 2380, 2398, 2390, 2401, 2381, 2398, 2385, 2394, + 2394, 2396, 2396, 2397, 2397, 2402, 2397, 2400, 2400, 2404, + 2404, 2405, 2406, 2401, 2407, 2409, 2406, 2414, 2405, 2402, + 2411, 2411, 2412, 2412, 2413, 2413, 2415, 2416, 2418, 2407, + 2419, 2415, 2414, 2409, 2418, 2417, 2416, 2420, 2421, 2416, + 2417, 2417, 2422, 2423, 2424, 2425, 2425, 2422, 2423, 2428, - 2426, 2430, 2412, 2427, 2427, 2415, 2429, 2429, 2431, 2426, - 2432, 2432, 2433, 2434, 2434, 2437, 2430, 2439, 2438, 2441, - 2431, 2438, 2440, 2440, 2444, 2443, 2445, 2433, 2443, 2446, - 2444, 2447, 2449, 2437, 2446, 2448, 2455, 2441, 2458, 2455, - 2445, 2459, 2460, 2439, 2461, 2459, 2463, 2465, 2449, 2464, - 2447, 2467, 2465, 2448, 2466, 2469, 2466, 2470, 2461, 2471, - 2464, 2458, 2460, 2468, 2468, 2472, 2467, 2473, 2469, 2463, - 2474, 2475, 2476, 2477, 2477, 2478, 2470, 2471, 2479, 2479, - 2483, 2472, 2480, 2480, 2478, 2474, 2476, 2481, 2481, 2482, - 2482, 2475, 2473, 2484, 2485, 2486, 2487, 2485, 2488, 2483, + 2428, 2439, 2420, 2431, 2431, 2419, 2432, 2432, 2435, 2421, + 2433, 2433, 2440, 2424, 2436, 2436, 2439, 2435, 2438, 2438, + 2441, 2441, 2442, 2446, 2440, 2443, 2443, 2447, 2448, 2450, + 2447, 2449, 2449, 2452, 2453, 2454, 2452, 2442, 2455, 2456, + 2453, 2446, 2457, 2455, 2467, 2458, 2468, 2450, 2464, 2454, + 2468, 2464, 2469, 2472, 2448, 2470, 2476, 2473, 2456, 2474, + 2457, 2458, 2478, 2475, 2474, 2475, 2479, 2467, 2473, 2470, + 2480, 2476, 2469, 2477, 2477, 2478, 2472, 2481, 2482, 2483, + 2484, 2485, 2486, 2486, 2493, 2479, 2492, 2487, 2480, 2488, + 2488, 2489, 2489, 2481, 2483, 2485, 2487, 2490, 2490, 2497, - 2486, 2487, 2489, 2490, 2491, 2492, 2492, 2493, 2502, 2490, - 2495, 2497, 2503, 2484, 2500, 2500, 2502, 2489, 2491, 2501, - 2501, 2504, 2505, 2488, 2506, 2495, 2493, 2504, 2505, 2497, - 2507, 2503, 2508, 2510, 2511, 2512, 2514, 2515, 2506, 2512, - 2516, 2517, 2515, 2507, 2518, 2519, 2523, 2520, 2511, 2522, - 2521, 2508, 2520, 2510, 2517, 2521, 2514, 2518, 2525, 2516, - 2524, 2524, 2526, 2525, 2519, 2523, 2528, 2522, 2526, 2527, - 2527, 2528, 2529, 2530, 2531, 2532, 2536, 2529, 2530, 2533, - 2536, 2532, 2534, 2534, 2533, 2537, 2539, 2538, 2540, 2541, - 2542, 2544, 2544, 2531, 2538, 2541, 2548, 2543, 2546, 2546, + 2484, 2491, 2491, 2482, 2493, 2492, 2494, 2495, 2496, 2494, + 2498, 2499, 2495, 2496, 2500, 2501, 2501, 2499, 2502, 2504, + 2506, 2509, 2509, 2511, 2497, 2498, 2510, 2510, 2500, 2512, + 2513, 2511, 2515, 2514, 2504, 2517, 2513, 2502, 2506, 2514, + 2516, 2519, 2520, 2521, 2523, 2524, 2515, 2521, 2512, 2525, + 2524, 2531, 2526, 2516, 2517, 2528, 2520, 2527, 2529, 2532, + 2535, 2519, 2530, 2529, 2523, 2526, 2535, 2530, 2525, 2531, + 2527, 2533, 2533, 2540, 2528, 2534, 2536, 2536, 2532, 2537, + 2534, 2538, 2539, 2541, 2537, 2542, 2538, 2539, 2546, 2541, + 2542, 2545, 2540, 2543, 2543, 2545, 2547, 2548, 2549, 2550, - 2549, 2548, 2547, 2550, 2537, 2539, 2556, 2540, 2551, 2542, - 2543, 2547, 2552, 2552, 2547, 2553, 2554, 2557, 2557, 2549, - 2553, 2551, 2550, 2558, 2559, 2559, 2560, 2560, 2561, 2554, - 2562, 2563, 2556, 2561, 2564, 2564, 2565, 2562, 2566, 2568, - 2566, 2565, 2558, 2567, 2567, 2569, 2568, 2570, 2571, 2572, - 2563, 2575, 2569, 2571, 2574, 2574, 2577, 2578, 2579, 2580, - 2584, 2577, 2578, 2581, 2581, 2585, 2570, 0, 2572, 0, - 2575, 2583, 2583, 2586, 2586, 2587, 2587, 2579, 2580, 2584, - 2588, 2590, 2590, 2592, 2585, 2591, 2591, 2588, 2594, 2597, - 2592, 2598, 2599, 2594, 2597, 2600, 2600, 2601, 2601, 0, + 2551, 2552, 2558, 2547, 2559, 2550, 2556, 2546, 2553, 2553, + 2555, 2555, 2565, 2560, 2552, 2556, 2548, 2549, 2556, 2551, + 2557, 2558, 2563, 2559, 2562, 2557, 2560, 2561, 2561, 2562, + 2566, 2566, 2567, 2568, 2568, 2563, 2569, 2569, 2565, 2570, + 2571, 2572, 2573, 2573, 2570, 2574, 2575, 2571, 2575, 2577, + 2574, 2567, 2576, 2576, 2578, 2579, 2577, 2580, 2581, 2584, + 2572, 2578, 2580, 2583, 2583, 2586, 2587, 2588, 2589, 2593, + 2586, 2587, 2590, 2590, 2579, 2592, 2592, 2581, 2584, 2594, + 2595, 2595, 2596, 2596, 2597, 2607, 2588, 2589, 2593, 2599, + 2599, 2597, 2600, 2600, 2601, 2603, 2608, 2606, 2594, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2598, 2599, 2605, 2605, 2605, 2605, 2605, 2605, 2605, 2606, - 2606, 2606, 2606, 2606, 2606, 2606, 2607, 2607, 2607, 2607, - 2607, 2607, 2607, 2608, 2608, 2608, 2608, 2608, 2608, 2608, - 2609, 2609, 2609, 2609, 2609, 2609, 2609, 2611, 2611, 0, - 2611, 2611, 2611, 2611, 2612, 2612, 0, 0, 0, 2612, - 2612, 2613, 2613, 0, 0, 2613, 0, 2613, 2614, 0, - 0, 0, 0, 0, 2614, 2615, 2615, 0, 0, 0, - 2615, 2615, 2616, 0, 0, 0, 0, 0, 2616, 2617, - 2617, 0, 2617, 2617, 2617, 2617, 2618, 2618, 0, 2618, + 2603, 2601, 2606, 0, 2607, 2609, 2609, 2610, 2610, 0, + 0, 0, 0, 0, 0, 2608, 2614, 2614, 2614, 2614, + 2614, 2614, 2614, 2615, 2615, 2615, 2615, 2615, 2615, 2615, + 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2617, 2617, 2617, + 2617, 2617, 2617, 2617, 2618, 2618, 2618, 2618, 2618, 2618, + 2618, 2620, 2620, 0, 2620, 2620, 2620, 2620, 2621, 2621, + 0, 0, 0, 2621, 2621, 2622, 2622, 0, 0, 2622, + 0, 2622, 2623, 0, 0, 0, 0, 0, 2623, 2624, + 2624, 0, 0, 0, 2624, 2624, 2625, 0, 0, 0, + 0, 0, 2625, 2626, 2626, 0, 2626, 2626, 2626, 2626, - 2618, 2618, 2618, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2604, 2604, 2604, 2604 + 2627, 2627, 0, 2627, 2627, 2627, 2627, 2613, 2613, 2613, + 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, + 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, + 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, + 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613 } ; static yy_state_type yy_last_accepting_state; @@ -2540,7 +2552,7 @@ static void config_start_include(const char* filename) config_include_stack = s; cfg_parser->filename = nm; cfg_parser->line = 1; - yy_switch_to_buffer(yy_create_buffer(input, YY_BUF_SIZE)); + yy_switch_to_buffer(yy_create_buffer(input,YY_BUF_SIZE)); } static void config_start_include_glob(const char* filename) @@ -2611,12 +2623,11 @@ static void config_end_include(void) #define yy_set_bol(at_bol) \ { \ if ( ! yy_current_buffer ) \ - yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ + yy_current_buffer = yy_create_buffer(yyin,YY_BUF_SIZE ); \ yy_current_buffer->yy_ch_buf[0] = ((at_bol)?'\n':' '); \ } #endif -#line 2618 "" #define YY_NO_INPUT 1 #line 186 "./util/configlexer.lex" #ifndef YY_NO_UNPUT @@ -2625,9 +2636,8 @@ static void config_end_include(void) #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif -#line 2627 "" -#line 2629 "" +#line 2639 "" #define INITIAL 0 #define quotedstring 1 @@ -2648,36 +2658,36 @@ static void config_end_include(void) #define YY_EXTRA_TYPE void * #endif -static int yy_init_globals ( void ); +static int yy_init_globals (void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int yylex_destroy ( void ); +int yylex_destroy (void ); -int yyget_debug ( void ); +int yyget_debug (void ); -void yyset_debug ( int debug_flag ); +void yyset_debug (int debug_flag ); -YY_EXTRA_TYPE yyget_extra ( void ); +YY_EXTRA_TYPE yyget_extra (void ); -void yyset_extra ( YY_EXTRA_TYPE user_defined ); +void yyset_extra (YY_EXTRA_TYPE user_defined ); -FILE *yyget_in ( void ); +FILE *yyget_in (void ); -void yyset_in ( FILE * _in_str ); +void yyset_in (FILE * _in_str ); -FILE *yyget_out ( void ); +FILE *yyget_out (void ); -void yyset_out ( FILE * _out_str ); +void yyset_out (FILE * _out_str ); - int yyget_leng ( void ); + int yyget_leng (void ); -char *yyget_text ( void ); +char *yyget_text (void ); -int yyget_lineno ( void ); +int yyget_lineno (void ); -void yyset_lineno ( int _line_number ); +void yyset_lineno (int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -2685,9 +2695,9 @@ void yyset_lineno ( int _line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int yywrap ( void ); +extern "C" int yywrap (void ); #else -extern int yywrap ( void ); +extern int yywrap (void ); #endif #endif @@ -2696,18 +2706,19 @@ extern int yywrap ( void ); #endif #ifndef yytext_ptr -static void yy_flex_strncpy ( char *, const char *, int ); +static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen ( const char * ); +static int yy_flex_strlen (yyconst char * ); #endif #ifndef YY_NO_INPUT + #ifdef __cplusplus -static int yyinput ( void ); +static int yyinput (void ); #else -static int input ( void ); +static int input (void ); #endif #endif @@ -2840,23 +2851,23 @@ YY_DECL if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); + yy_create_buffer(yyin,YY_BUF_SIZE ); } - yy_load_buffer_state( ); + yy_load_buffer_state( ); } { #line 206 "./util/configlexer.lex" -#line 2851 "" +#line 2862 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { (yy_more_len) = 0; if ( (yy_more_flag) ) { - (yy_more_len) = (int) ((yy_c_buf_p) - (yytext_ptr)); + (yy_more_len) = (yy_c_buf_p) - (yytext_ptr); (yy_more_flag) = 0; } yy_cp = (yy_c_buf_p); @@ -2882,13 +2893,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 >= 2605 ) - yy_c = yy_meta[yy_c]; + if ( yy_current_state >= 2614 ) + yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 5104 ); + while ( yy_base[yy_current_state] != 5108 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -3073,7 +3084,7 @@ YY_RULE_SETUP case 32: YY_RULE_SETUP #line 241 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADDITIONAL_TLS_PORT) } +{ YDVAR(1, VAR_TLS_WIN_CERT) } YY_BREAK case 33: YY_RULE_SETUP @@ -3083,17 +3094,17 @@ YY_RULE_SETUP case 34: YY_RULE_SETUP #line 243 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSTEMD) } +{ YDVAR(1, VAR_ADDITIONAL_TLS_PORT) } YY_BREAK case 35: YY_RULE_SETUP #line 244 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_DAEMONIZE) } +{ YDVAR(1, VAR_USE_SYSTEMD) } YY_BREAK case 36: YY_RULE_SETUP #line 245 "./util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE) } +{ YDVAR(1, VAR_DO_DAEMONIZE) } YY_BREAK case 37: YY_RULE_SETUP @@ -3103,267 +3114,267 @@ YY_RULE_SETUP case 38: YY_RULE_SETUP #line 247 "./util/configlexer.lex" -{ YDVAR(1, VAR_OUTGOING_INTERFACE) } +{ YDVAR(1, VAR_INTERFACE) } YY_BREAK case 39: YY_RULE_SETUP #line 248 "./util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } +{ YDVAR(1, VAR_OUTGOING_INTERFACE) } YY_BREAK case 40: YY_RULE_SETUP #line 249 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_RCVBUF) } +{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } YY_BREAK case 41: YY_RULE_SETUP #line 250 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_SNDBUF) } +{ YDVAR(1, VAR_SO_RCVBUF) } YY_BREAK case 42: YY_RULE_SETUP #line 251 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_REUSEPORT) } +{ YDVAR(1, VAR_SO_SNDBUF) } YY_BREAK case 43: YY_RULE_SETUP #line 252 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_TRANSPARENT) } +{ YDVAR(1, VAR_SO_REUSEPORT) } YY_BREAK case 44: YY_RULE_SETUP #line 253 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_FREEBIND) } +{ YDVAR(1, VAR_IP_TRANSPARENT) } YY_BREAK case 45: YY_RULE_SETUP #line 254 "./util/configlexer.lex" -{ YDVAR(1, VAR_CHROOT) } +{ YDVAR(1, VAR_IP_FREEBIND) } YY_BREAK case 46: YY_RULE_SETUP #line 255 "./util/configlexer.lex" -{ YDVAR(1, VAR_USERNAME) } +{ YDVAR(1, VAR_CHROOT) } YY_BREAK case 47: YY_RULE_SETUP #line 256 "./util/configlexer.lex" -{ YDVAR(1, VAR_DIRECTORY) } +{ YDVAR(1, VAR_USERNAME) } YY_BREAK case 48: YY_RULE_SETUP #line 257 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOGFILE) } +{ YDVAR(1, VAR_DIRECTORY) } YY_BREAK case 49: YY_RULE_SETUP #line 258 "./util/configlexer.lex" -{ YDVAR(1, VAR_PIDFILE) } +{ YDVAR(1, VAR_LOGFILE) } YY_BREAK case 50: YY_RULE_SETUP #line 259 "./util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_HINTS) } +{ YDVAR(1, VAR_PIDFILE) } YY_BREAK case 51: YY_RULE_SETUP #line 260 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } +{ YDVAR(1, VAR_ROOT_HINTS) } YY_BREAK case 52: YY_RULE_SETUP #line 261 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } +{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } YY_BREAK case 53: YY_RULE_SETUP #line 262 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SIZE) } +{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } YY_BREAK case 54: YY_RULE_SETUP #line 263 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SLABS) } +{ YDVAR(1, VAR_MSG_CACHE_SIZE) } YY_BREAK case 55: YY_RULE_SETUP #line 264 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } +{ YDVAR(1, VAR_MSG_CACHE_SLABS) } YY_BREAK case 56: YY_RULE_SETUP #line 265 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } +{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } YY_BREAK case 57: YY_RULE_SETUP #line 266 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_TTL) } +{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } YY_BREAK case 58: YY_RULE_SETUP #line 267 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } +{ YDVAR(1, VAR_CACHE_MAX_TTL) } YY_BREAK case 59: YY_RULE_SETUP #line 268 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MIN_TTL) } +{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } YY_BREAK case 60: YY_RULE_SETUP #line 269 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_HOST_TTL) } +{ YDVAR(1, VAR_CACHE_MIN_TTL) } YY_BREAK case 61: YY_RULE_SETUP #line 270 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_LAME_TTL) } +{ YDVAR(1, VAR_INFRA_HOST_TTL) } YY_BREAK case 62: YY_RULE_SETUP #line 271 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } +{ YDVAR(1, VAR_INFRA_LAME_TTL) } YY_BREAK case 63: YY_RULE_SETUP #line 272 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } +{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } YY_BREAK case 64: YY_RULE_SETUP #line 273 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } +{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } YY_BREAK case 65: YY_RULE_SETUP #line 274 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } +{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } YY_BREAK case 66: YY_RULE_SETUP #line 275 "./util/configlexer.lex" -{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } +{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } YY_BREAK case 67: YY_RULE_SETUP #line 276 "./util/configlexer.lex" -{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } +{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } YY_BREAK case 68: YY_RULE_SETUP #line 277 "./util/configlexer.lex" -{ YDVAR(1, VAR_DELAY_CLOSE) } +{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } YY_BREAK case 69: YY_RULE_SETUP #line 278 "./util/configlexer.lex" -{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } +{ YDVAR(1, VAR_DELAY_CLOSE) } YY_BREAK case 70: YY_RULE_SETUP #line 279 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } +{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } YY_BREAK case 71: YY_RULE_SETUP #line 280 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } +{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } YY_BREAK case 72: YY_RULE_SETUP #line 281 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_GLUE) } +{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } YY_BREAK case 73: YY_RULE_SETUP #line 282 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } +{ YDVAR(1, VAR_HARDEN_GLUE) } YY_BREAK case 74: YY_RULE_SETUP #line 283 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } +{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } YY_BREAK case 75: YY_RULE_SETUP #line 284 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } +{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } YY_BREAK case 76: YY_RULE_SETUP #line 285 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } +{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } YY_BREAK case 77: YY_RULE_SETUP #line 286 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } +{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } YY_BREAK case 78: YY_RULE_SETUP #line 287 "./util/configlexer.lex" -{ YDVAR(1, VAR_CAPS_WHITELIST) } +{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } YY_BREAK case 79: YY_RULE_SETUP #line 288 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } +{ YDVAR(1, VAR_CAPS_WHITELIST) } YY_BREAK case 80: YY_RULE_SETUP #line 289 "./util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_ADDRESS) } +{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } YY_BREAK case 81: YY_RULE_SETUP #line 290 "./util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_DOMAIN) } +{ YDVAR(1, VAR_PRIVATE_ADDRESS) } YY_BREAK case 82: YY_RULE_SETUP #line 291 "./util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH_KEY) } +{ YDVAR(1, VAR_PRIVATE_DOMAIN) } YY_BREAK case 83: YY_RULE_SETUP #line 292 "./util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH) } +{ YDVAR(1, VAR_PREFETCH_KEY) } YY_BREAK case 84: YY_RULE_SETUP #line 293 "./util/configlexer.lex" -{ YDVAR(0, VAR_STUB_ZONE) } +{ YDVAR(1, VAR_PREFETCH) } YY_BREAK case 85: YY_RULE_SETUP #line 294 "./util/configlexer.lex" -{ YDVAR(1, VAR_NAME) } +{ YDVAR(0, VAR_STUB_ZONE) } YY_BREAK case 86: YY_RULE_SETUP #line 295 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_ADDR) } +{ YDVAR(1, VAR_NAME) } YY_BREAK case 87: YY_RULE_SETUP #line 296 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_HOST) } +{ YDVAR(1, VAR_STUB_ADDR) } YY_BREAK case 88: YY_RULE_SETUP #line 297 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_PRIME) } +{ YDVAR(1, VAR_STUB_HOST) } YY_BREAK case 89: YY_RULE_SETUP #line 298 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_FIRST) } +{ YDVAR(1, VAR_STUB_PRIME) } YY_BREAK case 90: YY_RULE_SETUP #line 299 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } +{ YDVAR(1, VAR_STUB_FIRST) } YY_BREAK case 91: YY_RULE_SETUP @@ -3373,27 +3384,27 @@ YY_RULE_SETUP case 92: YY_RULE_SETUP #line 301 "./util/configlexer.lex" -{ YDVAR(0, VAR_FORWARD_ZONE) } +{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } YY_BREAK case 93: YY_RULE_SETUP #line 302 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_ADDR) } +{ YDVAR(0, VAR_FORWARD_ZONE) } YY_BREAK case 94: YY_RULE_SETUP #line 303 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_HOST) } +{ YDVAR(1, VAR_FORWARD_ADDR) } YY_BREAK case 95: YY_RULE_SETUP #line 304 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_FIRST) } +{ YDVAR(1, VAR_FORWARD_HOST) } YY_BREAK case 96: YY_RULE_SETUP #line 305 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } +{ YDVAR(1, VAR_FORWARD_FIRST) } YY_BREAK case 97: YY_RULE_SETUP @@ -3403,599 +3414,599 @@ YY_RULE_SETUP case 98: YY_RULE_SETUP #line 307 "./util/configlexer.lex" -{ YDVAR(0, VAR_AUTH_ZONE) } +{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } YY_BREAK case 99: YY_RULE_SETUP #line 308 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEFILE) } +{ YDVAR(0, VAR_AUTH_ZONE) } YY_BREAK case 100: YY_RULE_SETUP #line 309 "./util/configlexer.lex" -{ YDVAR(1, VAR_MASTER) } +{ YDVAR(1, VAR_ZONEFILE) } YY_BREAK case 101: YY_RULE_SETUP #line 310 "./util/configlexer.lex" -{ YDVAR(1, VAR_URL) } +{ YDVAR(1, VAR_MASTER) } YY_BREAK case 102: YY_RULE_SETUP #line 311 "./util/configlexer.lex" -{ YDVAR(1, VAR_ALLOW_NOTIFY) } +{ YDVAR(1, VAR_URL) } YY_BREAK case 103: YY_RULE_SETUP #line 312 "./util/configlexer.lex" -{ YDVAR(1, VAR_FOR_DOWNSTREAM) } +{ YDVAR(1, VAR_ALLOW_NOTIFY) } YY_BREAK case 104: YY_RULE_SETUP #line 313 "./util/configlexer.lex" -{ YDVAR(1, VAR_FOR_UPSTREAM) } +{ YDVAR(1, VAR_FOR_DOWNSTREAM) } YY_BREAK case 105: YY_RULE_SETUP #line 314 "./util/configlexer.lex" -{ YDVAR(1, VAR_FALLBACK_ENABLED) } +{ YDVAR(1, VAR_FOR_UPSTREAM) } YY_BREAK case 106: YY_RULE_SETUP #line 315 "./util/configlexer.lex" -{ YDVAR(0, VAR_VIEW) } +{ YDVAR(1, VAR_FALLBACK_ENABLED) } YY_BREAK case 107: YY_RULE_SETUP #line 316 "./util/configlexer.lex" -{ YDVAR(1, VAR_VIEW_FIRST) } +{ YDVAR(0, VAR_VIEW) } YY_BREAK case 108: YY_RULE_SETUP #line 317 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } +{ YDVAR(1, VAR_VIEW_FIRST) } YY_BREAK case 109: YY_RULE_SETUP #line 318 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } +{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } YY_BREAK case 110: YY_RULE_SETUP #line 319 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL) } +{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } YY_BREAK case 111: YY_RULE_SETUP #line 320 "./util/configlexer.lex" -{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } +{ YDVAR(2, VAR_ACCESS_CONTROL) } YY_BREAK case 112: YY_RULE_SETUP #line 321 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } +{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } YY_BREAK case 113: YY_RULE_SETUP #line 322 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } YY_BREAK case 114: YY_RULE_SETUP #line 323 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } YY_BREAK case 115: YY_RULE_SETUP #line 324 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } +{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } YY_BREAK case 116: YY_RULE_SETUP #line 325 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } YY_BREAK case 117: YY_RULE_SETUP #line 326 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } YY_BREAK case 118: YY_RULE_SETUP #line 327 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 119: YY_RULE_SETUP #line 328 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 120: YY_RULE_SETUP #line 329 "./util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } +{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } YY_BREAK case 121: YY_RULE_SETUP #line 330 "./util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 122: YY_RULE_SETUP #line 331 "./util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 123: YY_RULE_SETUP #line 332 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 124: YY_RULE_SETUP #line 333 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 125: YY_RULE_SETUP #line 334 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 126: YY_RULE_SETUP #line 335 "./util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 127: YY_RULE_SETUP #line 336 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 128: YY_RULE_SETUP #line 337 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 129: YY_RULE_SETUP #line 338 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 130: YY_RULE_SETUP #line 339 "./util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } +{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } YY_BREAK case 131: YY_RULE_SETUP #line 340 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } YY_BREAK case 132: YY_RULE_SETUP #line 341 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 133: YY_RULE_SETUP #line 342 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 134: YY_RULE_SETUP #line 343 "./util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 135: YY_RULE_SETUP #line 344 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 136: YY_RULE_SETUP #line 345 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 137: YY_RULE_SETUP #line 346 "./util/configlexer.lex" -{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 138: YY_RULE_SETUP #line 347 "./util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } +{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } YY_BREAK case 139: YY_RULE_SETUP #line 348 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 140: YY_RULE_SETUP #line 349 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_DSA) } +{ YDVAR(1, VAR_SERVE_EXPIRED) } YY_BREAK case 141: YY_RULE_SETUP #line 350 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_SHA1) } +{ YDVAR(1, VAR_FAKE_DSA) } YY_BREAK case 142: YY_RULE_SETUP #line 351 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_FAKE_SHA1) } YY_BREAK case 143: YY_RULE_SETUP #line 352 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 144: YY_RULE_SETUP #line 353 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 145: YY_RULE_SETUP #line 354 "./util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 146: YY_RULE_SETUP #line 355 "./util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 147: YY_RULE_SETUP -#line 357 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +#line 356 "./util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 148: YY_RULE_SETUP #line 358 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 149: YY_RULE_SETUP #line 359 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 150: YY_RULE_SETUP #line 360 "./util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 151: YY_RULE_SETUP #line 361 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 152: YY_RULE_SETUP #line 362 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 153: YY_RULE_SETUP #line 363 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_LOG_IDENTITY) } YY_BREAK case 154: YY_RULE_SETUP #line 364 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 155: YY_RULE_SETUP #line 365 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_REPLIES) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 156: YY_RULE_SETUP #line 366 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_REPLIES) } YY_BREAK case 157: YY_RULE_SETUP #line 367 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 158: YY_RULE_SETUP #line 368 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 159: YY_RULE_SETUP #line 369 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 160: YY_RULE_SETUP #line 370 "./util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 161: YY_RULE_SETUP #line 371 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 162: YY_RULE_SETUP #line 372 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 163: YY_RULE_SETUP #line 373 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 164: YY_RULE_SETUP #line 374 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 165: YY_RULE_SETUP #line 375 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } +{ YDVAR(1, VAR_SHM_ENABLE) } YY_BREAK case 166: YY_RULE_SETUP #line 376 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_SHM_KEY) } YY_BREAK case 167: YY_RULE_SETUP #line 377 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 168: YY_RULE_SETUP #line 378 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 169: YY_RULE_SETUP #line 379 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 170: YY_RULE_SETUP #line 380 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 171: YY_RULE_SETUP #line 381 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 172: YY_RULE_SETUP #line 382 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 173: YY_RULE_SETUP #line 383 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 174: YY_RULE_SETUP #line 384 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 175: YY_RULE_SETUP #line 385 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 176: YY_RULE_SETUP #line 386 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 177: YY_RULE_SETUP #line 387 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 178: YY_RULE_SETUP #line 388 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 179: YY_RULE_SETUP #line 389 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 180: YY_RULE_SETUP #line 390 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 181: YY_RULE_SETUP #line 391 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 182: YY_RULE_SETUP #line 392 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 183: YY_RULE_SETUP #line 393 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 184: YY_RULE_SETUP #line 394 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 185: YY_RULE_SETUP #line 395 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 186: YY_RULE_SETUP #line 396 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 187: YY_RULE_SETUP #line 397 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 188: YY_RULE_SETUP #line 398 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 189: YY_RULE_SETUP #line 399 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 190: YY_RULE_SETUP #line 400 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 191: YY_RULE_SETUP #line 401 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 192: YY_RULE_SETUP #line 402 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 193: YY_RULE_SETUP #line 403 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 194: YY_RULE_SETUP #line 404 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 195: YY_RULE_SETUP #line 405 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 196: YY_RULE_SETUP #line 406 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 197: YY_RULE_SETUP #line 407 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 198: YY_RULE_SETUP -#line 409 "./util/configlexer.lex" +#line 408 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 199: YY_RULE_SETUP -#line 411 "./util/configlexer.lex" +#line 410 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 200: YY_RULE_SETUP -#line 413 "./util/configlexer.lex" +#line 412 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 201: YY_RULE_SETUP -#line 415 "./util/configlexer.lex" +#line 414 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 202: YY_RULE_SETUP -#line 417 "./util/configlexer.lex" +#line 416 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 203: YY_RULE_SETUP -#line 419 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 418 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 204: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 205: YY_RULE_SETUP #line 421 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 206: YY_RULE_SETUP #line 422 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 207: YY_RULE_SETUP #line 423 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 208: YY_RULE_SETUP #line 424 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 209: YY_RULE_SETUP #line 425 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 210: YY_RULE_SETUP #line 426 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 211: YY_RULE_SETUP #line 427 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 212: YY_RULE_SETUP #line 428 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 213: YY_RULE_SETUP #line 429 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 214: YY_RULE_SETUP #line 430 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 215: YY_RULE_SETUP #line 431 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT_PERMIL) } +{ YDVAR(1, VAR_LOW_RTT) } YY_BREAK case 216: YY_RULE_SETUP @@ -4005,175 +4016,180 @@ YY_RULE_SETUP case 217: YY_RULE_SETUP #line 433 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(1, VAR_LOW_RTT_PERMIL) } YY_BREAK case 218: YY_RULE_SETUP #line 434 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 219: YY_RULE_SETUP #line 435 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 220: YY_RULE_SETUP #line 436 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 221: YY_RULE_SETUP #line 437 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 222: YY_RULE_SETUP #line 438 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 223: YY_RULE_SETUP #line 439 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 224: YY_RULE_SETUP #line 440 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 225: YY_RULE_SETUP #line 441 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 226: YY_RULE_SETUP #line 442 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 227: YY_RULE_SETUP #line 443 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 228: YY_RULE_SETUP -#line 445 "./util/configlexer.lex" +#line 444 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 229: YY_RULE_SETUP -#line 447 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 446 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 230: YY_RULE_SETUP #line 448 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 231: YY_RULE_SETUP #line 449 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 232: YY_RULE_SETUP #line 450 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 233: YY_RULE_SETUP #line 451 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 234: YY_RULE_SETUP #line 452 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 235: YY_RULE_SETUP #line 453 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 236: YY_RULE_SETUP #line 454 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 237: YY_RULE_SETUP #line 455 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 238: YY_RULE_SETUP #line 456 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 239: YY_RULE_SETUP #line 457 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 240: YY_RULE_SETUP #line 458 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 241: YY_RULE_SETUP #line 459 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK case 242: YY_RULE_SETUP #line 460 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK case 243: YY_RULE_SETUP #line 461 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK case 244: -/* rule 244 can match eol */ YY_RULE_SETUP #line 462 "./util/configlexer.lex" +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } + YY_BREAK +case 245: +/* rule 245 can match eol */ +YY_RULE_SETUP +#line 463 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 245: +case 246: YY_RULE_SETUP -#line 465 "./util/configlexer.lex" +#line 466 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 466 "./util/configlexer.lex" +#line 467 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 246: -YY_RULE_SETUP -#line 471 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 247: -/* rule 247 can match eol */ YY_RULE_SETUP #line 472 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 248: +/* rule 248 can match eol */ +YY_RULE_SETUP +#line 473 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 248: +case 249: YY_RULE_SETUP -#line 474 "./util/configlexer.lex" +#line 475 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4186,34 +4202,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 249: +case 250: YY_RULE_SETUP -#line 486 "./util/configlexer.lex" +#line 487 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 487 "./util/configlexer.lex" +#line 488 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 250: -YY_RULE_SETUP -#line 492 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 251: -/* rule 251 can match eol */ YY_RULE_SETUP #line 493 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 252: +/* rule 252 can match eol */ +YY_RULE_SETUP +#line 494 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 252: +case 253: YY_RULE_SETUP -#line 495 "./util/configlexer.lex" +#line 496 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4226,38 +4242,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 253: +case 254: YY_RULE_SETUP -#line 507 "./util/configlexer.lex" +#line 508 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 509 "./util/configlexer.lex" +#line 510 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 254: -YY_RULE_SETUP -#line 513 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 255: -/* rule 255 can match eol */ YY_RULE_SETUP #line 514 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 256: +/* rule 256 can match eol */ YY_RULE_SETUP #line 515 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 257: YY_RULE_SETUP #line 516 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 258: +YY_RULE_SETUP +#line 517 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -4265,27 +4281,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 521 "./util/configlexer.lex" +#line 522 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 258: -YY_RULE_SETUP -#line 525 "./util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 259: -/* rule 259 can match eol */ YY_RULE_SETUP #line 526 "./util/configlexer.lex" +{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 260: +/* rule 260 can match eol */ +YY_RULE_SETUP +#line 527 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 260: +case 261: YY_RULE_SETUP -#line 528 "./util/configlexer.lex" +#line 529 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -4295,7 +4311,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 534 "./util/configlexer.lex" +#line 535 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -4307,33 +4323,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 261: +case 262: YY_RULE_SETUP -#line 545 "./util/configlexer.lex" +#line 546 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 262: +case 263: YY_RULE_SETUP -#line 549 "./util/configlexer.lex" +#line 550 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 263: +case 264: YY_RULE_SETUP -#line 553 "./util/configlexer.lex" +#line 554 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 264: +case 265: YY_RULE_SETUP -#line 557 "./util/configlexer.lex" +#line 558 "./util/configlexer.lex" ECHO; YY_BREAK -#line 4335 "" +#line 4351 "" case YY_END_OF_BUFFER: { @@ -4409,7 +4425,7 @@ ECHO; { (yy_did_buffer_switch_on_eof) = 0; - if ( yywrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up @@ -4476,7 +4492,7 @@ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); - int number_to_move, i; + yy_size_t number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -4505,7 +4521,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); + number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -4541,8 +4557,7 @@ static int yy_get_next_buffer (void) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - yyrealloc( (void *) b->yy_ch_buf, - (yy_size_t) (b->yy_buf_size + 2) ); + yyrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ @@ -4574,7 +4589,7 @@ static int yy_get_next_buffer (void) if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - yyrestart( yyin ); + yyrestart(yyin ); } else @@ -4588,15 +4603,12 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( - (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - /* "- 2" to take care of EOB's */ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -4628,10 +4640,10 @@ 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 >= 2605 ) - yy_c = yy_meta[yy_c]; + if ( yy_current_state >= 2614 ) + yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; } return yy_current_state; @@ -4656,11 +4668,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 >= 2605 ) - yy_c = yy_meta[yy_c]; + if ( yy_current_state >= 2614 ) + yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 2604); + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_is_jam = (yy_current_state == 2613); return yy_is_jam ? 0 : yy_current_state; } @@ -4693,7 +4705,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); + int offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -4710,13 +4722,13 @@ static int yy_get_next_buffer (void) */ /* Reset buffer status. */ - yyrestart( yyin ); + yyrestart(yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( yywrap( ) ) + if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) @@ -4754,11 +4766,11 @@ static int yy_get_next_buffer (void) if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); + yy_create_buffer(yyin,YY_BUF_SIZE ); } - yy_init_buffer( YY_CURRENT_BUFFER, input_file ); - yy_load_buffer_state( ); + yy_init_buffer(YY_CURRENT_BUFFER,input_file ); + yy_load_buffer_state( ); } /** Switch to a different input buffer. @@ -4786,7 +4798,7 @@ static int yy_get_next_buffer (void) } YY_CURRENT_BUFFER_LVALUE = new_buffer; - yy_load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag @@ -4814,7 +4826,7 @@ static void yy_load_buffer_state (void) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -4823,13 +4835,13 @@ static void yy_load_buffer_state (void) /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); + b->yy_ch_buf = (char *) yyalloc((yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - yy_init_buffer( b, file ); + yy_init_buffer(b,file ); return b; } @@ -4848,9 +4860,9 @@ static void yy_load_buffer_state (void) YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - yyfree( (void *) b->yy_ch_buf ); + yyfree((void *) b->yy_ch_buf ); - yyfree( (void *) b ); + yyfree((void *) b ); } /* Initializes or reinitializes a buffer. @@ -4862,7 +4874,7 @@ static void yy_load_buffer_state (void) { int oerrno = errno; - yy_flush_buffer( b ); + yy_flush_buffer(b ); b->yy_input_file = file; b->yy_fill_buffer = 1; @@ -4905,7 +4917,7 @@ static void yy_load_buffer_state (void) b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - yy_load_buffer_state( ); + yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes @@ -4936,7 +4948,7 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } @@ -4955,7 +4967,7 @@ void yypop_buffer_state (void) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -4965,7 +4977,7 @@ void yypop_buffer_state (void) */ static void yyensure_buffer_stack (void) { - yy_size_t num_to_alloc; + int num_to_alloc; if (!(yy_buffer_stack)) { @@ -4979,9 +4991,9 @@ static void yyensure_buffer_stack (void) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -5010,7 +5022,7 @@ static void yyensure_buffer_stack (void) * @param base the character buffer * @param size the size in bytes of the character buffer * - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { @@ -5022,7 +5034,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) /* They forgot to leave room for the EOB's. */ return NULL; - b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); @@ -5036,7 +5048,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - yy_switch_to_buffer( b ); + yy_switch_to_buffer(b ); return b; } @@ -5049,10 +5061,10 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ -YY_BUFFER_STATE yy_scan_string (const char * yystr ) +YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) { - return yy_scan_bytes( yystr, (int) strlen(yystr) ); + return yy_scan_bytes(yystr,(int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will @@ -5062,16 +5074,16 @@ YY_BUFFER_STATE yy_scan_string (const char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - int i; + yy_size_t i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = (yy_size_t) (_yybytes_len + 2); - buf = (char *) yyalloc( n ); + n = (yy_size_t) _yybytes_len + 2; + buf = (char *) yyalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); @@ -5080,7 +5092,7 @@ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = yy_scan_buffer( buf, n ); + b = yy_scan_buffer(buf,n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); @@ -5096,9 +5108,9 @@ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) #define YY_EXIT_FAILURE 2 #endif -static void yynoreturn yy_fatal_error (const char* msg ) +static void yynoreturn yy_fatal_error (yyconst char* msg ) { - fprintf( stderr, "%s\n", msg ); + (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -5109,7 +5121,7 @@ static void yynoreturn yy_fatal_error (const char* msg ) do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -5126,7 +5138,7 @@ static void yynoreturn yy_fatal_error (const char* msg ) */ int yyget_lineno (void) { - + return yylineno; } @@ -5233,7 +5245,7 @@ int yylex_destroy (void) /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } @@ -5254,7 +5266,7 @@ int yylex_destroy (void) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, const char * s2, int n ) +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { int i; @@ -5264,7 +5276,7 @@ static void yy_flex_strncpy (char* s1, const char * s2, int n ) #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (const char * s ) +static int yy_flex_strlen (yyconst char * s ) { int n; for ( n = 0; s[n]; ++n ) @@ -5299,6 +5311,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 557 "./util/configlexer.lex" +#line 558 "./util/configlexer.lex" + diff --git a/util/configlexer.lex b/util/configlexer.lex index 00fde10aa..2ec51850e 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -238,6 +238,7 @@ ssl-port{COLON} { YDVAR(1, VAR_SSL_PORT) } tls-port{COLON} { YDVAR(1, VAR_SSL_PORT) } ssl-cert-bundle{COLON} { YDVAR(1, VAR_TLS_CERT_BUNDLE) } tls-cert-bundle{COLON} { YDVAR(1, VAR_TLS_CERT_BUNDLE) } +tls-win-cert{COLON} { YDVAR(1, VAR_TLS_WIN_CERT) } additional-ssl-port{COLON} { YDVAR(1, VAR_ADDITIONAL_TLS_PORT) } additional-tls-port{COLON} { YDVAR(1, VAR_ADDITIONAL_TLS_PORT) } use-systemd{COLON} { YDVAR(1, VAR_USE_SYSTEMD) } diff --git a/util/configparser.c b/util/configparser.c index d004b25ef..70fc4e0a7 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -364,7 +364,8 @@ extern int yydebug; VAR_ADDITIONAL_TLS_PORT = 493, VAR_LOW_RTT = 494, VAR_LOW_RTT_PERMIL = 495, - VAR_ALLOW_NOTIFY = 496 + VAR_ALLOW_NOTIFY = 496, + VAR_TLS_WIN_CERT = 497 }; #endif /* Tokens. */ @@ -607,6 +608,7 @@ extern int yydebug; #define VAR_LOW_RTT 494 #define VAR_LOW_RTT_PERMIL 495 #define VAR_ALLOW_NOTIFY 496 +#define VAR_TLS_WIN_CERT 497 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -617,7 +619,7 @@ union YYSTYPE char* str; -#line 621 "util/configparser.c" /* yacc.c:355 */ +#line 623 "util/configparser.c" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -634,7 +636,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 638 "util/configparser.c" /* yacc.c:358 */ +#line 640 "util/configparser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -876,21 +878,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 489 +#define YYLAST 491 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 242 +#define YYNTOKENS 243 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 262 +#define YYNNTS 263 /* YYNRULES -- Number of rules. */ -#define YYNRULES 501 +#define YYNRULES 503 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 750 +#define YYNSTATES 753 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 496 +#define YYMAXUTOK 497 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -948,7 +950,7 @@ static const yytype_uint8 yytranslate[] = 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 + 235, 236, 237, 238, 239, 240, 241, 242 }; #if YYDEBUG @@ -973,39 +975,39 @@ static const yytype_uint16 yyrline[] = 237, 237, 238, 238, 239, 239, 240, 240, 241, 241, 242, 242, 242, 243, 243, 243, 244, 244, 244, 245, 245, 246, 247, 247, 248, 248, 249, 249, 250, 250, - 251, 251, 251, 252, 254, 266, 267, 268, 268, 268, - 268, 268, 269, 271, 283, 284, 285, 285, 285, 285, - 286, 288, 302, 303, 304, 304, 304, 304, 305, 305, - 305, 307, 323, 324, 325, 325, 325, 325, 326, 326, - 326, 327, 329, 338, 347, 358, 367, 376, 385, 396, - 405, 416, 429, 444, 455, 472, 489, 502, 517, 526, - 535, 544, 553, 562, 571, 580, 589, 598, 607, 616, - 625, 634, 643, 652, 661, 668, 675, 684, 691, 699, - 708, 717, 731, 740, 749, 758, 765, 772, 798, 806, - 813, 820, 827, 834, 842, 850, 858, 865, 876, 887, - 894, 903, 912, 921, 928, 935, 943, 951, 961, 971, - 981, 994, 1005, 1013, 1026, 1035, 1044, 1053, 1063, 1073, - 1081, 1094, 1103, 1111, 1120, 1128, 1141, 1150, 1157, 1167, - 1177, 1187, 1197, 1207, 1217, 1227, 1237, 1244, 1251, 1258, - 1267, 1276, 1285, 1292, 1302, 1319, 1326, 1344, 1357, 1370, - 1379, 1388, 1397, 1406, 1416, 1426, 1437, 1446, 1455, 1468, - 1481, 1490, 1497, 1506, 1515, 1524, 1533, 1541, 1554, 1562, - 1591, 1598, 1613, 1623, 1633, 1640, 1647, 1656, 1670, 1689, - 1708, 1720, 1732, 1744, 1755, 1774, 1784, 1793, 1801, 1809, - 1822, 1835, 1848, 1861, 1870, 1879, 1888, 1897, 1907, 1917, - 1930, 1943, 1954, 1967, 1978, 1991, 2001, 2008, 2015, 2024, - 2034, 2044, 2054, 2061, 2068, 2077, 2087, 2097, 2104, 2111, - 2118, 2126, 2136, 2146, 2156, 2166, 2196, 2206, 2214, 2223, - 2238, 2247, 2252, 2253, 2254, 2254, 2254, 2255, 2255, 2255, - 2256, 2256, 2258, 2268, 2277, 2284, 2294, 2301, 2308, 2315, - 2322, 2327, 2328, 2329, 2329, 2330, 2330, 2331, 2331, 2332, - 2333, 2334, 2335, 2336, 2337, 2339, 2347, 2354, 2362, 2370, - 2377, 2384, 2393, 2402, 2411, 2420, 2429, 2438, 2443, 2444, - 2445, 2447, 2453, 2463, 2470, 2479, 2487, 2493, 2494, 2496, - 2496, 2496, 2497, 2497, 2498, 2499, 2500, 2501, 2502, 2504, - 2514, 2524, 2531, 2540, 2547, 2556, 2564, 2577, 2585, 2598, - 2603, 2604, 2605, 2605, 2606, 2606, 2606, 2608, 2622, 2637, - 2649, 2664 + 251, 251, 251, 252, 252, 254, 266, 267, 268, 268, + 268, 268, 268, 269, 271, 283, 284, 285, 285, 285, + 285, 286, 288, 302, 303, 304, 304, 304, 304, 305, + 305, 305, 307, 323, 324, 325, 325, 325, 325, 326, + 326, 326, 327, 329, 338, 347, 358, 367, 376, 385, + 396, 405, 416, 429, 444, 455, 472, 489, 502, 517, + 526, 535, 544, 553, 562, 571, 580, 589, 598, 607, + 616, 625, 634, 643, 652, 661, 668, 675, 684, 691, + 700, 708, 717, 726, 740, 749, 758, 767, 774, 781, + 807, 815, 822, 829, 836, 843, 851, 859, 867, 874, + 885, 896, 903, 912, 921, 930, 937, 944, 952, 960, + 970, 980, 990, 1003, 1014, 1022, 1035, 1044, 1053, 1062, + 1072, 1082, 1090, 1103, 1112, 1120, 1129, 1137, 1150, 1159, + 1166, 1176, 1186, 1196, 1206, 1216, 1226, 1236, 1246, 1253, + 1260, 1267, 1276, 1285, 1294, 1301, 1311, 1328, 1335, 1353, + 1366, 1379, 1388, 1397, 1406, 1415, 1425, 1435, 1446, 1455, + 1464, 1477, 1490, 1499, 1506, 1515, 1524, 1533, 1542, 1550, + 1563, 1571, 1600, 1607, 1622, 1632, 1642, 1649, 1656, 1665, + 1679, 1698, 1717, 1729, 1741, 1753, 1764, 1783, 1793, 1802, + 1810, 1818, 1831, 1844, 1857, 1870, 1879, 1888, 1897, 1906, + 1916, 1926, 1939, 1952, 1963, 1976, 1987, 2000, 2010, 2017, + 2024, 2033, 2043, 2053, 2063, 2070, 2077, 2086, 2096, 2106, + 2113, 2120, 2127, 2135, 2145, 2155, 2165, 2175, 2205, 2215, + 2223, 2232, 2247, 2256, 2261, 2262, 2263, 2263, 2263, 2264, + 2264, 2264, 2265, 2265, 2267, 2277, 2286, 2293, 2303, 2310, + 2317, 2324, 2331, 2336, 2337, 2338, 2338, 2339, 2339, 2340, + 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2348, 2356, 2363, + 2371, 2379, 2386, 2393, 2402, 2411, 2420, 2429, 2438, 2447, + 2452, 2453, 2454, 2456, 2462, 2472, 2479, 2488, 2496, 2502, + 2503, 2505, 2505, 2505, 2506, 2506, 2507, 2508, 2509, 2510, + 2511, 2513, 2523, 2533, 2540, 2549, 2556, 2565, 2573, 2586, + 2594, 2607, 2612, 2613, 2614, 2614, 2615, 2615, 2615, 2617, + 2631, 2646, 2658, 2673 }; #endif @@ -1102,12 +1104,12 @@ static const char *const yytname[] = "VAR_FOR_UPSTREAM", "VAR_AUTH_ZONE", "VAR_ZONEFILE", "VAR_MASTER", "VAR_URL", "VAR_FOR_DOWNSTREAM", "VAR_FALLBACK_ENABLED", "VAR_ADDITIONAL_TLS_PORT", "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL", - "VAR_ALLOW_NOTIFY", "$accept", "toplevelvars", "toplevelvar", - "serverstart", "contents_server", "content_server", "stubstart", - "contents_stub", "content_stub", "forwardstart", "contents_forward", - "content_forward", "viewstart", "contents_view", "content_view", - "authstart", "contents_auth", "content_auth", "server_num_threads", - "server_verbosity", "server_statistics_interval", + "VAR_ALLOW_NOTIFY", "VAR_TLS_WIN_CERT", "$accept", "toplevelvars", + "toplevelvar", "serverstart", "contents_server", "content_server", + "stubstart", "contents_stub", "content_stub", "forwardstart", + "contents_forward", "content_forward", "viewstart", "contents_view", + "content_view", "authstart", "contents_auth", "content_auth", + "server_num_threads", "server_verbosity", "server_statistics_interval", "server_statistics_cumulative", "server_extended_statistics", "server_shm_enable", "server_shm_key", "server_port", "server_send_client_subnet", "server_client_subnet_zone", @@ -1121,10 +1123,11 @@ static const char *const yytname[] = "server_outgoing_tcp_mss", "server_tcp_upstream", "server_udp_upstream_without_downstream", "server_ssl_upstream", "server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port", - "server_tls_cert_bundle", "server_additional_tls_port", - "server_use_systemd", "server_do_daemonize", "server_use_syslog", - "server_log_time_ascii", "server_log_queries", "server_log_replies", - "server_chroot", "server_username", "server_directory", "server_logfile", + "server_tls_cert_bundle", "server_tls_win_cert", + "server_additional_tls_port", "server_use_systemd", + "server_do_daemonize", "server_use_syslog", "server_log_time_ascii", + "server_log_queries", "server_log_replies", "server_chroot", + "server_username", "server_directory", "server_logfile", "server_pidfile", "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor", "server_auto_trust_anchor_file", "server_trust_anchor_file", "server_trusted_keys_file", @@ -1240,7 +1243,7 @@ static const yytype_uint16 yytoknum[] = 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496 + 495, 496, 497 }; # endif @@ -1278,7 +1281,7 @@ static const yytype_int16 yypact[] = 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 215, 216, 217, 218, 219, 220, 251, 252, 253, 254, 258, 259, 260, 302, - 303, -184, -184, -184, -184, -184, -184, -184, -184, -184, + 303, 304, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, @@ -1294,45 +1297,46 @@ static const yytype_int16 yypact[] = -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, 304, - 305, 306, 307, 308, 309, -184, -184, -184, -184, -184, - -184, -184, 310, 314, 318, 319, 343, -184, -184, -184, - -184, -184, -184, 344, 345, 347, 357, 358, 359, 360, - -184, -184, -184, -184, -184, -184, -184, -184, 361, 362, - 363, 364, 365, 366, 367, 368, -184, -184, -184, -184, - -184, -184, -184, -184, -184, 369, 404, 406, 418, 419, - 420, 421, 422, -184, -184, -184, -184, -184, -184, -184, - -184, -184, 423, 424, 425, 426, 427, 428, 435, 436, - 437, 438, 439, 440, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, 442, -184, -184, - 443, 444, 445, 446, 447, 448, 452, 453, 454, 455, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, 456, 457, 458, 459, 460, -184, -184, -184, -184, + -184, 305, 306, 307, 308, 309, 310, -184, -184, -184, + -184, -184, -184, -184, 314, 318, 319, 343, 344, -184, + -184, -184, -184, -184, -184, 345, 347, 357, 358, 359, + 360, 361, -184, -184, -184, -184, -184, -184, -184, -184, + 362, 363, 364, 365, 366, 367, 368, 369, -184, -184, + -184, -184, -184, -184, -184, -184, -184, 404, 406, 418, + 419, 420, 421, 422, 423, -184, -184, -184, -184, -184, + -184, -184, -184, -184, 424, 425, 426, 427, 428, 435, + 436, 437, 438, 439, 440, 442, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, 443, + -184, -184, 444, 445, 446, 447, 448, 452, 454, 455, + 456, 457, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, 458, 459, 460, 461, 462, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, 461, 462, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + 463, 464, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, 465, 466, 467, -184, -184, + -184, -184, -184, -184, -184, -184, -184, 468, 469, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, 470, 471, 472, 473, 474, 475, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, 476, -184, -184, 477, 478, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, 463, 464, 465, -184, -184, -184, -184, - -184, -184, -184, -184, -184, 466, 467, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, 468, 469, 470, 471, 472, 473, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, 474, -184, -184, 475, 476, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - 477, 478, 479, -184, -184, -184, -184, -184, -184, -184 + -184, -184, -184, 479, 480, 481, -184, -184, -184, -184, + -184, -184, -184 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1340,9 +1344,9 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 14, 184, 193, 411, 457, 430, 201, - 466, 489, 211, 3, 16, 186, 195, 203, 213, 413, - 432, 459, 468, 491, 4, 5, 6, 10, 13, 8, + 2, 0, 1, 14, 185, 194, 413, 459, 432, 202, + 468, 491, 212, 3, 16, 187, 196, 204, 214, 415, + 434, 461, 470, 493, 4, 5, 6, 10, 13, 8, 9, 7, 11, 12, 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, @@ -1360,61 +1364,62 @@ 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, 15, 17, 18, 77, 80, 89, 166, 167, 19, - 139, 140, 141, 142, 143, 144, 28, 68, 20, 81, - 82, 39, 61, 76, 21, 22, 24, 25, 23, 26, - 27, 112, 178, 113, 114, 115, 116, 180, 181, 162, - 78, 67, 93, 110, 111, 29, 30, 31, 32, 33, - 69, 83, 84, 99, 55, 65, 56, 170, 171, 94, - 49, 50, 169, 51, 52, 103, 107, 120, 128, 149, - 104, 62, 34, 35, 36, 91, 121, 122, 123, 37, - 38, 40, 41, 43, 44, 42, 126, 45, 46, 47, - 53, 72, 108, 86, 127, 79, 145, 87, 88, 105, - 106, 92, 48, 70, 73, 54, 57, 95, 96, 71, - 146, 97, 58, 59, 60, 179, 109, 159, 160, 168, - 98, 66, 100, 101, 102, 147, 63, 64, 85, 74, - 75, 90, 117, 118, 119, 124, 125, 150, 151, 153, - 155, 156, 154, 157, 163, 129, 130, 133, 134, 131, - 132, 135, 136, 138, 137, 182, 183, 148, 158, 172, - 174, 173, 175, 176, 177, 152, 161, 164, 165, 0, - 0, 0, 0, 0, 0, 185, 187, 188, 189, 191, - 192, 190, 0, 0, 0, 0, 0, 194, 196, 197, - 198, 199, 200, 0, 0, 0, 0, 0, 0, 0, - 202, 204, 205, 208, 209, 206, 210, 207, 0, 0, - 0, 0, 0, 0, 0, 0, 212, 214, 215, 216, - 217, 221, 218, 219, 220, 0, 0, 0, 0, 0, - 0, 0, 0, 412, 414, 416, 415, 421, 417, 418, - 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 431, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 0, 458, 460, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 467, 469, 470, 471, 473, 474, 472, 475, 476, 477, - 478, 0, 0, 0, 0, 0, 490, 492, 493, 494, - 495, 496, 223, 222, 229, 238, 236, 244, 245, 248, - 246, 247, 249, 250, 265, 266, 267, 268, 269, 292, - 293, 294, 299, 300, 241, 301, 302, 305, 303, 304, - 307, 308, 309, 322, 280, 281, 283, 284, 310, 325, - 274, 276, 326, 332, 333, 334, 242, 291, 346, 347, - 275, 341, 261, 237, 270, 323, 329, 311, 0, 0, - 350, 243, 224, 260, 315, 225, 239, 240, 271, 272, - 348, 313, 317, 318, 226, 351, 295, 321, 262, 279, - 327, 328, 331, 340, 273, 344, 342, 343, 285, 290, - 319, 320, 286, 287, 312, 336, 263, 264, 251, 253, - 254, 255, 256, 257, 352, 353, 354, 296, 297, 298, - 306, 355, 356, 0, 0, 0, 314, 288, 462, 365, - 369, 367, 366, 370, 368, 0, 0, 373, 374, 230, - 231, 232, 233, 234, 235, 316, 330, 345, 377, 378, - 289, 357, 0, 0, 0, 0, 0, 0, 337, 338, - 339, 463, 282, 277, 335, 259, 227, 228, 278, 379, - 381, 380, 382, 383, 384, 252, 258, 375, 376, 385, - 386, 387, 390, 389, 388, 391, 392, 393, 394, 395, - 404, 0, 408, 409, 0, 0, 410, 396, 402, 397, - 398, 399, 401, 403, 400, 422, 424, 423, 426, 427, - 428, 429, 425, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 461, 479, 480, 481, 484, - 482, 483, 485, 486, 487, 488, 497, 498, 499, 500, - 501, 324, 349, 364, 464, 465, 371, 372, 358, 359, - 0, 0, 0, 363, 405, 406, 407, 362, 360, 361 + 0, 0, 15, 17, 18, 77, 80, 89, 166, 167, + 19, 139, 140, 141, 142, 143, 144, 28, 68, 20, + 81, 82, 39, 61, 76, 21, 22, 24, 25, 23, + 26, 27, 112, 178, 113, 114, 115, 116, 180, 184, + 181, 162, 78, 67, 93, 110, 111, 29, 30, 31, + 32, 33, 69, 83, 84, 99, 55, 65, 56, 170, + 171, 94, 49, 50, 169, 51, 52, 103, 107, 120, + 128, 149, 104, 62, 34, 35, 36, 91, 121, 122, + 123, 37, 38, 40, 41, 43, 44, 42, 126, 45, + 46, 47, 53, 72, 108, 86, 127, 79, 145, 87, + 88, 105, 106, 92, 48, 70, 73, 54, 57, 95, + 96, 71, 146, 97, 58, 59, 60, 179, 109, 159, + 160, 168, 98, 66, 100, 101, 102, 147, 63, 64, + 85, 74, 75, 90, 117, 118, 119, 124, 125, 150, + 151, 153, 155, 156, 154, 157, 163, 129, 130, 133, + 134, 131, 132, 135, 136, 138, 137, 182, 183, 148, + 158, 172, 174, 173, 175, 176, 177, 152, 161, 164, + 165, 0, 0, 0, 0, 0, 0, 186, 188, 189, + 190, 192, 193, 191, 0, 0, 0, 0, 0, 195, + 197, 198, 199, 200, 201, 0, 0, 0, 0, 0, + 0, 0, 203, 205, 206, 209, 210, 207, 211, 208, + 0, 0, 0, 0, 0, 0, 0, 0, 213, 215, + 216, 217, 218, 222, 219, 220, 221, 0, 0, 0, + 0, 0, 0, 0, 0, 414, 416, 418, 417, 423, + 419, 420, 421, 422, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 433, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, + 460, 462, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 469, 471, 472, 473, 475, 476, 474, 477, + 478, 479, 480, 0, 0, 0, 0, 0, 492, 494, + 495, 496, 497, 498, 224, 223, 230, 239, 237, 245, + 246, 249, 247, 248, 250, 251, 267, 268, 269, 270, + 271, 294, 295, 296, 301, 302, 242, 303, 304, 307, + 305, 306, 309, 310, 311, 324, 282, 283, 285, 286, + 312, 327, 276, 278, 328, 334, 335, 336, 243, 293, + 348, 349, 277, 343, 263, 238, 272, 325, 331, 313, + 0, 0, 352, 244, 225, 262, 317, 226, 240, 241, + 273, 274, 350, 315, 319, 320, 227, 353, 297, 323, + 264, 281, 329, 330, 333, 342, 275, 346, 344, 345, + 287, 292, 321, 322, 288, 289, 314, 338, 265, 266, + 252, 254, 255, 256, 257, 258, 354, 355, 356, 298, + 299, 300, 308, 357, 358, 0, 0, 0, 316, 290, + 464, 367, 371, 369, 368, 372, 370, 0, 0, 375, + 376, 231, 232, 233, 234, 235, 236, 318, 332, 347, + 379, 380, 291, 359, 0, 0, 0, 0, 0, 0, + 339, 340, 341, 465, 284, 279, 337, 261, 228, 229, + 280, 381, 383, 382, 384, 385, 386, 253, 260, 377, + 378, 259, 387, 388, 389, 392, 391, 390, 393, 394, + 395, 396, 397, 406, 0, 410, 411, 0, 0, 412, + 398, 404, 399, 400, 401, 403, 405, 402, 424, 426, + 425, 428, 429, 430, 431, 427, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 463, 481, + 482, 483, 486, 484, 485, 487, 488, 489, 490, 499, + 500, 501, 502, 503, 326, 351, 366, 466, 467, 373, + 374, 360, 361, 0, 0, 0, 365, 407, 408, 409, + 364, 362, 363 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1446,39 +1451,39 @@ static const yytype_int16 yypgoto[] = -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184 + -184, -184, -184 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 13, 14, 24, 201, 15, 25, 375, 16, - 26, 387, 17, 27, 400, 18, 28, 416, 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, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 376, 377, 378, 379, 380, 381, 388, 389, 390, - 391, 392, 417, 418, 419, 420, 421, 422, 423, 424, - 401, 402, 403, 404, 405, 406, 407, 19, 29, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 20, 30, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 21, 31, 468, 469, 365, 366, 367, - 368, 22, 32, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 23, 33, 496, 497, 498, 499, - 500, 501 + -1, 1, 13, 14, 24, 202, 15, 25, 377, 16, + 26, 389, 17, 27, 402, 18, 28, 418, 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, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 378, 379, 380, 381, 382, 383, 390, 391, + 392, 393, 394, 419, 420, 421, 422, 423, 424, 425, + 426, 403, 404, 405, 406, 407, 408, 409, 19, 29, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 20, + 30, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 21, 31, 470, 471, 367, 368, + 369, 370, 22, 32, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 23, 33, 498, 499, 500, + 501, 502, 503 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1486,55 +1491,56 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint16 yytable[] = { - 2, 408, 393, 369, 467, 370, 371, 502, 382, 503, - 0, 3, 504, 505, 506, 507, 383, 384, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 425, 426, 427, 428, 429, 430, 431, 432, 394, 395, - 508, 4, 491, 492, 493, 494, 495, 5, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 509, 510, - 511, 512, 513, 396, 514, 515, 372, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 6, 540, 541, 542, 543, 373, 544, 545, 374, - 385, 546, 386, 547, 548, 549, 550, 7, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 397, 398, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 585, 586, 8, 587, 588, 589, - 590, 591, 592, 593, 594, 595, 596, 399, 597, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, - 629, 630, 409, 9, 410, 411, 412, 413, 414, 631, - 632, 633, 415, 634, 635, 636, 637, 10, 638, 639, - 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 11, 654, 655, 656, 657, 658, - 659, 0, 12, 34, 35, 36, 37, 38, 39, 40, + 2, 410, 395, 371, 469, 372, 373, 504, 384, 505, + 0, 3, 506, 507, 508, 509, 385, 386, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 427, 428, 429, 430, 431, 432, 433, 434, 396, 397, + 510, 4, 493, 494, 495, 496, 497, 5, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 511, 512, + 513, 514, 515, 398, 516, 517, 374, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 6, 542, 543, 544, 545, 375, 546, 547, 376, + 387, 548, 388, 549, 550, 551, 552, 7, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 399, 400, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 8, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 401, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 411, 9, 412, 413, 414, 415, 416, 633, + 634, 635, 417, 636, 637, 638, 639, 10, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 11, 656, 657, 658, 659, 660, + 661, 0, 12, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 660, 661, 662, 663, 62, 63, 64, 664, 665, - 666, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 61, 662, 663, 664, 665, 62, 63, 64, 666, 667, + 668, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 106, 107, 108, 676, 109, 110, 111, 677, 678, + 104, 105, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 106, 107, 108, 678, 109, 110, 111, 679, 680, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 679, 680, 681, 135, 682, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 132, 133, 134, 681, 682, 683, 135, 684, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 145, 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, 696, 179, 697, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 698, 699, - 700, 701, 702, 703, 704, 705, 706, 707, 708, 191, - 192, 193, 194, 195, 196, 709, 710, 711, 712, 713, - 714, 197, 715, 716, 717, 718, 719, 720, 721, 198, - 199, 200, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, - 740, 741, 742, 743, 744, 745, 746, 747, 748, 749 + 175, 176, 177, 178, 698, 179, 699, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 191, + 192, 193, 194, 195, 196, 711, 712, 713, 714, 715, + 716, 197, 717, 718, 719, 720, 721, 722, 723, 198, + 199, 200, 724, 201, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752 }; static const yytype_int16 yycheck[] = @@ -1585,19 +1591,20 @@ static const yytype_int16 yycheck[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 218, 219, 220, 221, 222, 223, 10, 10, 10, 10, 10, 10, 230, 10, 10, 10, 10, 10, 10, 10, 238, - 239, 240, 10, 10, 10, 10, 10, 10, 10, 10, + 239, 240, 10, 242, 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, 243, 0, 11, 41, 47, 91, 107, 146, 193, - 207, 224, 232, 244, 245, 248, 251, 254, 257, 449, - 460, 475, 483, 496, 246, 249, 252, 255, 258, 450, - 461, 476, 484, 497, 12, 13, 14, 15, 16, 17, + 0, 244, 0, 11, 41, 47, 91, 107, 146, 193, + 207, 224, 232, 245, 246, 249, 252, 255, 258, 451, + 462, 477, 485, 498, 247, 250, 253, 256, 259, 452, + 463, 478, 486, 499, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 44, 45, 46, 50, 51, 52, 53, 54, @@ -1614,7 +1621,7 @@ static const yytype_uint16 yystos[] = 184, 185, 186, 187, 188, 189, 190, 191, 192, 194, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 218, 219, 220, 221, 222, 223, 230, 238, 239, - 240, 247, 260, 261, 262, 263, 264, 265, 266, 267, + 240, 242, 248, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, @@ -1630,21 +1637,21 @@ static const yytype_uint16 yystos[] = 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, 479, 480, 481, 482, 40, - 42, 43, 103, 133, 136, 250, 423, 424, 425, 426, - 427, 428, 40, 48, 49, 132, 134, 253, 429, 430, - 431, 432, 433, 40, 76, 77, 101, 160, 161, 195, - 256, 442, 443, 444, 445, 446, 447, 448, 40, 231, - 233, 234, 235, 236, 237, 241, 259, 434, 435, 436, - 437, 438, 439, 440, 441, 92, 93, 94, 95, 96, - 97, 98, 99, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 108, 477, 478, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 225, 226, 227, 228, 229, 498, 499, 500, 501, - 502, 503, 10, 10, 10, 10, 10, 10, 10, 10, + 418, 419, 420, 421, 422, 423, 424, 481, 482, 483, + 484, 40, 42, 43, 103, 133, 136, 251, 425, 426, + 427, 428, 429, 430, 40, 48, 49, 132, 134, 254, + 431, 432, 433, 434, 435, 40, 76, 77, 101, 160, + 161, 195, 257, 444, 445, 446, 447, 448, 449, 450, + 40, 231, 233, 234, 235, 236, 237, 241, 260, 436, + 437, 438, 439, 440, 441, 442, 443, 92, 93, 94, + 95, 96, 97, 98, 99, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 108, + 479, 480, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 225, 226, 227, 228, 229, 500, 501, + 502, 503, 504, 505, 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, @@ -1668,35 +1675,36 @@ 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, 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, 242, 243, 243, 244, 244, 244, 244, 244, 244, - 244, 244, 244, 244, 245, 246, 246, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 248, 249, 249, 250, 250, 250, - 250, 250, 250, 251, 252, 252, 253, 253, 253, 253, - 253, 254, 255, 255, 256, 256, 256, 256, 256, 256, - 256, 257, 258, 258, 259, 259, 259, 259, 259, 259, - 259, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 0, 243, 244, 244, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 246, 247, 247, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 249, 250, 250, 251, 251, + 251, 251, 251, 251, 252, 253, 253, 254, 254, 254, + 254, 254, 255, 256, 256, 257, 257, 257, 257, 257, + 257, 257, 258, 259, 259, 260, 260, 260, 260, 260, + 260, 260, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, @@ -1715,16 +1723,16 @@ static const yytype_uint16 yyr1[] = 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 449, 450, 450, 451, 451, 451, 451, 451, 451, - 451, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 461, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 484, 485, - 485, 485, 485, 485, 485, 485, 485, 485, 485, 486, + 448, 449, 450, 451, 452, 452, 453, 453, 453, 453, + 453, 453, 453, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 463, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 486, 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 497, 498, 498, 498, 498, 498, 499, 500, 501, - 502, 503 + 497, 498, 499, 499, 500, 500, 500, 500, 500, 501, + 502, 503, 504, 505 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1748,11 +1756,11 @@ 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, 2, 0, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, - 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 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, @@ -1762,25 +1770,25 @@ 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, 3, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, - 4, 4, 4, 3, 3, 2, 2, 2, 2, 2, - 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 3, 3, 2, 2, - 2, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, - 1, 2, 2, 2, 3, 3, 1, 2, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 4, 4, 4, 3, 3, 2, 2, 2, + 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, + 2, 2, 2, 1, 2, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 1, 2, 0, 1, 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, 1, 1, 1, 1, 2, 2, 2, - 2, 2 + 2, 0, 1, 2, 2, 2, 3, 3, 1, 2, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 1, 2, 0, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2 }; @@ -2461,10 +2469,10 @@ yyreduce: { OUTYY(("\nP(server:)\n")); } -#line 2465 "util/configparser.c" /* yacc.c:1646 */ +#line 2473 "util/configparser.c" /* yacc.c:1646 */ break; - case 184: + case 185: #line 255 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; @@ -2476,10 +2484,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2480 "util/configparser.c" /* yacc.c:1646 */ +#line 2488 "util/configparser.c" /* yacc.c:1646 */ break; - case 193: + case 194: #line 272 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; @@ -2491,10 +2499,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2495 "util/configparser.c" /* yacc.c:1646 */ +#line 2503 "util/configparser.c" /* yacc.c:1646 */ break; - case 201: + case 202: #line 289 "./util/configparser.y" /* yacc.c:1646 */ { struct config_view* s; @@ -2508,10 +2516,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2512 "util/configparser.c" /* yacc.c:1646 */ +#line 2520 "util/configparser.c" /* yacc.c:1646 */ break; - case 211: + case 212: #line 308 "./util/configparser.y" /* yacc.c:1646 */ { struct config_auth* s; @@ -2527,10 +2535,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2531 "util/configparser.c" /* yacc.c:1646 */ +#line 2539 "util/configparser.c" /* yacc.c:1646 */ break; - case 222: + case 223: #line 330 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); @@ -2539,10 +2547,10 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2543 "util/configparser.c" /* yacc.c:1646 */ +#line 2551 "util/configparser.c" /* yacc.c:1646 */ break; - case 223: + case 224: #line 339 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); @@ -2551,10 +2559,10 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2555 "util/configparser.c" /* yacc.c:1646 */ +#line 2563 "util/configparser.c" /* yacc.c:1646 */ break; - case 224: + case 225: #line 348 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); @@ -2565,10 +2573,10 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2569 "util/configparser.c" /* yacc.c:1646 */ +#line 2577 "util/configparser.c" /* yacc.c:1646 */ break; - case 225: + case 226: #line 359 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); @@ -2577,10 +2585,10 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2581 "util/configparser.c" /* yacc.c:1646 */ +#line 2589 "util/configparser.c" /* yacc.c:1646 */ break; - case 226: + case 227: #line 368 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); @@ -2589,10 +2597,10 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2593 "util/configparser.c" /* yacc.c:1646 */ +#line 2601 "util/configparser.c" /* yacc.c:1646 */ break; - case 227: + case 228: #line 377 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); @@ -2601,10 +2609,10 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2605 "util/configparser.c" /* yacc.c:1646 */ +#line 2613 "util/configparser.c" /* yacc.c:1646 */ break; - case 228: + case 229: #line 386 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); @@ -2615,10 +2623,10 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2619 "util/configparser.c" /* yacc.c:1646 */ +#line 2627 "util/configparser.c" /* yacc.c:1646 */ break; - case 229: + case 230: #line 397 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); @@ -2627,10 +2635,10 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2631 "util/configparser.c" /* yacc.c:1646 */ +#line 2639 "util/configparser.c" /* yacc.c:1646 */ break; - case 230: + case 231: #line 406 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2641,10 +2649,10 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2645 "util/configparser.c" /* yacc.c:1646 */ +#line 2653 "util/configparser.c" /* yacc.c:1646 */ break; - case 231: + case 232: #line 417 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2656,10 +2664,10 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2660 "util/configparser.c" /* yacc.c:1646 */ +#line 2668 "util/configparser.c" /* yacc.c:1646 */ break; - case 232: + case 233: #line 430 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2674,10 +2682,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2678 "util/configparser.c" /* yacc.c:1646 */ +#line 2686 "util/configparser.c" /* yacc.c:1646 */ break; - case 233: + case 234: #line 445 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2688,10 +2696,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2692 "util/configparser.c" /* yacc.c:1646 */ +#line 2700 "util/configparser.c" /* yacc.c:1646 */ break; - case 234: + case 235: #line 456 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2708,10 +2716,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2712 "util/configparser.c" /* yacc.c:1646 */ +#line 2720 "util/configparser.c" /* yacc.c:1646 */ break; - case 235: + case 236: #line 473 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2728,10 +2736,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2732 "util/configparser.c" /* yacc.c:1646 */ +#line 2740 "util/configparser.c" /* yacc.c:1646 */ break; - case 236: + case 237: #line 490 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); @@ -2744,10 +2752,10 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 2748 "util/configparser.c" /* yacc.c:1646 */ +#line 2756 "util/configparser.c" /* yacc.c:1646 */ break; - case 237: + case 238: #line 503 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); @@ -2762,10 +2770,10 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 2766 "util/configparser.c" /* yacc.c:1646 */ +#line 2774 "util/configparser.c" /* yacc.c:1646 */ break; - case 238: + case 239: #line 518 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); @@ -2774,10 +2782,10 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2778 "util/configparser.c" /* yacc.c:1646 */ +#line 2786 "util/configparser.c" /* yacc.c:1646 */ break; - case 239: + case 240: #line 527 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); @@ -2786,10 +2794,10 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2790 "util/configparser.c" /* yacc.c:1646 */ +#line 2798 "util/configparser.c" /* yacc.c:1646 */ break; - case 240: + case 241: #line 536 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); @@ -2798,10 +2806,10 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2802 "util/configparser.c" /* yacc.c:1646 */ +#line 2810 "util/configparser.c" /* yacc.c:1646 */ break; - case 241: + case 242: #line 545 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); @@ -2810,10 +2818,10 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2814 "util/configparser.c" /* yacc.c:1646 */ +#line 2822 "util/configparser.c" /* yacc.c:1646 */ break; - case 242: + case 243: #line 554 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); @@ -2822,10 +2830,10 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2826 "util/configparser.c" /* yacc.c:1646 */ +#line 2834 "util/configparser.c" /* yacc.c:1646 */ break; - case 243: + case 244: #line 563 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); @@ -2834,10 +2842,10 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2838 "util/configparser.c" /* yacc.c:1646 */ +#line 2846 "util/configparser.c" /* yacc.c:1646 */ break; - case 244: + case 245: #line 572 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); @@ -2846,10 +2854,10 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2850 "util/configparser.c" /* yacc.c:1646 */ +#line 2858 "util/configparser.c" /* yacc.c:1646 */ break; - case 245: + case 246: #line 581 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); @@ -2858,10 +2866,10 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2862 "util/configparser.c" /* yacc.c:1646 */ +#line 2870 "util/configparser.c" /* yacc.c:1646 */ break; - case 246: + case 247: #line 590 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); @@ -2870,10 +2878,10 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2874 "util/configparser.c" /* yacc.c:1646 */ +#line 2882 "util/configparser.c" /* yacc.c:1646 */ break; - case 247: + case 248: #line 599 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); @@ -2882,10 +2890,10 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2886 "util/configparser.c" /* yacc.c:1646 */ +#line 2894 "util/configparser.c" /* yacc.c:1646 */ break; - case 248: + case 249: #line 608 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); @@ -2894,10 +2902,10 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2898 "util/configparser.c" /* yacc.c:1646 */ +#line 2906 "util/configparser.c" /* yacc.c:1646 */ break; - case 249: + case 250: #line 617 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); @@ -2906,10 +2914,10 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2910 "util/configparser.c" /* yacc.c:1646 */ +#line 2918 "util/configparser.c" /* yacc.c:1646 */ break; - case 250: + case 251: #line 626 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); @@ -2918,10 +2926,10 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2922 "util/configparser.c" /* yacc.c:1646 */ +#line 2930 "util/configparser.c" /* yacc.c:1646 */ break; - case 251: + case 252: #line 635 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); @@ -2930,10 +2938,10 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2934 "util/configparser.c" /* yacc.c:1646 */ +#line 2942 "util/configparser.c" /* yacc.c:1646 */ break; - case 252: + case 253: #line 644 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); @@ -2942,10 +2950,10 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2946 "util/configparser.c" /* yacc.c:1646 */ +#line 2954 "util/configparser.c" /* yacc.c:1646 */ break; - case 253: + case 254: #line 653 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); @@ -2954,30 +2962,30 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2958 "util/configparser.c" /* yacc.c:1646 */ +#line 2966 "util/configparser.c" /* yacc.c:1646 */ break; - case 254: + case 255: #line 662 "./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 2968 "util/configparser.c" /* yacc.c:1646 */ +#line 2976 "util/configparser.c" /* yacc.c:1646 */ break; - case 255: + case 256: #line 669 "./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 2978 "util/configparser.c" /* yacc.c:1646 */ +#line 2986 "util/configparser.c" /* yacc.c:1646 */ break; - case 256: + case 257: #line 676 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); @@ -2986,32 +2994,44 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2990 "util/configparser.c" /* yacc.c:1646 */ +#line 2998 "util/configparser.c" /* yacc.c:1646 */ break; - case 257: + case 258: #line 685 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } -#line 3000 "util/configparser.c" /* yacc.c:1646 */ +#line 3008 "util/configparser.c" /* yacc.c:1646 */ break; - case 258: + case 259: #line 692 "./util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 3020 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 260: +#line 701 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_additional_tls_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->additional_tls_port, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3011 "util/configparser.c" /* yacc.c:1646 */ +#line 3031 "util/configparser.c" /* yacc.c:1646 */ break; - case 259: -#line 700 "./util/configparser.y" /* yacc.c:1646 */ + case 261: +#line 709 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3019,11 +3039,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3023 "util/configparser.c" /* yacc.c:1646 */ +#line 3043 "util/configparser.c" /* yacc.c:1646 */ break; - case 260: -#line 709 "./util/configparser.y" /* yacc.c:1646 */ + case 262: +#line 718 "./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) @@ -3031,11 +3051,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3035 "util/configparser.c" /* yacc.c:1646 */ +#line 3055 "util/configparser.c" /* yacc.c:1646 */ break; - case 261: -#line 718 "./util/configparser.y" /* yacc.c:1646 */ + case 263: +#line 727 "./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) @@ -3048,11 +3068,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3052 "util/configparser.c" /* yacc.c:1646 */ +#line 3072 "util/configparser.c" /* yacc.c:1646 */ break; - case 262: -#line 732 "./util/configparser.y" /* yacc.c:1646 */ + case 264: +#line 741 "./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) @@ -3060,11 +3080,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3064 "util/configparser.c" /* yacc.c:1646 */ +#line 3084 "util/configparser.c" /* yacc.c:1646 */ break; - case 263: -#line 741 "./util/configparser.y" /* yacc.c:1646 */ + case 265: +#line 750 "./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) @@ -3072,11 +3092,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3076 "util/configparser.c" /* yacc.c:1646 */ +#line 3096 "util/configparser.c" /* yacc.c:1646 */ break; - case 264: -#line 750 "./util/configparser.y" /* yacc.c:1646 */ + case 266: +#line 759 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3084,31 +3104,31 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3088 "util/configparser.c" /* yacc.c:1646 */ +#line 3108 "util/configparser.c" /* yacc.c:1646 */ break; - case 265: -#line 759 "./util/configparser.y" /* yacc.c:1646 */ + case 267: +#line 768 "./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 3098 "util/configparser.c" /* yacc.c:1646 */ +#line 3118 "util/configparser.c" /* yacc.c:1646 */ break; - case 266: -#line 766 "./util/configparser.y" /* yacc.c:1646 */ + case 268: +#line 775 "./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 3108 "util/configparser.c" /* yacc.c:1646 */ +#line 3128 "util/configparser.c" /* yacc.c:1646 */ break; - case 267: -#line 773 "./util/configparser.y" /* yacc.c:1646 */ + case 269: +#line 782 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -3133,105 +3153,105 @@ yyreduce: } } } -#line 3137 "util/configparser.c" /* yacc.c:1646 */ +#line 3157 "util/configparser.c" /* yacc.c:1646 */ break; - case 268: -#line 799 "./util/configparser.y" /* yacc.c:1646 */ + case 270: +#line 808 "./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 3148 "util/configparser.c" /* yacc.c:1646 */ +#line 3168 "util/configparser.c" /* yacc.c:1646 */ break; - case 269: -#line 807 "./util/configparser.y" /* yacc.c:1646 */ + case 271: +#line 816 "./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 3158 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 270: -#line 814 "./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 3168 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 271: -#line 821 "./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 3178 "util/configparser.c" /* yacc.c:1646 */ break; case 272: -#line 828 "./util/configparser.y" /* yacc.c:1646 */ +#line 823 "./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))) + 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 3188 "util/configparser.c" /* yacc.c:1646 */ break; case 273: -#line 835 "./util/configparser.y" /* yacc.c:1646 */ +#line 830 "./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 3198 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 274: +#line 837 "./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 3208 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 275: +#line 844 "./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 3199 "util/configparser.c" /* yacc.c:1646 */ +#line 3219 "util/configparser.c" /* yacc.c:1646 */ break; - case 274: -#line 843 "./util/configparser.y" /* yacc.c:1646 */ + case 276: +#line 852 "./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 3210 "util/configparser.c" /* yacc.c:1646 */ +#line 3230 "util/configparser.c" /* yacc.c:1646 */ break; - case 275: -#line 851 "./util/configparser.y" /* yacc.c:1646 */ + case 277: +#line 860 "./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 3221 "util/configparser.c" /* yacc.c:1646 */ +#line 3241 "util/configparser.c" /* yacc.c:1646 */ break; - case 276: -#line 859 "./util/configparser.y" /* yacc.c:1646 */ + case 278: +#line 868 "./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 3231 "util/configparser.c" /* yacc.c:1646 */ +#line 3251 "util/configparser.c" /* yacc.c:1646 */ break; - case 277: -#line 866 "./util/configparser.y" /* yacc.c:1646 */ + case 279: +#line 875 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3241,11 +3261,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3245 "util/configparser.c" /* yacc.c:1646 */ +#line 3265 "util/configparser.c" /* yacc.c:1646 */ break; - case 278: -#line 877 "./util/configparser.y" /* yacc.c:1646 */ + case 280: +#line 886 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3255,21 +3275,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3259 "util/configparser.c" /* yacc.c:1646 */ +#line 3279 "util/configparser.c" /* yacc.c:1646 */ break; - case 279: -#line 888 "./util/configparser.y" /* yacc.c:1646 */ + case 281: +#line 897 "./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 3269 "util/configparser.c" /* yacc.c:1646 */ +#line 3289 "util/configparser.c" /* yacc.c:1646 */ break; - case 280: -#line 895 "./util/configparser.y" /* yacc.c:1646 */ + case 282: +#line 904 "./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) @@ -3277,11 +3297,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3281 "util/configparser.c" /* yacc.c:1646 */ +#line 3301 "util/configparser.c" /* yacc.c:1646 */ break; - case 281: -#line 904 "./util/configparser.y" /* yacc.c:1646 */ + case 283: +#line 913 "./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) @@ -3289,11 +3309,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3293 "util/configparser.c" /* yacc.c:1646 */ +#line 3313 "util/configparser.c" /* yacc.c:1646 */ break; - case 282: -#line 913 "./util/configparser.y" /* yacc.c:1646 */ + case 284: +#line 922 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3301,53 +3321,53 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3305 "util/configparser.c" /* yacc.c:1646 */ +#line 3325 "util/configparser.c" /* yacc.c:1646 */ break; - case 283: -#line 922 "./util/configparser.y" /* yacc.c:1646 */ + case 285: +#line 931 "./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 3315 "util/configparser.c" /* yacc.c:1646 */ +#line 3335 "util/configparser.c" /* yacc.c:1646 */ break; - case 284: -#line 929 "./util/configparser.y" /* yacc.c:1646 */ + case 286: +#line 938 "./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 3325 "util/configparser.c" /* yacc.c:1646 */ +#line 3345 "util/configparser.c" /* yacc.c:1646 */ break; - case 285: -#line 936 "./util/configparser.y" /* yacc.c:1646 */ + case 287: +#line 945 "./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 3336 "util/configparser.c" /* yacc.c:1646 */ +#line 3356 "util/configparser.c" /* yacc.c:1646 */ break; - case 286: -#line 944 "./util/configparser.y" /* yacc.c:1646 */ + case 288: +#line 953 "./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 3347 "util/configparser.c" /* yacc.c:1646 */ +#line 3367 "util/configparser.c" /* yacc.c:1646 */ break; - case 287: -#line 952 "./util/configparser.y" /* yacc.c:1646 */ + case 289: +#line 961 "./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) @@ -3356,11 +3376,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3360 "util/configparser.c" /* yacc.c:1646 */ +#line 3380 "util/configparser.c" /* yacc.c:1646 */ break; - case 288: -#line 962 "./util/configparser.y" /* yacc.c:1646 */ + case 290: +#line 971 "./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) @@ -3369,11 +3389,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3373 "util/configparser.c" /* yacc.c:1646 */ +#line 3393 "util/configparser.c" /* yacc.c:1646 */ break; - case 289: -#line 972 "./util/configparser.y" /* yacc.c:1646 */ + case 291: +#line 981 "./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) @@ -3382,11 +3402,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3386 "util/configparser.c" /* yacc.c:1646 */ +#line 3406 "util/configparser.c" /* yacc.c:1646 */ break; - case 290: -#line 982 "./util/configparser.y" /* yacc.c:1646 */ + case 292: +#line 991 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3398,11 +3418,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3402 "util/configparser.c" /* yacc.c:1646 */ +#line 3422 "util/configparser.c" /* yacc.c:1646 */ break; - case 291: -#line 995 "./util/configparser.y" /* yacc.c:1646 */ + case 293: +#line 1004 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3412,22 +3432,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3416 "util/configparser.c" /* yacc.c:1646 */ +#line 3436 "util/configparser.c" /* yacc.c:1646 */ break; - case 292: -#line 1006 "./util/configparser.y" /* yacc.c:1646 */ + case 294: +#line 1015 "./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 3427 "util/configparser.c" /* yacc.c:1646 */ +#line 3447 "util/configparser.c" /* yacc.c:1646 */ break; - case 293: -#line 1014 "./util/configparser.y" /* yacc.c:1646 */ + case 295: +#line 1023 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3439,11 +3459,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3443 "util/configparser.c" /* yacc.c:1646 */ +#line 3463 "util/configparser.c" /* yacc.c:1646 */ break; - case 294: -#line 1027 "./util/configparser.y" /* yacc.c:1646 */ + case 296: +#line 1036 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3451,11 +3471,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3455 "util/configparser.c" /* yacc.c:1646 */ +#line 3475 "util/configparser.c" /* yacc.c:1646 */ break; - case 295: -#line 1036 "./util/configparser.y" /* yacc.c:1646 */ + case 297: +#line 1045 "./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) @@ -3463,11 +3483,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3467 "util/configparser.c" /* yacc.c:1646 */ +#line 3487 "util/configparser.c" /* yacc.c:1646 */ break; - case 296: -#line 1045 "./util/configparser.y" /* yacc.c:1646 */ + case 298: +#line 1054 "./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) @@ -3475,11 +3495,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3479 "util/configparser.c" /* yacc.c:1646 */ +#line 3499 "util/configparser.c" /* yacc.c:1646 */ break; - case 297: -#line 1054 "./util/configparser.y" /* yacc.c:1646 */ + case 299: +#line 1063 "./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) @@ -3488,11 +3508,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3492 "util/configparser.c" /* yacc.c:1646 */ +#line 3512 "util/configparser.c" /* yacc.c:1646 */ break; - case 298: -#line 1064 "./util/configparser.y" /* yacc.c:1646 */ + case 300: +#line 1073 "./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) @@ -3501,22 +3521,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3505 "util/configparser.c" /* yacc.c:1646 */ +#line 3525 "util/configparser.c" /* yacc.c:1646 */ break; - case 299: -#line 1074 "./util/configparser.y" /* yacc.c:1646 */ + case 301: +#line 1083 "./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 3516 "util/configparser.c" /* yacc.c:1646 */ +#line 3536 "util/configparser.c" /* yacc.c:1646 */ break; - case 300: -#line 1082 "./util/configparser.y" /* yacc.c:1646 */ + case 302: +#line 1091 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3528,11 +3548,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3532 "util/configparser.c" /* yacc.c:1646 */ +#line 3552 "util/configparser.c" /* yacc.c:1646 */ break; - case 301: -#line 1095 "./util/configparser.y" /* yacc.c:1646 */ + case 303: +#line 1104 "./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) @@ -3540,22 +3560,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3544 "util/configparser.c" /* yacc.c:1646 */ +#line 3564 "util/configparser.c" /* yacc.c:1646 */ break; - case 302: -#line 1104 "./util/configparser.y" /* yacc.c:1646 */ + case 304: +#line 1113 "./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 3555 "util/configparser.c" /* yacc.c:1646 */ +#line 3575 "util/configparser.c" /* yacc.c:1646 */ break; - case 303: -#line 1112 "./util/configparser.y" /* yacc.c:1646 */ + case 305: +#line 1121 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3563,22 +3583,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3567 "util/configparser.c" /* yacc.c:1646 */ +#line 3587 "util/configparser.c" /* yacc.c:1646 */ break; - case 304: -#line 1121 "./util/configparser.y" /* yacc.c:1646 */ + case 306: +#line 1130 "./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 3578 "util/configparser.c" /* yacc.c:1646 */ +#line 3598 "util/configparser.c" /* yacc.c:1646 */ break; - case 305: -#line 1129 "./util/configparser.y" /* yacc.c:1646 */ + case 307: +#line 1138 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3590,11 +3610,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3594 "util/configparser.c" /* yacc.c:1646 */ +#line 3614 "util/configparser.c" /* yacc.c:1646 */ break; - case 306: -#line 1142 "./util/configparser.y" /* yacc.c:1646 */ + case 308: +#line 1151 "./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) @@ -3602,21 +3622,21 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3606 "util/configparser.c" /* yacc.c:1646 */ +#line 3626 "util/configparser.c" /* yacc.c:1646 */ break; - case 307: -#line 1151 "./util/configparser.y" /* yacc.c:1646 */ + case 309: +#line 1160 "./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 3616 "util/configparser.c" /* yacc.c:1646 */ +#line 3636 "util/configparser.c" /* yacc.c:1646 */ break; - case 308: -#line 1158 "./util/configparser.y" /* yacc.c:1646 */ + case 310: +#line 1167 "./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) @@ -3625,11 +3645,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3629 "util/configparser.c" /* yacc.c:1646 */ +#line 3649 "util/configparser.c" /* yacc.c:1646 */ break; - case 309: -#line 1168 "./util/configparser.y" /* yacc.c:1646 */ + case 311: +#line 1177 "./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) @@ -3638,11 +3658,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3642 "util/configparser.c" /* yacc.c:1646 */ +#line 3662 "util/configparser.c" /* yacc.c:1646 */ break; - case 310: -#line 1178 "./util/configparser.y" /* yacc.c:1646 */ + case 312: +#line 1187 "./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) @@ -3651,11 +3671,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3655 "util/configparser.c" /* yacc.c:1646 */ +#line 3675 "util/configparser.c" /* yacc.c:1646 */ break; - case 311: -#line 1188 "./util/configparser.y" /* yacc.c:1646 */ + case 313: +#line 1197 "./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) @@ -3664,11 +3684,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3668 "util/configparser.c" /* yacc.c:1646 */ +#line 3688 "util/configparser.c" /* yacc.c:1646 */ break; - case 312: -#line 1198 "./util/configparser.y" /* yacc.c:1646 */ + case 314: +#line 1207 "./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) @@ -3677,11 +3697,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3681 "util/configparser.c" /* yacc.c:1646 */ +#line 3701 "util/configparser.c" /* yacc.c:1646 */ break; - case 313: -#line 1208 "./util/configparser.y" /* yacc.c:1646 */ + case 315: +#line 1217 "./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) @@ -3690,11 +3710,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3694 "util/configparser.c" /* yacc.c:1646 */ +#line 3714 "util/configparser.c" /* yacc.c:1646 */ break; - case 314: -#line 1218 "./util/configparser.y" /* yacc.c:1646 */ + case 316: +#line 1227 "./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) @@ -3703,11 +3723,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3707 "util/configparser.c" /* yacc.c:1646 */ +#line 3727 "util/configparser.c" /* yacc.c:1646 */ break; - case 315: -#line 1228 "./util/configparser.y" /* yacc.c:1646 */ + case 317: +#line 1237 "./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) @@ -3716,41 +3736,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3720 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 316: -#line 1238 "./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 3730 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 317: -#line 1245 "./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 3740 "util/configparser.c" /* yacc.c:1646 */ break; case 318: -#line 1252 "./util/configparser.y" /* yacc.c:1646 */ +#line 1247 "./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))) + 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 3750 "util/configparser.c" /* yacc.c:1646 */ break; case 319: -#line 1259 "./util/configparser.y" /* yacc.c:1646 */ +#line 1254 "./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 3760 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 320: +#line 1261 "./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 3770 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 321: +#line 1268 "./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) @@ -3758,11 +3778,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3762 "util/configparser.c" /* yacc.c:1646 */ +#line 3782 "util/configparser.c" /* yacc.c:1646 */ break; - case 320: -#line 1268 "./util/configparser.y" /* yacc.c:1646 */ + case 322: +#line 1277 "./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) @@ -3770,11 +3790,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3774 "util/configparser.c" /* yacc.c:1646 */ +#line 3794 "util/configparser.c" /* yacc.c:1646 */ break; - case 321: -#line 1277 "./util/configparser.y" /* yacc.c:1646 */ + case 323: +#line 1286 "./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) @@ -3782,21 +3802,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3786 "util/configparser.c" /* yacc.c:1646 */ +#line 3806 "util/configparser.c" /* yacc.c:1646 */ break; - case 322: -#line 1286 "./util/configparser.y" /* yacc.c:1646 */ + case 324: +#line 1295 "./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 3796 "util/configparser.c" /* yacc.c:1646 */ +#line 3816 "util/configparser.c" /* yacc.c:1646 */ break; - case 323: -#line 1293 "./util/configparser.y" /* yacc.c:1646 */ + case 325: +#line 1302 "./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) @@ -3805,11 +3825,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3809 "util/configparser.c" /* yacc.c:1646 */ +#line 3829 "util/configparser.c" /* yacc.c:1646 */ break; - case 324: -#line 1303 "./util/configparser.y" /* yacc.c:1646 */ + case 326: +#line 1312 "./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 && @@ -3825,21 +3845,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 3829 "util/configparser.c" /* yacc.c:1646 */ +#line 3849 "util/configparser.c" /* yacc.c:1646 */ break; - case 325: -#line 1320 "./util/configparser.y" /* yacc.c:1646 */ + case 327: +#line 1329 "./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 3839 "util/configparser.c" /* yacc.c:1646 */ +#line 3859 "util/configparser.c" /* yacc.c:1646 */ break; - case 326: -#line 1327 "./util/configparser.y" /* yacc.c:1646 */ + case 328: +#line 1336 "./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) { @@ -3856,11 +3876,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3860 "util/configparser.c" /* yacc.c:1646 */ +#line 3880 "util/configparser.c" /* yacc.c:1646 */ break; - case 327: -#line 1345 "./util/configparser.y" /* yacc.c:1646 */ + case 329: +#line 1354 "./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) { @@ -3872,11 +3892,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3876 "util/configparser.c" /* yacc.c:1646 */ +#line 3896 "util/configparser.c" /* yacc.c:1646 */ break; - case 328: -#line 1358 "./util/configparser.y" /* yacc.c:1646 */ + case 330: +#line 1367 "./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) { @@ -3888,11 +3908,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3892 "util/configparser.c" /* yacc.c:1646 */ +#line 3912 "util/configparser.c" /* yacc.c:1646 */ break; - case 329: -#line 1371 "./util/configparser.y" /* yacc.c:1646 */ + case 331: +#line 1380 "./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) @@ -3900,11 +3920,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3904 "util/configparser.c" /* yacc.c:1646 */ +#line 3924 "util/configparser.c" /* yacc.c:1646 */ break; - case 330: -#line 1380 "./util/configparser.y" /* yacc.c:1646 */ + case 332: +#line 1389 "./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) @@ -3912,11 +3932,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3916 "util/configparser.c" /* yacc.c:1646 */ +#line 3936 "util/configparser.c" /* yacc.c:1646 */ break; - case 331: -#line 1389 "./util/configparser.y" /* yacc.c:1646 */ + case 333: +#line 1398 "./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) @@ -3924,11 +3944,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3928 "util/configparser.c" /* yacc.c:1646 */ +#line 3948 "util/configparser.c" /* yacc.c:1646 */ break; - case 332: -#line 1398 "./util/configparser.y" /* yacc.c:1646 */ + case 334: +#line 1407 "./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) @@ -3936,11 +3956,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3940 "util/configparser.c" /* yacc.c:1646 */ +#line 3960 "util/configparser.c" /* yacc.c:1646 */ break; - case 333: -#line 1407 "./util/configparser.y" /* yacc.c:1646 */ + case 335: +#line 1416 "./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) @@ -3949,11 +3969,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3953 "util/configparser.c" /* yacc.c:1646 */ +#line 3973 "util/configparser.c" /* yacc.c:1646 */ break; - case 334: -#line 1417 "./util/configparser.y" /* yacc.c:1646 */ + case 336: +#line 1426 "./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) @@ -3962,11 +3982,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3966 "util/configparser.c" /* yacc.c:1646 */ +#line 3986 "util/configparser.c" /* yacc.c:1646 */ break; - case 335: -#line 1427 "./util/configparser.y" /* yacc.c:1646 */ + case 337: +#line 1436 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3976,11 +3996,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3980 "util/configparser.c" /* yacc.c:1646 */ +#line 4000 "util/configparser.c" /* yacc.c:1646 */ break; - case 336: -#line 1438 "./util/configparser.y" /* yacc.c:1646 */ + case 338: +#line 1447 "./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) @@ -3988,11 +4008,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3992 "util/configparser.c" /* yacc.c:1646 */ +#line 4012 "util/configparser.c" /* yacc.c:1646 */ break; - case 337: -#line 1447 "./util/configparser.y" /* yacc.c:1646 */ + case 339: +#line 1456 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4000,11 +4020,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4004 "util/configparser.c" /* yacc.c:1646 */ +#line 4024 "util/configparser.c" /* yacc.c:1646 */ break; - case 338: -#line 1456 "./util/configparser.y" /* yacc.c:1646 */ + case 340: +#line 1465 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4016,11 +4036,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4020 "util/configparser.c" /* yacc.c:1646 */ +#line 4040 "util/configparser.c" /* yacc.c:1646 */ break; - case 339: -#line 1469 "./util/configparser.y" /* yacc.c:1646 */ + case 341: +#line 1478 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4032,11 +4052,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4036 "util/configparser.c" /* yacc.c:1646 */ +#line 4056 "util/configparser.c" /* yacc.c:1646 */ break; - case 340: -#line 1482 "./util/configparser.y" /* yacc.c:1646 */ + case 342: +#line 1491 "./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) @@ -4044,21 +4064,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4048 "util/configparser.c" /* yacc.c:1646 */ +#line 4068 "util/configparser.c" /* yacc.c:1646 */ break; - case 341: -#line 1491 "./util/configparser.y" /* yacc.c:1646 */ + case 343: +#line 1500 "./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 4058 "util/configparser.c" /* yacc.c:1646 */ +#line 4078 "util/configparser.c" /* yacc.c:1646 */ break; - case 342: -#line 1498 "./util/configparser.y" /* yacc.c:1646 */ + case 344: +#line 1507 "./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) @@ -4066,11 +4086,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4070 "util/configparser.c" /* yacc.c:1646 */ +#line 4090 "util/configparser.c" /* yacc.c:1646 */ break; - case 343: -#line 1507 "./util/configparser.y" /* yacc.c:1646 */ + case 345: +#line 1516 "./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) @@ -4078,11 +4098,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4082 "util/configparser.c" /* yacc.c:1646 */ +#line 4102 "util/configparser.c" /* yacc.c:1646 */ break; - case 344: -#line 1516 "./util/configparser.y" /* yacc.c:1646 */ + case 346: +#line 1525 "./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) @@ -4090,11 +4110,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4094 "util/configparser.c" /* yacc.c:1646 */ +#line 4114 "util/configparser.c" /* yacc.c:1646 */ break; - case 345: -#line 1525 "./util/configparser.y" /* yacc.c:1646 */ + case 347: +#line 1534 "./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) @@ -4103,22 +4123,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4107 "util/configparser.c" /* yacc.c:1646 */ +#line 4127 "util/configparser.c" /* yacc.c:1646 */ break; - case 346: -#line 1534 "./util/configparser.y" /* yacc.c:1646 */ + case 348: +#line 1543 "./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 4118 "util/configparser.c" /* yacc.c:1646 */ +#line 4138 "util/configparser.c" /* yacc.c:1646 */ break; - case 347: -#line 1542 "./util/configparser.y" /* yacc.c:1646 */ + case 349: +#line 1551 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4130,22 +4150,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4134 "util/configparser.c" /* yacc.c:1646 */ +#line 4154 "util/configparser.c" /* yacc.c:1646 */ break; - case 348: -#line 1555 "./util/configparser.y" /* yacc.c:1646 */ + case 350: +#line 1564 "./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 4145 "util/configparser.c" /* yacc.c:1646 */ +#line 4165 "util/configparser.c" /* yacc.c:1646 */ break; - case 349: -#line 1563 "./util/configparser.y" /* yacc.c:1646 */ + case 351: +#line 1572 "./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 && @@ -4173,21 +4193,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4177 "util/configparser.c" /* yacc.c:1646 */ +#line 4197 "util/configparser.c" /* yacc.c:1646 */ break; - case 350: -#line 1592 "./util/configparser.y" /* yacc.c:1646 */ + case 352: +#line 1601 "./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 4187 "util/configparser.c" /* yacc.c:1646 */ +#line 4207 "util/configparser.c" /* yacc.c:1646 */ break; - case 351: -#line 1599 "./util/configparser.y" /* yacc.c:1646 */ + case 353: +#line 1608 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4201,11 +4221,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4205 "util/configparser.c" /* yacc.c:1646 */ +#line 4225 "util/configparser.c" /* yacc.c:1646 */ break; - case 352: -#line 1614 "./util/configparser.y" /* yacc.c:1646 */ + case 354: +#line 1623 "./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) @@ -4214,11 +4234,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4218 "util/configparser.c" /* yacc.c:1646 */ +#line 4238 "util/configparser.c" /* yacc.c:1646 */ break; - case 353: -#line 1624 "./util/configparser.y" /* yacc.c:1646 */ + case 355: +#line 1633 "./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) @@ -4227,31 +4247,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4231 "util/configparser.c" /* yacc.c:1646 */ +#line 4251 "util/configparser.c" /* yacc.c:1646 */ break; - case 354: -#line 1634 "./util/configparser.y" /* yacc.c:1646 */ + case 356: +#line 1643 "./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 4241 "util/configparser.c" /* yacc.c:1646 */ +#line 4261 "util/configparser.c" /* yacc.c:1646 */ break; - case 355: -#line 1641 "./util/configparser.y" /* yacc.c:1646 */ + case 357: +#line 1650 "./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 4251 "util/configparser.c" /* yacc.c:1646 */ +#line 4271 "util/configparser.c" /* yacc.c:1646 */ break; - case 356: -#line 1648 "./util/configparser.y" /* yacc.c:1646 */ + case 358: +#line 1657 "./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) @@ -4259,11 +4279,11 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4263 "util/configparser.c" /* yacc.c:1646 */ +#line 4283 "util/configparser.c" /* yacc.c:1646 */ break; - case 357: -#line 1657 "./util/configparser.y" /* yacc.c:1646 */ + case 359: +#line 1666 "./util/configparser.y" /* yacc.c:1646 */ { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -4276,11 +4296,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4280 "util/configparser.c" /* yacc.c:1646 */ +#line 4300 "util/configparser.c" /* yacc.c:1646 */ break; - case 358: -#line 1671 "./util/configparser.y" /* yacc.c:1646 */ + case 360: +#line 1680 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4298,11 +4318,11 @@ yyreduce: } } } -#line 4302 "util/configparser.c" /* yacc.c:1646 */ +#line 4322 "util/configparser.c" /* yacc.c:1646 */ break; - case 359: -#line 1690 "./util/configparser.y" /* yacc.c:1646 */ + case 361: +#line 1699 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4320,11 +4340,11 @@ yyreduce: } } } -#line 4324 "util/configparser.c" /* yacc.c:1646 */ +#line 4344 "util/configparser.c" /* yacc.c:1646 */ break; - case 360: -#line 1709 "./util/configparser.y" /* yacc.c:1646 */ + case 362: +#line 1718 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, @@ -4335,11 +4355,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4339 "util/configparser.c" /* yacc.c:1646 */ +#line 4359 "util/configparser.c" /* yacc.c:1646 */ break; - case 361: -#line 1721 "./util/configparser.y" /* yacc.c:1646 */ + case 363: +#line 1730 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, @@ -4350,11 +4370,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4354 "util/configparser.c" /* yacc.c:1646 */ +#line 4374 "util/configparser.c" /* yacc.c:1646 */ break; - case 362: -#line 1733 "./util/configparser.y" /* yacc.c:1646 */ + case 364: +#line 1742 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, @@ -4365,11 +4385,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4369 "util/configparser.c" /* yacc.c:1646 */ +#line 4389 "util/configparser.c" /* yacc.c:1646 */ break; - case 363: -#line 1745 "./util/configparser.y" /* yacc.c:1646 */ + case 365: +#line 1754 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, @@ -4379,11 +4399,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4383 "util/configparser.c" /* yacc.c:1646 */ +#line 4403 "util/configparser.c" /* yacc.c:1646 */ break; - case 364: -#line 1756 "./util/configparser.y" /* yacc.c:1646 */ + case 366: +#line 1765 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4401,11 +4421,11 @@ yyreduce: } } } -#line 4405 "util/configparser.c" /* yacc.c:1646 */ +#line 4425 "util/configparser.c" /* yacc.c:1646 */ break; - case 365: -#line 1775 "./util/configparser.y" /* yacc.c:1646 */ + case 367: +#line 1784 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4413,11 +4433,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4417 "util/configparser.c" /* yacc.c:1646 */ +#line 4437 "util/configparser.c" /* yacc.c:1646 */ break; - case 366: -#line 1785 "./util/configparser.y" /* yacc.c:1646 */ + case 368: +#line 1794 "./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) @@ -4425,33 +4445,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4429 "util/configparser.c" /* yacc.c:1646 */ +#line 4449 "util/configparser.c" /* yacc.c:1646 */ break; - case 367: -#line 1794 "./util/configparser.y" /* yacc.c:1646 */ + case 369: +#line 1803 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4440 "util/configparser.c" /* yacc.c:1646 */ +#line 4460 "util/configparser.c" /* yacc.c:1646 */ break; - case 368: -#line 1802 "./util/configparser.y" /* yacc.c:1646 */ + case 370: +#line 1811 "./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 4451 "util/configparser.c" /* yacc.c:1646 */ +#line 4471 "util/configparser.c" /* yacc.c:1646 */ break; - case 369: -#line 1810 "./util/configparser.y" /* yacc.c:1646 */ + case 371: +#line 1819 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4463,11 +4483,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4467 "util/configparser.c" /* yacc.c:1646 */ +#line 4487 "util/configparser.c" /* yacc.c:1646 */ break; - case 370: -#line 1823 "./util/configparser.y" /* yacc.c:1646 */ + case 372: +#line 1832 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4479,11 +4499,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4483 "util/configparser.c" /* yacc.c:1646 */ +#line 4503 "util/configparser.c" /* yacc.c:1646 */ break; - case 371: -#line 1836 "./util/configparser.y" /* yacc.c:1646 */ + case 373: +#line 1845 "./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) { @@ -4495,11 +4515,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 4499 "util/configparser.c" /* yacc.c:1646 */ +#line 4519 "util/configparser.c" /* yacc.c:1646 */ break; - case 372: -#line 1849 "./util/configparser.y" /* yacc.c:1646 */ + case 374: +#line 1858 "./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) { @@ -4511,11 +4531,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 4515 "util/configparser.c" /* yacc.c:1646 */ +#line 4535 "util/configparser.c" /* yacc.c:1646 */ break; - case 373: -#line 1862 "./util/configparser.y" /* yacc.c:1646 */ + case 375: +#line 1871 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4523,11 +4543,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4527 "util/configparser.c" /* yacc.c:1646 */ +#line 4547 "util/configparser.c" /* yacc.c:1646 */ break; - case 374: -#line 1871 "./util/configparser.y" /* yacc.c:1646 */ + case 376: +#line 1880 "./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) @@ -4535,11 +4555,11 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4539 "util/configparser.c" /* yacc.c:1646 */ +#line 4559 "util/configparser.c" /* yacc.c:1646 */ break; - case 375: -#line 1880 "./util/configparser.y" /* yacc.c:1646 */ + case 377: +#line 1889 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_low_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4547,11 +4567,11 @@ yyreduce: else cfg_parser->cfg->low_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4551 "util/configparser.c" /* yacc.c:1646 */ +#line 4571 "util/configparser.c" /* yacc.c:1646 */ break; - case 376: -#line 1889 "./util/configparser.y" /* yacc.c:1646 */ + case 378: +#line 1898 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_low_rtt_permil:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4559,11 +4579,11 @@ yyreduce: else cfg_parser->cfg->low_rtt_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4563 "util/configparser.c" /* yacc.c:1646 */ +#line 4583 "util/configparser.c" /* yacc.c:1646 */ break; - case 377: -#line 1898 "./util/configparser.y" /* yacc.c:1646 */ + case 379: +#line 1907 "./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) @@ -4572,11 +4592,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4576 "util/configparser.c" /* yacc.c:1646 */ +#line 4596 "util/configparser.c" /* yacc.c:1646 */ break; - case 378: -#line 1908 "./util/configparser.y" /* yacc.c:1646 */ + case 380: +#line 1917 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4585,11 +4605,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4589 "util/configparser.c" /* yacc.c:1646 */ +#line 4609 "util/configparser.c" /* yacc.c:1646 */ break; - case 379: -#line 1918 "./util/configparser.y" /* yacc.c:1646 */ + case 381: +#line 1927 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -4601,11 +4621,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4605 "util/configparser.c" /* yacc.c:1646 */ +#line 4625 "util/configparser.c" /* yacc.c:1646 */ break; - case 380: -#line 1931 "./util/configparser.y" /* yacc.c:1646 */ + case 382: +#line 1940 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -4617,11 +4637,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4621 "util/configparser.c" /* yacc.c:1646 */ +#line 4641 "util/configparser.c" /* yacc.c:1646 */ break; - case 381: -#line 1944 "./util/configparser.y" /* yacc.c:1646 */ + case 383: +#line 1953 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -4631,11 +4651,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4635 "util/configparser.c" /* yacc.c:1646 */ +#line 4655 "util/configparser.c" /* yacc.c:1646 */ break; - case 382: -#line 1955 "./util/configparser.y" /* yacc.c:1646 */ + case 384: +#line 1964 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -4647,11 +4667,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4651 "util/configparser.c" /* yacc.c:1646 */ +#line 4671 "util/configparser.c" /* yacc.c:1646 */ break; - case 383: -#line 1968 "./util/configparser.y" /* yacc.c:1646 */ + case 385: +#line 1977 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -4661,11 +4681,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4665 "util/configparser.c" /* yacc.c:1646 */ +#line 4685 "util/configparser.c" /* yacc.c:1646 */ break; - case 384: -#line 1979 "./util/configparser.y" /* yacc.c:1646 */ + case 386: +#line 1988 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -4677,11 +4697,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4681 "util/configparser.c" /* yacc.c:1646 */ +#line 4701 "util/configparser.c" /* yacc.c:1646 */ break; - case 385: -#line 1992 "./util/configparser.y" /* yacc.c:1646 */ + case 387: +#line 2001 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -4690,31 +4710,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 4694 "util/configparser.c" /* yacc.c:1646 */ +#line 4714 "util/configparser.c" /* yacc.c:1646 */ break; - case 386: -#line 2002 "./util/configparser.y" /* yacc.c:1646 */ + case 388: +#line 2011 "./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 4704 "util/configparser.c" /* yacc.c:1646 */ +#line 4724 "util/configparser.c" /* yacc.c:1646 */ break; - case 387: -#line 2009 "./util/configparser.y" /* yacc.c:1646 */ + case 389: +#line 2018 "./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 4714 "util/configparser.c" /* yacc.c:1646 */ +#line 4734 "util/configparser.c" /* yacc.c:1646 */ break; - case 388: -#line 2016 "./util/configparser.y" /* yacc.c:1646 */ + case 390: +#line 2025 "./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) @@ -4722,11 +4742,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4726 "util/configparser.c" /* yacc.c:1646 */ +#line 4746 "util/configparser.c" /* yacc.c:1646 */ break; - case 389: -#line 2025 "./util/configparser.y" /* yacc.c:1646 */ + case 391: +#line 2034 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4735,11 +4755,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4739 "util/configparser.c" /* yacc.c:1646 */ +#line 4759 "util/configparser.c" /* yacc.c:1646 */ break; - case 390: -#line 2035 "./util/configparser.y" /* yacc.c:1646 */ + case 392: +#line 2044 "./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) @@ -4748,11 +4768,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4752 "util/configparser.c" /* yacc.c:1646 */ +#line 4772 "util/configparser.c" /* yacc.c:1646 */ break; - case 391: -#line 2045 "./util/configparser.y" /* yacc.c:1646 */ + case 393: +#line 2054 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -4761,31 +4781,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 4765 "util/configparser.c" /* yacc.c:1646 */ +#line 4785 "util/configparser.c" /* yacc.c:1646 */ break; - case 392: -#line 2055 "./util/configparser.y" /* yacc.c:1646 */ + case 394: +#line 2064 "./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 4775 "util/configparser.c" /* yacc.c:1646 */ +#line 4795 "util/configparser.c" /* yacc.c:1646 */ break; - case 393: -#line 2062 "./util/configparser.y" /* yacc.c:1646 */ + case 395: +#line 2071 "./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 4785 "util/configparser.c" /* yacc.c:1646 */ +#line 4805 "util/configparser.c" /* yacc.c:1646 */ break; - case 394: -#line 2069 "./util/configparser.y" /* yacc.c:1646 */ + case 396: +#line 2078 "./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) @@ -4793,11 +4813,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4797 "util/configparser.c" /* yacc.c:1646 */ +#line 4817 "util/configparser.c" /* yacc.c:1646 */ break; - case 395: -#line 2078 "./util/configparser.y" /* yacc.c:1646 */ + case 397: +#line 2087 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4806,11 +4826,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4810 "util/configparser.c" /* yacc.c:1646 */ +#line 4830 "util/configparser.c" /* yacc.c:1646 */ break; - case 396: -#line 2088 "./util/configparser.y" /* yacc.c:1646 */ + case 398: +#line 2097 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -4819,52 +4839,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 4823 "util/configparser.c" /* yacc.c:1646 */ +#line 4843 "util/configparser.c" /* yacc.c:1646 */ break; - case 397: -#line 2098 "./util/configparser.y" /* yacc.c:1646 */ + case 399: +#line 2107 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } -#line 4833 "util/configparser.c" /* yacc.c:1646 */ +#line 4853 "util/configparser.c" /* yacc.c:1646 */ break; - case 398: -#line 2105 "./util/configparser.y" /* yacc.c:1646 */ + case 400: +#line 2114 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(master:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4843 "util/configparser.c" /* yacc.c:1646 */ +#line 4863 "util/configparser.c" /* yacc.c:1646 */ break; - case 399: -#line 2112 "./util/configparser.y" /* yacc.c:1646 */ + case 401: +#line 2121 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(url:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4853 "util/configparser.c" /* yacc.c:1646 */ +#line 4873 "util/configparser.c" /* yacc.c:1646 */ break; - case 400: -#line 2119 "./util/configparser.y" /* yacc.c:1646 */ + case 402: +#line 2128 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4864 "util/configparser.c" /* yacc.c:1646 */ +#line 4884 "util/configparser.c" /* yacc.c:1646 */ break; - case 401: -#line 2127 "./util/configparser.y" /* yacc.c:1646 */ + case 403: +#line 2136 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4873,11 +4893,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4877 "util/configparser.c" /* yacc.c:1646 */ +#line 4897 "util/configparser.c" /* yacc.c:1646 */ break; - case 402: -#line 2137 "./util/configparser.y" /* yacc.c:1646 */ + case 404: +#line 2146 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4886,11 +4906,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4890 "util/configparser.c" /* yacc.c:1646 */ +#line 4910 "util/configparser.c" /* yacc.c:1646 */ break; - case 403: -#line 2147 "./util/configparser.y" /* yacc.c:1646 */ + case 405: +#line 2156 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4899,11 +4919,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4903 "util/configparser.c" /* yacc.c:1646 */ +#line 4923 "util/configparser.c" /* yacc.c:1646 */ break; - case 404: -#line 2157 "./util/configparser.y" /* yacc.c:1646 */ + case 406: +#line 2166 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -4912,11 +4932,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 4916 "util/configparser.c" /* yacc.c:1646 */ +#line 4936 "util/configparser.c" /* yacc.c:1646 */ break; - case 405: -#line 2167 "./util/configparser.y" /* yacc.c:1646 */ + case 407: +#line 2176 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -4945,11 +4965,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4949 "util/configparser.c" /* yacc.c:1646 */ +#line 4969 "util/configparser.c" /* yacc.c:1646 */ break; - case 406: -#line 2197 "./util/configparser.y" /* yacc.c:1646 */ + case 408: +#line 2206 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -4958,22 +4978,22 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 4962 "util/configparser.c" /* yacc.c:1646 */ +#line 4982 "util/configparser.c" /* yacc.c:1646 */ break; - case 407: -#line 2207 "./util/configparser.y" /* yacc.c:1646 */ + case 409: +#line 2216 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 4973 "util/configparser.c" /* yacc.c:1646 */ +#line 4993 "util/configparser.c" /* yacc.c:1646 */ break; - case 408: -#line 2215 "./util/configparser.y" /* yacc.c:1646 */ + case 410: +#line 2224 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { @@ -4981,11 +5001,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4985 "util/configparser.c" /* yacc.c:1646 */ +#line 5005 "util/configparser.c" /* yacc.c:1646 */ break; - case 409: -#line 2224 "./util/configparser.y" /* yacc.c:1646 */ + case 411: +#line 2233 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4999,11 +5019,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5003 "util/configparser.c" /* yacc.c:1646 */ +#line 5023 "util/configparser.c" /* yacc.c:1646 */ break; - case 410: -#line 2239 "./util/configparser.y" /* yacc.c:1646 */ + case 412: +#line 2248 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5011,19 +5031,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5015 "util/configparser.c" /* yacc.c:1646 */ +#line 5035 "util/configparser.c" /* yacc.c:1646 */ break; - case 411: -#line 2248 "./util/configparser.y" /* yacc.c:1646 */ + case 413: +#line 2257 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(remote-control:)\n")); } -#line 5023 "util/configparser.c" /* yacc.c:1646 */ +#line 5043 "util/configparser.c" /* yacc.c:1646 */ break; - case 422: -#line 2259 "./util/configparser.y" /* yacc.c:1646 */ + case 424: +#line 2268 "./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) @@ -5032,11 +5052,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5036 "util/configparser.c" /* yacc.c:1646 */ +#line 5056 "util/configparser.c" /* yacc.c:1646 */ break; - case 423: -#line 2269 "./util/configparser.y" /* yacc.c:1646 */ + case 425: +#line 2278 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5044,21 +5064,21 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5048 "util/configparser.c" /* yacc.c:1646 */ +#line 5068 "util/configparser.c" /* yacc.c:1646 */ break; - case 424: -#line 2278 "./util/configparser.y" /* yacc.c:1646 */ + case 426: +#line 2287 "./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 5058 "util/configparser.c" /* yacc.c:1646 */ +#line 5078 "util/configparser.c" /* yacc.c:1646 */ break; - case 425: -#line 2285 "./util/configparser.y" /* yacc.c:1646 */ + case 427: +#line 2294 "./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) @@ -5067,122 +5087,122 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5071 "util/configparser.c" /* yacc.c:1646 */ +#line 5091 "util/configparser.c" /* yacc.c:1646 */ break; - case 426: -#line 2295 "./util/configparser.y" /* yacc.c:1646 */ + case 428: +#line 2304 "./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 5081 "util/configparser.c" /* yacc.c:1646 */ +#line 5101 "util/configparser.c" /* yacc.c:1646 */ break; - case 427: -#line 2302 "./util/configparser.y" /* yacc.c:1646 */ + case 429: +#line 2311 "./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 5091 "util/configparser.c" /* yacc.c:1646 */ +#line 5111 "util/configparser.c" /* yacc.c:1646 */ break; - case 428: -#line 2309 "./util/configparser.y" /* yacc.c:1646 */ + case 430: +#line 2318 "./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 5101 "util/configparser.c" /* yacc.c:1646 */ +#line 5121 "util/configparser.c" /* yacc.c:1646 */ break; - case 429: -#line 2316 "./util/configparser.y" /* yacc.c:1646 */ + case 431: +#line 2325 "./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 5111 "util/configparser.c" /* yacc.c:1646 */ +#line 5131 "util/configparser.c" /* yacc.c:1646 */ break; - case 430: -#line 2323 "./util/configparser.y" /* yacc.c:1646 */ + case 432: +#line 2332 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnstap:)\n")); } -#line 5119 "util/configparser.c" /* yacc.c:1646 */ +#line 5139 "util/configparser.c" /* yacc.c:1646 */ break; - case 445: -#line 2340 "./util/configparser.y" /* yacc.c:1646 */ + case 447: +#line 2349 "./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 5130 "util/configparser.c" /* yacc.c:1646 */ +#line 5150 "util/configparser.c" /* yacc.c:1646 */ break; - case 446: -#line 2348 "./util/configparser.y" /* yacc.c:1646 */ + case 448: +#line 2357 "./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 5140 "util/configparser.c" /* yacc.c:1646 */ +#line 5160 "util/configparser.c" /* yacc.c:1646 */ break; - case 447: -#line 2355 "./util/configparser.y" /* yacc.c:1646 */ + case 449: +#line 2364 "./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 5151 "util/configparser.c" /* yacc.c:1646 */ +#line 5171 "util/configparser.c" /* yacc.c:1646 */ break; - case 448: -#line 2363 "./util/configparser.y" /* yacc.c:1646 */ + case 450: +#line 2372 "./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 5162 "util/configparser.c" /* yacc.c:1646 */ +#line 5182 "util/configparser.c" /* yacc.c:1646 */ break; - case 449: -#line 2371 "./util/configparser.y" /* yacc.c:1646 */ + case 451: +#line 2380 "./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 5172 "util/configparser.c" /* yacc.c:1646 */ +#line 5192 "util/configparser.c" /* yacc.c:1646 */ break; - case 450: -#line 2378 "./util/configparser.y" /* yacc.c:1646 */ + case 452: +#line 2387 "./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 5182 "util/configparser.c" /* yacc.c:1646 */ +#line 5202 "util/configparser.c" /* yacc.c:1646 */ break; - case 451: -#line 2385 "./util/configparser.y" /* yacc.c:1646 */ + case 453: +#line 2394 "./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) @@ -5190,11 +5210,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5194 "util/configparser.c" /* yacc.c:1646 */ +#line 5214 "util/configparser.c" /* yacc.c:1646 */ break; - case 452: -#line 2394 "./util/configparser.y" /* yacc.c:1646 */ + case 454: +#line 2403 "./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) @@ -5202,11 +5222,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5206 "util/configparser.c" /* yacc.c:1646 */ +#line 5226 "util/configparser.c" /* yacc.c:1646 */ break; - case 453: -#line 2403 "./util/configparser.y" /* yacc.c:1646 */ + case 455: +#line 2412 "./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) @@ -5214,11 +5234,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5218 "util/configparser.c" /* yacc.c:1646 */ +#line 5238 "util/configparser.c" /* yacc.c:1646 */ break; - case 454: -#line 2412 "./util/configparser.y" /* yacc.c:1646 */ + case 456: +#line 2421 "./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) @@ -5226,11 +5246,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5230 "util/configparser.c" /* yacc.c:1646 */ +#line 5250 "util/configparser.c" /* yacc.c:1646 */ break; - case 455: -#line 2421 "./util/configparser.y" /* yacc.c:1646 */ + case 457: +#line 2430 "./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) @@ -5238,11 +5258,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5242 "util/configparser.c" /* yacc.c:1646 */ +#line 5262 "util/configparser.c" /* yacc.c:1646 */ break; - case 456: -#line 2430 "./util/configparser.y" /* yacc.c:1646 */ + case 458: +#line 2439 "./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) @@ -5250,29 +5270,29 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5254 "util/configparser.c" /* yacc.c:1646 */ +#line 5274 "util/configparser.c" /* yacc.c:1646 */ break; - case 457: -#line 2439 "./util/configparser.y" /* yacc.c:1646 */ + case 459: +#line 2448 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(python:)\n")); } -#line 5262 "util/configparser.c" /* yacc.c:1646 */ +#line 5282 "util/configparser.c" /* yacc.c:1646 */ break; - case 461: -#line 2448 "./util/configparser.y" /* yacc.c:1646 */ + case 463: +#line 2457 "./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 5272 "util/configparser.c" /* yacc.c:1646 */ +#line 5292 "util/configparser.c" /* yacc.c:1646 */ break; - case 462: -#line 2454 "./util/configparser.y" /* yacc.c:1646 */ + case 464: +#line 2463 "./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) @@ -5281,21 +5301,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5285 "util/configparser.c" /* yacc.c:1646 */ +#line 5305 "util/configparser.c" /* yacc.c:1646 */ break; - case 463: -#line 2464 "./util/configparser.y" /* yacc.c:1646 */ + case 465: +#line 2473 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); cfg_parser->cfg->log_identity = (yyvsp[0].str); } -#line 5295 "util/configparser.c" /* yacc.c:1646 */ +#line 5315 "util/configparser.c" /* yacc.c:1646 */ break; - case 464: -#line 2471 "./util/configparser.y" /* yacc.c:1646 */ + case 466: +#line 2480 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -5303,31 +5323,31 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 5307 "util/configparser.c" /* yacc.c:1646 */ +#line 5327 "util/configparser.c" /* yacc.c:1646 */ break; - case 465: -#line 2480 "./util/configparser.y" /* yacc.c:1646 */ + case 467: +#line 2489 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 5318 "util/configparser.c" /* yacc.c:1646 */ +#line 5338 "util/configparser.c" /* yacc.c:1646 */ break; - case 466: -#line 2488 "./util/configparser.y" /* yacc.c:1646 */ + case 468: +#line 2497 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnscrypt:)\n")); OUTYY(("\nP(dnscrypt:)\n")); } -#line 5327 "util/configparser.c" /* yacc.c:1646 */ +#line 5347 "util/configparser.c" /* yacc.c:1646 */ break; - case 479: -#line 2505 "./util/configparser.y" /* yacc.c:1646 */ + case 481: +#line 2514 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5335,11 +5355,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5339 "util/configparser.c" /* yacc.c:1646 */ +#line 5359 "util/configparser.c" /* yacc.c:1646 */ break; - case 480: -#line 2515 "./util/configparser.y" /* yacc.c:1646 */ + case 482: +#line 2524 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); @@ -5348,21 +5368,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5352 "util/configparser.c" /* yacc.c:1646 */ +#line 5372 "util/configparser.c" /* yacc.c:1646 */ break; - case 481: -#line 2525 "./util/configparser.y" /* yacc.c:1646 */ + case 483: +#line 2534 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } -#line 5362 "util/configparser.c" /* yacc.c:1646 */ +#line 5382 "util/configparser.c" /* yacc.c:1646 */ break; - case 482: -#line 2532 "./util/configparser.y" /* yacc.c:1646 */ + case 484: +#line 2541 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) @@ -5370,21 +5390,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 5374 "util/configparser.c" /* yacc.c:1646 */ +#line 5394 "util/configparser.c" /* yacc.c:1646 */ break; - case 483: -#line 2541 "./util/configparser.y" /* yacc.c:1646 */ + case 485: +#line 2550 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } -#line 5384 "util/configparser.c" /* yacc.c:1646 */ +#line 5404 "util/configparser.c" /* yacc.c:1646 */ break; - case 484: -#line 2548 "./util/configparser.y" /* yacc.c:1646 */ + case 486: +#line 2557 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) @@ -5392,22 +5412,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 5396 "util/configparser.c" /* yacc.c:1646 */ +#line 5416 "util/configparser.c" /* yacc.c:1646 */ break; - case 485: -#line 2557 "./util/configparser.y" /* yacc.c:1646 */ + case 487: +#line 2566 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5407 "util/configparser.c" /* yacc.c:1646 */ +#line 5427 "util/configparser.c" /* yacc.c:1646 */ break; - case 486: -#line 2565 "./util/configparser.y" /* yacc.c:1646 */ + case 488: +#line 2574 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5419,22 +5439,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5423 "util/configparser.c" /* yacc.c:1646 */ +#line 5443 "util/configparser.c" /* yacc.c:1646 */ break; - case 487: -#line 2578 "./util/configparser.y" /* yacc.c:1646 */ + case 489: +#line 2587 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5434 "util/configparser.c" /* yacc.c:1646 */ +#line 5454 "util/configparser.c" /* yacc.c:1646 */ break; - case 488: -#line 2586 "./util/configparser.y" /* yacc.c:1646 */ + case 490: +#line 2595 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5446,19 +5466,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5450 "util/configparser.c" /* yacc.c:1646 */ +#line 5470 "util/configparser.c" /* yacc.c:1646 */ break; - case 489: -#line 2599 "./util/configparser.y" /* yacc.c:1646 */ + case 491: +#line 2608 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(cachedb:)\n")); } -#line 5458 "util/configparser.c" /* yacc.c:1646 */ +#line 5478 "util/configparser.c" /* yacc.c:1646 */ break; - case 497: -#line 2609 "./util/configparser.y" /* yacc.c:1646 */ + case 499: +#line 2618 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -5471,11 +5491,11 @@ yyreduce: OUTYY(("P(Compiled without cachedb, ignoring)\n")); #endif } -#line 5475 "util/configparser.c" /* yacc.c:1646 */ +#line 5495 "util/configparser.c" /* yacc.c:1646 */ break; - case 498: -#line 2623 "./util/configparser.y" /* yacc.c:1646 */ + case 500: +#line 2632 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -5489,11 +5509,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5493 "util/configparser.c" /* yacc.c:1646 */ +#line 5513 "util/configparser.c" /* yacc.c:1646 */ break; - case 499: -#line 2638 "./util/configparser.y" /* yacc.c:1646 */ + case 501: +#line 2647 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -5504,11 +5524,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5508 "util/configparser.c" /* yacc.c:1646 */ +#line 5528 "util/configparser.c" /* yacc.c:1646 */ break; - case 500: -#line 2650 "./util/configparser.y" /* yacc.c:1646 */ + case 502: +#line 2659 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -5522,11 +5542,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5526 "util/configparser.c" /* yacc.c:1646 */ +#line 5546 "util/configparser.c" /* yacc.c:1646 */ break; - case 501: -#line 2665 "./util/configparser.y" /* yacc.c:1646 */ + case 503: +#line 2674 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -5538,11 +5558,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5542 "util/configparser.c" /* yacc.c:1646 */ +#line 5562 "util/configparser.c" /* yacc.c:1646 */ break; -#line 5546 "util/configparser.c" /* yacc.c:1646 */ +#line 5566 "util/configparser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -5770,7 +5790,7 @@ yyreturn: #endif return yyresult; } -#line 2677 "./util/configparser.y" /* yacc.c:1906 */ +#line 2686 "./util/configparser.y" /* yacc.c:1906 */ /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 6e103cda3..31a0fd902 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -283,7 +283,8 @@ extern int yydebug; VAR_ADDITIONAL_TLS_PORT = 493, VAR_LOW_RTT = 494, VAR_LOW_RTT_PERMIL = 495, - VAR_ALLOW_NOTIFY = 496 + VAR_ALLOW_NOTIFY = 496, + VAR_TLS_WIN_CERT = 497 }; #endif /* Tokens. */ @@ -526,6 +527,7 @@ extern int yydebug; #define VAR_LOW_RTT 494 #define VAR_LOW_RTT_PERMIL 495 #define VAR_ALLOW_NOTIFY 496 +#define VAR_TLS_WIN_CERT 497 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -536,7 +538,7 @@ union YYSTYPE char* str; -#line 540 "util/configparser.h" /* yacc.c:1909 */ +#line 542 "util/configparser.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index a8f8027fe..aa6b71d7a 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -157,7 +157,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM VAR_FOR_UPSTREAM %token VAR_AUTH_ZONE VAR_ZONEFILE VAR_MASTER VAR_URL VAR_FOR_DOWNSTREAM %token VAR_FALLBACK_ENABLED VAR_ADDITIONAL_TLS_PORT VAR_LOW_RTT VAR_LOW_RTT_PERMIL -%token VAR_ALLOW_NOTIFY +%token VAR_ALLOW_NOTIFY VAR_TLS_WIN_CERT %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -249,7 +249,7 @@ content_server: server_num_threads | server_verbosity | server_port | server_ipsecmod_whitelist | server_ipsecmod_strict | server_udp_upstream_without_downstream | server_aggressive_nsec | server_tls_cert_bundle | server_additional_tls_port | server_low_rtt | - server_low_rtt_permil + server_low_rtt_permil | server_tls_win_cert ; stubstart: VAR_STUB_ZONE { @@ -688,6 +688,15 @@ server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG cfg_parser->cfg->tls_cert_bundle = $2; } ; +server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG + { + OUTYY(("P(server_tls_win_cert:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->tls_win_cert = (strcmp($2, "yes")==0); + free($2); + } + ; server_additional_tls_port: VAR_ADDITIONAL_TLS_PORT STRING_ARG { OUTYY(("P(server_additional_tls_port:%s)\n", $2));