diff options
Diffstat (limited to 'sbin/unwind/libunbound/util')
-rw-r--r-- | sbin/unwind/libunbound/util/config_file.c | 84 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/config_file.h | 39 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/configlexer.c | 5729 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/configlexer.lex | 9 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/configparser.h | 417 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/configparser.y | 138 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/data/dname.h | 4 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/data/msgreply.c | 22 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/fptr_wlist.c | 5 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/iana_ports.inc | 5 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/net_help.c | 3 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/net_help.h | 6 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/netevent.c | 126 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/netevent.h | 12 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/shm_side/shm_main.c | 6 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/storage/lookup3.c | 102 | ||||
-rw-r--r-- | sbin/unwind/libunbound/util/ub_event_pluggable.c | 3 |
17 files changed, 3604 insertions, 3106 deletions
diff --git a/sbin/unwind/libunbound/util/config_file.c b/sbin/unwind/libunbound/util/config_file.c index 2fb8d0d2acc..4725e7db68d 100644 --- a/sbin/unwind/libunbound/util/config_file.c +++ b/sbin/unwind/libunbound/util/config_file.c @@ -105,11 +105,14 @@ config_create(void) cfg->do_ip6 = 1; cfg->do_udp = 1; cfg->do_tcp = 1; + cfg->tcp_reuse_timeout = 60 * 1000; /* 60s in milisecs */ + cfg->max_reuse_tcp_queries = 200; cfg->tcp_upstream = 0; cfg->udp_upstream_without_downstream = 0; cfg->tcp_mss = 0; cfg->outgoing_tcp_mss = 0; cfg->tcp_idle_timeout = 30 * 1000; /* 30s in millisecs */ + cfg->tcp_auth_query_timeout = 3 * 1000; /* 3s in millisecs */ cfg->do_tcp_keepalive = 0; cfg->tcp_keepalive_timeout = 120 * 1000; /* 120s in millisecs */ cfg->ssl_service_key = NULL; @@ -235,8 +238,10 @@ config_create(void) cfg->hide_identity = 0; cfg->hide_version = 0; cfg->hide_trustanchor = 0; + cfg->hide_http_user_agent = 0; cfg->identity = NULL; cfg->version = NULL; + cfg->http_user_agent = NULL; cfg->nsid_cfg_str = NULL; cfg->nsid = NULL; cfg->nsid_len = 0; @@ -250,6 +255,7 @@ config_create(void) cfg->val_date_override = 0; cfg->val_sig_skew_min = 3600; /* at least daylight savings trouble */ cfg->val_sig_skew_max = 86400; /* at most timezone settings trouble */ + cfg->val_max_restart = 5; cfg->val_clean_additional = 1; cfg->val_log_level = 0; cfg->val_log_squelch = 0; @@ -262,6 +268,7 @@ config_create(void) cfg->serve_expired_reply_ttl = 30; cfg->serve_expired_client_timeout = 0; cfg->serve_original_ttl = 0; + cfg->zonemd_permissive_mode = 0; cfg->add_holddown = 30*24*3600; cfg->del_holddown = 30*24*3600; cfg->keep_missing = 366*24*3600; /* one year plus a little leeway */ @@ -305,7 +312,7 @@ config_create(void) if(!(cfg->module_conf = strdup("validator iterator"))) goto error_exit; #endif if(!(cfg->val_nsec3_key_iterations = - strdup("1024 150 2048 500 4096 2500"))) goto error_exit; + strdup("1024 150 2048 150 4096 150"))) goto error_exit; #if defined(DNSTAP_SOCKET_PATH) if(!(cfg->dnstap_socket_path = strdup(DNSTAP_SOCKET_PATH))) goto error_exit; @@ -516,7 +523,10 @@ int config_set_option(struct config_file* cfg, const char* opt, udp_upstream_without_downstream) else S_NUMBER_NONZERO("tcp-mss:", tcp_mss) else S_NUMBER_NONZERO("outgoing-tcp-mss:", outgoing_tcp_mss) + else S_NUMBER_NONZERO("tcp-auth-query-timeout:", tcp_auth_query_timeout) else S_NUMBER_NONZERO("tcp-idle-timeout:", tcp_idle_timeout) + else S_NUMBER_NONZERO("max-reuse-tcp-queries:", max_reuse_tcp_queries) + else S_NUMBER_NONZERO("tcp-reuse-timeout:", tcp_reuse_timeout) else S_YNO("edns-tcp-keepalive:", do_tcp_keepalive) else S_NUMBER_NONZERO("edns-tcp-keepalive-timeout:", tcp_keepalive_timeout) else S_YNO("ssl-upstream:", ssl_upstream) @@ -587,8 +597,10 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_YNO("hide-identity:", hide_identity) else S_YNO("hide-version:", hide_version) else S_YNO("hide-trustanchor:", hide_trustanchor) + else S_YNO("hide-http-user-agent:", hide_http_user_agent) else S_STR("identity:", identity) else S_STR("version:", version) + else S_STR("http-user-agent:", http_user_agent) else if(strcmp(opt, "nsid:") == 0) { free(cfg->nsid_cfg_str); if (!(cfg->nsid_cfg_str = strdup(val))) @@ -649,6 +661,7 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_NUMBER_OR_ZERO("serve-expired-client-timeout:", serve_expired_client_timeout) else S_YNO("serve-original-ttl:", serve_original_ttl) else S_STR("val-nsec3-keysize-iterations:", val_nsec3_key_iterations) + else S_YNO("zonemd-permissive-mode:", zonemd_permissive_mode) else S_UNSIGNED_OR_ZERO("add-holddown:", add_holddown) else S_UNSIGNED_OR_ZERO("del-holddown:", del_holddown) else S_UNSIGNED_OR_ZERO("keep-missing:", keep_missing) @@ -756,12 +769,14 @@ int config_set_option(struct config_file* cfg, const char* opt, #endif else if(strcmp(opt, "define-tag:") ==0) { return config_add_tag(cfg, val); - /* val_sig_skew_min and max are copied into val_env during init, - * so this does not update val_env with set_option */ + /* val_sig_skew_min, max and val_max_restart are copied into val_env + * during init so this does not update val_env with set_option */ } else if(strcmp(opt, "val-sig-skew-min:") == 0) { IS_NUMBER_OR_ZERO; cfg->val_sig_skew_min = (int32_t)atoi(val); } else if(strcmp(opt, "val-sig-skew-max:") == 0) { IS_NUMBER_OR_ZERO; cfg->val_sig_skew_max = (int32_t)atoi(val); } + else if(strcmp(opt, "val-max-restart:") == 0) + { IS_NUMBER_OR_ZERO; cfg->val_max_restart = (int32_t)atoi(val); } else if (strcmp(opt, "outgoing-interface:") == 0) { char* d = strdup(val); char** oi = @@ -1005,7 +1020,10 @@ config_get_option(struct config_file* cfg, const char* opt, else O_YNO(opt, "udp-upstream-without-downstream", udp_upstream_without_downstream) else O_DEC(opt, "tcp-mss", tcp_mss) else O_DEC(opt, "outgoing-tcp-mss", outgoing_tcp_mss) + else O_DEC(opt, "tcp-auth-query-timeout", tcp_auth_query_timeout) else O_DEC(opt, "tcp-idle-timeout", tcp_idle_timeout) + else O_DEC(opt, "max-reuse-tcp-queries", max_reuse_tcp_queries) + else O_DEC(opt, "tcp-reuse-timeout", tcp_reuse_timeout) else O_YNO(opt, "edns-tcp-keepalive", do_tcp_keepalive) else O_DEC(opt, "edns-tcp-keepalive-timeout", tcp_keepalive_timeout) else O_YNO(opt, "ssl-upstream", ssl_upstream) @@ -1041,8 +1059,10 @@ config_get_option(struct config_file* cfg, const char* opt, else O_YNO(opt, "hide-identity", hide_identity) else O_YNO(opt, "hide-version", hide_version) else O_YNO(opt, "hide-trustanchor", hide_trustanchor) + else O_YNO(opt, "hide-http-user-agent", hide_http_user_agent) else O_STR(opt, "identity", identity) else O_STR(opt, "version", version) + else O_STR(opt, "http-user-agent", http_user_agent) else O_STR(opt, "nsid", nsid_cfg_str) else O_STR(opt, "target-fetch-policy", target_fetch_policy) else O_YNO(opt, "harden-short-bufsize", harden_short_bufsize) @@ -1070,6 +1090,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_DEC(opt, "serve-expired-client-timeout", serve_expired_client_timeout) else O_YNO(opt, "serve-original-ttl", serve_original_ttl) else O_STR(opt, "val-nsec3-keysize-iterations",val_nsec3_key_iterations) + else O_YNO(opt, "zonemd-permissive-mode", zonemd_permissive_mode) else O_UNS(opt, "add-holddown", add_holddown) else O_UNS(opt, "del-holddown", del_holddown) else O_UNS(opt, "keep-missing", keep_missing) @@ -1178,6 +1199,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_DEC(opt, "fast-server-permil", fast_server_permil) else O_DEC(opt, "val-sig-skew-min", val_sig_skew_min) else O_DEC(opt, "val-sig-skew-max", val_sig_skew_max) + else O_DEC(opt, "val-max-restart", val_max_restart) else O_YNO(opt, "qname-minimisation", qname_minimisation) else O_YNO(opt, "qname-minimisation-strict", qname_minimisation_strict) else O_IFC(opt, "define-tag", num_tags, tagname) @@ -1516,6 +1538,7 @@ config_delete(struct config_file* cfg) #endif free(cfg->identity); free(cfg->version); + free(cfg->http_user_agent); free(cfg->nsid_cfg_str); free(cfg->nsid); free(cfg->module_conf); @@ -1681,6 +1704,37 @@ int cfg_condense_ports(struct config_file* cfg, int** avail) return num; } +void cfg_apply_local_port_policy(struct config_file* cfg, int num) { +(void)cfg; +(void)num; +#ifdef USE_LINUX_IP_LOCAL_PORT_RANGE + { + int i = 0; + FILE* range_fd; + if ((range_fd = fopen(LINUX_IP_LOCAL_PORT_RANGE_PATH, "r")) != NULL) { + int min_port = 0; + int max_port = num - 1; + if (fscanf(range_fd, "%d %d", &min_port, &max_port) == 2) { + for(i=0; i<min_port; i++) { + cfg->outgoing_avail_ports[i] = 0; + } + for(i=max_port+1; i<num; i++) { + cfg->outgoing_avail_ports[i] = 0; + } + } else { + log_err("unexpected port range in %s", + LINUX_IP_LOCAL_PORT_RANGE_PATH); + } + fclose(range_fd); + } else { + log_err("failed to read from file: %s (%s)", + LINUX_IP_LOCAL_PORT_RANGE_PATH, + strerror(errno)); + } + } +#endif +} + /** print error with file and line number */ static void ub_c_error_va_list(const char *fmt, va_list args) { @@ -2605,3 +2659,27 @@ int options_remote_is_address(struct config_file* cfg) return (cfg->control_ifs.first->str[0] != '/'); } +/** see if interface is https, its port number == the https port number */ +int +if_is_https(const char* ifname, const char* port, int https_port) +{ + char* p = strchr(ifname, '@'); + if(!p && atoi(port) == https_port) + return 1; + if(p && atoi(p+1) == https_port) + return 1; + return 0; +} + +/** see if config contains https turned on */ +int cfg_has_https(struct config_file* cfg) +{ + int i; + char portbuf[32]; + snprintf(portbuf, sizeof(portbuf), "%d", cfg->port); + for(i = 0; i<cfg->num_ifs; i++) { + if(if_is_https(cfg->ifs[i], portbuf, cfg->https_port)) + return 1; + } + return 0; +} diff --git a/sbin/unwind/libunbound/util/config_file.h b/sbin/unwind/libunbound/util/config_file.h index 7cf27cc2c3e..aed6812dafe 100644 --- a/sbin/unwind/libunbound/util/config_file.h +++ b/sbin/unwind/libunbound/util/config_file.h @@ -93,6 +93,12 @@ struct config_file { int do_udp; /** do tcp query support. */ int do_tcp; + /** max number of queries on a reuse connection. */ + size_t max_reuse_tcp_queries; + /** timeout for REUSE entries in milliseconds. */ + int tcp_reuse_timeout; + /** timeout in milliseconds for TCP queries to auth servers. */ + int tcp_auth_query_timeout; /** tcp upstream queries (no UDP upstream queries) */ int tcp_upstream; /** udp upstream enabled when no UDP downstream is enabled (do_udp no)*/ @@ -334,10 +340,14 @@ struct config_file { int hide_version; /** do not report trustanchor (trustanchor.unbound) */ int hide_trustanchor; + /** do not report the User-Agent HTTP header */ + int hide_http_user_agent; /** identity, hostname is returned if "". */ char* identity; /** version, package version returned if "". */ char* version; + /** User-Agent for HTTP header */ + char* http_user_agent; /** nsid */ char *nsid_cfg_str; uint8_t *nsid; @@ -367,6 +377,8 @@ struct config_file { int32_t val_sig_skew_min; /** the maximum for signature clock skew */ int32_t val_sig_skew_max; + /** max number of query restarts, number of IPs to probe */ + int32_t val_max_restart; /** this value sets the number of seconds before revalidating bogus */ int bogus_ttl; /** should validator clean additional section for secure msgs */ @@ -396,6 +408,8 @@ struct config_file { int serve_original_ttl; /** nsec3 maximum iterations per key size, string */ char* val_nsec3_key_iterations; + /** if zonemd failures are permitted, only logged */ + int zonemd_permissive_mode; /** autotrust add holddown time, in seconds */ unsigned int add_holddown; /** autotrust del holddown time, in seconds */ @@ -727,6 +741,10 @@ struct config_auth { /** Always reply with this CNAME target if the cname override action is * used */ char* rpz_cname; + /** Check ZONEMD records for this zone */ + int zonemd_check; + /** Reject absence of ZONEMD records, zone must have one */ + int zonemd_reject_absence; }; /** @@ -1173,6 +1191,13 @@ int cfg_mark_ports(const char* str, int allow, int* avail, int num); int cfg_condense_ports(struct config_file* cfg, int** avail); /** + * Apply system specific port range policy. + * @param cfg: config file. + * @param num: size of the array (65536). + */ +void cfg_apply_local_port_policy(struct config_file* cfg, int num); + +/** * Scan ports available * @param avail: the array from cfg. * @param num: size of the array (65536). @@ -1301,5 +1326,19 @@ void w_config_adjust_directory(struct config_file* cfg); /** debug option for unit tests. */ extern int fake_dsa, fake_sha1; +/** see if interface is https, its port number == the https port number */ +int if_is_https(const char* ifname, const char* port, int https_port); + +/** + * Return true if the config contains settings that enable https. + * @param cfg: config information. + * @return true if https ports are used for server. + */ +int cfg_has_https(struct config_file* cfg); + +#ifdef USE_LINUX_IP_LOCAL_PORT_RANGE +#define LINUX_IP_LOCAL_PORT_RANGE_PATH "/proc/sys/net/ipv4/ip_local_port_range" +#endif + #endif /* UTIL_CONFIG_FILE_H */ diff --git a/sbin/unwind/libunbound/util/configlexer.c b/sbin/unwind/libunbound/util/configlexer.c index 6b0f3350839..186860b471f 100644 --- a/sbin/unwind/libunbound/util/configlexer.c +++ b/sbin/unwind/libunbound/util/configlexer.c @@ -5,7 +5,7 @@ #define YY_INT_ALIGNED short int -/* $OpenBSD: configlexer.c,v 1.10 2021/03/16 18:38:05 florian Exp $ */ +/* $OpenBSD: configlexer.c,v 1.11 2021/08/14 07:32:46 florian Exp $ */ /* A lexical scanner generated by flex */ @@ -27,7 +27,7 @@ /* end standard C headers. */ -/* $OpenBSD: configlexer.c,v 1.10 2021/03/16 18:38:05 florian Exp $ */ +/* $OpenBSD: configlexer.c,v 1.11 2021/08/14 07:32:46 florian Exp $ */ /* flex integer type definitions */ @@ -368,8 +368,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 343 -#define YY_END_OF_BUFFER 344 +#define YY_NUM_RULES 352 +#define YY_END_OF_BUFFER 353 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -377,377 +377,391 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[3354] = +static yyconst flex_int16_t yy_accept[3484] = { 0, - 1, 1, 317, 317, 321, 321, 325, 325, 329, 329, - 1, 1, 333, 333, 337, 337, 344, 341, 1, 315, - 315, 342, 2, 342, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 317, 318, 318, 319, - 342, 321, 322, 322, 323, 342, 328, 325, 326, 326, - 327, 342, 329, 330, 330, 331, 342, 340, 316, 2, - 320, 342, 340, 336, 333, 334, 334, 335, 342, 337, - 338, 338, 339, 342, 341, 0, 1, 2, 2, 2, - 2, 341, 341, 341, 341, 341, 341, 341, 341, 341, - - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 317, - 0, 321, 0, 328, 0, 325, 329, 0, 340, 0, - 2, 2, 340, 336, 0, 333, 337, 0, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 340, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 125, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 134, - 341, 341, 341, 341, 341, 341, 341, 340, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 109, 341, 314, 341, - 341, 341, 341, 341, 341, 341, 8, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - - 341, 341, 341, 341, 341, 341, 126, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 139, 341, 340, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - - 341, 341, 341, 341, 341, 341, 341, 307, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 340, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 64, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 239, 341, 14, 15, 341, 19, 18, 341, 341, 223, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - - 341, 132, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 221, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 3, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - - 340, 341, 341, 341, 341, 341, 341, 341, 301, 341, - 341, 300, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 324, - 341, 341, 341, 341, 341, 341, 341, 341, 63, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 67, 341, 270, 341, 341, - - 341, 341, 341, 341, 341, 341, 308, 309, 341, 341, - 341, 341, 341, 341, 341, 68, 341, 341, 133, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 129, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 210, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 21, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 158, 341, 341, 340, 324, 341, - - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 107, 341, 341, 341, 341, 341, 341, 341, 278, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 182, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 157, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 106, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 32, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 33, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 65, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 131, 340, 341, 341, - - 341, 341, 341, 124, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 66, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 243, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 183, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 54, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 261, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 58, 341, 59, - 341, 341, 341, 341, 341, 110, 341, 111, 341, 341, - 341, 341, 108, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - - 341, 341, 7, 341, 340, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 232, 341, 341, 341, 341, 160, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 244, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 45, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 55, 341, 341, 341, 341, 341, 341, 341, - - 341, 341, 341, 341, 341, 341, 341, 202, 341, 201, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 16, 17, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 69, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 209, 341, 341, 341, - 341, 341, 341, 113, 341, 112, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 193, 341, - - 341, 341, 341, 341, 341, 341, 341, 140, 340, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 101, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 89, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 222, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 94, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 62, 341, 341, 341, - - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 196, 197, 341, 341, 341, - 272, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 6, 341, 341, 341, 341, 341, 341, - 291, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 276, 341, - 341, 341, 341, 341, 341, 302, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 42, 341, 341, - 341, 341, 44, 341, 341, 341, 90, 341, 341, 341, - - 341, 341, 52, 341, 341, 341, 341, 341, 341, 341, - 340, 341, 189, 341, 341, 341, 135, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 214, 341, 190, - 341, 341, 341, 229, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 53, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 137, 118, 341, 119, 341, - 341, 341, 117, 341, 341, 341, 341, 341, 341, 341, - 341, 155, 341, 341, 50, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - - 341, 260, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 191, 341, 341, 341, 341, 341, 194, 341, 200, - 341, 341, 341, 341, 341, 228, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 105, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 130, 341, 341, 341, 341, 341, 341, 341, 60, - 341, 341, 341, 26, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 20, 341, 341, 341, 341, 341, 341, - 27, 36, 341, 165, 341, 341, 341, 341, 341, 341, - - 341, 341, 341, 341, 341, 341, 341, 340, 341, 341, - 341, 341, 341, 341, 77, 79, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 280, - 341, 341, 341, 341, 240, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 120, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 154, 341, 46, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 295, 341, 341, 341, 341, 341, 341, 341, 341, - - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 159, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 289, 341, 341, 341, 220, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 305, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 176, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 114, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 171, - 341, 184, 341, 341, 341, 341, 340, 341, 143, 341, - 341, 341, 341, 341, 100, 341, 341, 341, 341, 212, - - 341, 341, 341, 341, 341, 341, 230, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 252, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 136, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 175, - 341, 341, 341, 341, 341, 341, 80, 341, 81, 341, - 341, 341, 341, 341, 61, 298, 341, 341, 341, 341, - 341, 88, 185, 341, 203, 341, 233, 341, 341, 195, - 273, 341, 341, 341, 341, 341, 73, 341, 187, 341, - 341, 341, 341, 341, 9, 341, 341, 341, 341, 341, - - 104, 341, 341, 341, 341, 265, 341, 341, 341, 341, - 211, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 340, 341, 341, - 341, 341, 174, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 161, 341, 279, 341, 341, 341, 341, - 341, 251, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 224, 341, 341, 341, 341, 341, 271, - - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 299, 341, 186, 341, 341, 341, 341, 341, 341, 341, - 72, 74, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 103, 341, 341, 341, 341, 263, 341, 341, 341, - 341, 275, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 216, 34, 28, 30, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 35, 341, 29, - 31, 341, 341, 341, 341, 341, 341, 341, 341, 99, - - 341, 341, 341, 341, 341, 341, 340, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 218, 215, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 71, 341, - 341, 341, 138, 341, 121, 341, 341, 341, 341, 341, - 341, 341, 341, 156, 47, 341, 341, 341, 332, 13, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 293, 341, 296, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 12, 341, 341, 22, 341, 341, 341, - 341, 341, 269, 341, 341, 341, 341, 277, 341, 341, - - 341, 75, 341, 226, 341, 341, 341, 341, 341, 217, - 341, 341, 70, 341, 341, 341, 341, 23, 341, 43, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 170, 169, 332, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 219, 213, 341, 231, 341, 341, - 281, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 82, 341, 341, 341, 341, 264, 341, - 341, 341, 341, 199, 341, 341, 341, 341, 225, 341, - - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 303, 304, 167, 341, 341, 76, 341, 341, 341, 341, - 177, 341, 341, 341, 115, 116, 341, 341, 341, 341, - 162, 341, 164, 341, 204, 341, 341, 341, 341, 168, - 341, 341, 234, 341, 341, 341, 341, 341, 341, 341, - 145, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 242, 341, 341, 341, 341, 341, 341, - 341, 312, 341, 24, 341, 274, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 86, 205, 341, 341, 262, 341, 297, 341, 198, 341, - - 341, 341, 341, 56, 341, 341, 341, 341, 341, 341, - 4, 341, 341, 341, 341, 128, 144, 341, 341, 341, - 181, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 237, 37, 38, 341, - 341, 341, 341, 341, 341, 341, 282, 341, 341, 341, - 341, 341, 341, 341, 250, 341, 341, 341, 341, 341, - 341, 341, 341, 208, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 85, 341, 57, 268, - 341, 238, 341, 341, 341, 341, 11, 341, 341, 341, - 341, 341, 341, 341, 341, 127, 341, 341, 341, 341, - - 206, 91, 341, 40, 341, 341, 341, 341, 341, 341, - 341, 341, 173, 341, 341, 341, 341, 341, 147, 341, - 341, 341, 341, 241, 341, 341, 341, 341, 341, 249, - 341, 341, 341, 341, 141, 341, 341, 341, 122, 123, - 341, 341, 341, 93, 97, 92, 341, 341, 341, 341, - 83, 341, 341, 341, 341, 341, 10, 341, 341, 341, - 341, 341, 266, 306, 341, 341, 341, 341, 311, 39, - 341, 341, 341, 341, 341, 172, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 98, - - 96, 341, 51, 341, 341, 84, 294, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 192, 341, 341, 341, - 341, 341, 207, 341, 341, 341, 341, 341, 341, 341, - 341, 163, 78, 341, 341, 341, 341, 341, 283, 341, - 341, 341, 341, 341, 341, 341, 246, 341, 341, 245, - 142, 341, 341, 95, 48, 341, 148, 149, 152, 153, - 150, 151, 87, 292, 341, 341, 267, 341, 341, 341, - 341, 166, 341, 341, 341, 341, 341, 236, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 179, 178, - - 41, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 290, 341, 341, 341, 341, 102, 341, - 235, 341, 259, 287, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 313, 341, 49, 5, 341, - 341, 227, 341, 341, 288, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 247, 25, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 248, 341, - 341, 341, 146, 341, 341, 341, 341, 341, 341, 341, - 341, 180, 341, 188, 341, 341, 341, 341, 341, 341, - - 341, 341, 341, 284, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 310, 341, 341, 255, 341, 341, 341, 341, 341, - 285, 341, 341, 341, 341, 341, 341, 286, 341, 341, - 341, 253, 341, 256, 257, 341, 341, 341, 341, 341, - 254, 258, 0 + 1, 1, 326, 326, 330, 330, 334, 334, 338, 338, + 1, 1, 342, 342, 346, 346, 353, 350, 1, 324, + 324, 351, 2, 351, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 326, 327, 327, 328, + 351, 330, 331, 331, 332, 351, 337, 334, 335, 335, + 336, 351, 338, 339, 339, 340, 351, 349, 325, 2, + 329, 351, 349, 345, 342, 343, 343, 344, 351, 346, + 347, 347, 348, 351, 350, 0, 1, 2, 2, 2, + 2, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 326, + 0, 330, 0, 337, 0, 334, 338, 0, 349, 0, + 2, 2, 349, 345, 0, 342, 346, 0, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 349, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 128, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 137, + 350, 350, 350, 350, 350, 350, 350, 349, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 112, 350, 323, + 350, 350, 350, 350, 350, 350, 350, 8, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 129, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 142, 350, 350, 349, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 316, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 349, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 67, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 248, 350, 14, 15, 350, 19, 18, 350, + 350, 232, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 135, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 230, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 3, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 349, + 350, 350, 350, 350, 350, 350, 350, 310, 350, 350, + 309, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 333, 350, 350, 350, 350, 350, 350, 350, 350, 66, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 70, 350, 279, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 317, 318, + 350, 350, 350, 350, 350, 350, 350, 71, 350, 350, + 136, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 132, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 219, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 21, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 162, + 350, 350, 350, 350, 350, 349, 333, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 110, 350, + 350, 350, 350, 350, 350, 350, 287, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 188, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 161, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 109, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 35, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 36, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 68, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 134, 350, 350, 350, 349, 350, 350, 350, 350, 350, + 127, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 69, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 252, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 189, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 57, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 270, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 61, 350, 62, + + 350, 350, 350, 350, 350, 113, 350, 114, 350, 350, + 350, 350, 111, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 7, 350, 350, 350, 350, + 349, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 241, + 350, 350, 350, 350, 165, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 253, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 48, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 58, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 211, 350, 210, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 16, 17, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 72, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 218, 350, 350, 350, 350, + 350, 350, 116, 350, 115, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 202, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 143, + 350, 350, 350, 349, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 104, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 92, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 231, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 97, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 65, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 205, 206, 350, 350, 350, 281, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 6, 350, 350, 350, 350, 350, 350, 300, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 285, 350, 350, 350, + 350, 350, 350, 311, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 45, 350, 350, + 350, 350, 47, 350, 350, 350, 93, 350, 350, 350, + 350, 350, 55, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 349, 350, 198, 350, 350, 350, + 138, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 223, 350, 199, 350, 350, 350, 238, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 56, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 140, + 121, 350, 122, 350, 350, 350, 120, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 158, 350, 350, 53, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 269, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 200, 350, 350, + 350, 350, 350, 203, 350, 209, 350, 350, 350, 350, + 350, 350, 237, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 108, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 133, 350, + 350, 350, 350, 350, 350, 350, 63, 350, 350, 350, + 29, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 20, 350, 350, 350, 350, 350, 350, 30, + 39, 350, 170, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 196, 350, 350, + 349, 350, 350, 350, 350, 350, 350, 80, 82, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 289, 350, 350, 350, 350, 249, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 123, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 157, 350, 49, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 304, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 164, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 298, + + 350, 350, 350, 229, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 314, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 182, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 117, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 177, 350, 190, + 350, 350, 350, 350, 350, 350, 350, 349, 350, 146, + 350, 350, 350, 350, 350, 103, 350, 350, 350, 350, + 221, 350, 350, 350, 350, 350, 350, 239, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 261, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 139, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 181, 350, 350, 350, 350, 350, 350, 83, + 350, 84, 350, 350, 350, 350, 350, 64, 307, 350, + 350, 350, 350, 350, 91, 191, 350, 212, 350, 242, + 350, 350, 204, 282, 350, 350, 350, 350, 350, 350, + 76, 350, 193, 350, 350, 350, 350, 350, 9, 350, + 350, 350, 350, 350, 107, 350, 350, 350, 350, 274, + 350, 350, 350, 350, 220, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 349, 350, 350, 350, + 350, 180, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 166, 350, 288, 350, 350, 350, 350, 350, + 260, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 233, 350, 350, 350, 350, 350, 280, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 163, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 308, 350, 192, 350, 350, 350, 350, 350, 350, + 350, 350, 75, 77, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 106, 350, 350, 350, 350, 272, 350, + 350, 350, 350, 284, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 225, 37, 31, 33, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 38, 350, 32, 34, 350, 350, 350, 350, 350, + 350, 350, 350, 102, 350, 176, 350, 350, 350, 350, + + 350, 350, 350, 349, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 227, 224, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 74, 350, 350, 350, 141, + 350, 124, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 159, 50, 350, 350, 350, 341, 13, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 302, 350, + 305, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 12, 350, 350, 22, 350, 350, 350, 350, + 350, 278, 350, 350, 350, 350, 286, 350, 350, 350, + + 78, 350, 235, 350, 350, 350, 350, 350, 226, 350, + 350, 73, 350, 350, 350, 350, 350, 23, 350, 350, + 46, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 175, 174, 350, 350, 341, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 228, 222, 350, + 240, 350, 350, 290, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 85, 350, 350, + 350, 350, 273, 350, 350, 350, 350, 208, 350, 350, + + 350, 350, 350, 234, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 312, 313, 172, 350, 350, + 79, 350, 350, 350, 350, 183, 350, 350, 350, 118, + 119, 350, 350, 350, 25, 350, 350, 167, 350, 169, + 350, 213, 350, 350, 350, 350, 173, 350, 350, 350, + 350, 243, 350, 350, 350, 350, 350, 350, 350, 148, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 251, 350, 350, 350, 350, 350, 350, 350, + 321, 350, 27, 350, 283, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + + 89, 214, 350, 350, 271, 350, 306, 350, 207, 350, + 350, 350, 350, 350, 59, 350, 350, 350, 350, 350, + 350, 4, 350, 350, 350, 350, 131, 147, 350, 350, + 350, 187, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 246, 40, 41, 350, 350, 350, 350, 350, 350, 350, + 291, 350, 350, 350, 350, 350, 350, 350, 259, 350, + 350, 350, 350, 350, 350, 350, 350, 217, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 88, 350, 60, 277, 350, 247, 350, 350, 350, + + 350, 350, 11, 350, 350, 350, 350, 350, 350, 350, + 350, 130, 350, 350, 350, 350, 215, 94, 350, 350, + 43, 350, 350, 350, 350, 350, 350, 350, 350, 179, + 350, 350, 350, 350, 350, 350, 350, 150, 350, 350, + 350, 350, 250, 350, 350, 350, 350, 350, 258, 350, + 350, 350, 350, 144, 350, 350, 350, 125, 126, 350, + 350, 350, 96, 100, 95, 160, 350, 350, 350, 350, + 86, 350, 350, 350, 350, 350, 350, 10, 350, 350, + 350, 350, 350, 275, 315, 350, 350, 350, 350, 350, + 320, 42, 350, 350, 350, 350, 350, 178, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 101, 99, 350, 54, 350, 350, 87, + 303, 350, 350, 350, 350, 24, 350, 350, 350, 350, + 350, 201, 350, 350, 350, 350, 350, 216, 350, 350, + 350, 350, 350, 350, 350, 350, 197, 350, 350, 168, + 81, 350, 350, 350, 350, 350, 292, 350, 350, 350, + 350, 350, 350, 350, 255, 350, 350, 254, 145, 350, + 350, 98, 51, 350, 151, 152, 155, 156, 153, 154, + 90, 301, 350, 350, 276, 350, 350, 350, 26, 350, + + 171, 350, 350, 350, 350, 195, 350, 245, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 185, 184, + 44, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 299, 350, 350, 350, 350, 105, 350, + 244, 350, 268, 296, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 322, 350, 52, 5, 350, + 350, 236, 350, 350, 297, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 256, 28, 350, 350, 350, 350, + + 350, 350, 350, 350, 350, 350, 350, 350, 257, 350, + 350, 350, 149, 350, 350, 350, 350, 350, 350, 350, + 350, 186, 350, 194, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 293, 350, 350, 350, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 350, 319, 350, 350, 264, 350, 350, 350, 350, 350, + 294, 350, 350, 350, 350, 350, 350, 295, 350, 350, + 350, 262, 350, 265, 266, 350, 350, 350, 350, 350, + 263, 267, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -790,17 +804,17 @@ static yyconst flex_int32_t yy_meta[41] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[3372] = +static yyconst flex_int16_t yy_base[3502] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 96, 118, 124, 136, 4327, 4282, 81, 6547, - 6547, 6547, 129, 52, 130, 63, 131, 152, 70, 140, + 90, 112, 96, 118, 124, 136, 5204, 5022, 81, 6793, + 6793, 6793, 129, 52, 130, 63, 131, 152, 70, 140, 149, 156, 57, 88, 76, 173, 175, 95, 197, 145, - 185, 199, 208, 213, 178, 123, 4186, 6547, 6547, 6547, - 107, 4109, 6547, 6547, 6547, 154, 4045, 3722, 6547, 6547, - 6547, 245, 3578, 6547, 6547, 6547, 163, 3220, 6547, 249, - 6547, 253, 148, 2696, 2594, 6547, 6547, 6547, 257, 2157, - 6547, 6547, 6547, 233, 1707, 263, 201, 0, 267, 0, + 185, 199, 208, 213, 178, 123, 4580, 6793, 6793, 6793, + 107, 3835, 6793, 6793, 6793, 154, 3459, 3338, 6793, 6793, + 6793, 245, 3159, 6793, 6793, 6793, 163, 2930, 6793, 249, + 6793, 253, 148, 2502, 2483, 6793, 6793, 6793, 257, 2236, + 6793, 6793, 6793, 233, 1695, 263, 201, 0, 267, 0, 0, 165, 191, 221, 252, 205, 181, 265, 92, 261, 216, 263, 271, 272, 210, 279, 274, 282, 278, 291, @@ -808,8 +822,8 @@ static yyconst flex_int16_t yy_base[3372] = 317, 311, 315, 319, 321, 331, 327, 332, 336, 322, 339, 337, 346, 345, 347, 348, 353, 351, 357, 284, 358, 359, 369, 360, 380, 365, 381, 379, 375, 366, - 367, 389, 390, 394, 393, 395, 396, 403, 404, 1665, - 419, 1172, 422, 924, 429, 854, 832, 433, 781, 437, + 367, 389, 390, 394, 393, 395, 396, 403, 404, 1436, + 419, 1297, 422, 1003, 429, 930, 888, 433, 775, 437, 441, 0, 433, 705, 447, 479, 287, 452, 411, 445, 426, 446, 447, 448, 449, 450, 451, 453, 452, 456, 470, 234, 463, 473, 481, 479, 476, 483, 486, 487, @@ -828,719 +842,749 @@ static yyconst flex_int16_t yy_base[3372] = 697, 700, 708, 704, 713, 712, 721, 716, 722, 719, 731, 732, 727, 717, 728, 729, 733, 736, 730, 740, 738, 741, 745, 743, 750, 752, 760, 755, 756, 771, - 763, 766, 762, 773, 774, 769, 775, 793, 798, 799, - 786, 800, 801, 804, 803, 805, 807, 808, 809, 818, - 811, 823, 815, 824, 825, 829, 836, 834, 6547, 831, - 833, 847, 848, 849, 852, 765, 856, 858, 839, 868, - 864, 861, 870, 892, 865, 878, 869, 871, 874, 6547, - 887, 880, 916, 882, 889, 902, 903, 900, 904, 905, - 917, 910, 933, 850, 914, 922, 943, 939, 925, 938, - - 940, 907, 941, 948, 949, 946, 951, 953, 960, 952, - 957, 959, 971, 961, 970, 972, 965, 974, 980, 985, - 987, 992, 975, 984, 995, 978, 990, 998, 1008, 1003, - 1001, 1009, 1012, 1015, 1023, 1019, 1027, 1028, 1002, 1029, - 1030, 1035, 1031, 1038, 1041, 1039, 1042, 1051, 1049, 1047, - 1048, 1054, 1055, 1056, 1058, 1061, 1064, 1063, 1068, 1072, - 1066, 1073, 1079, 1067, 1085, 1077, 6547, 1089, 6547, 1080, - 1083, 1087, 1092, 1093, 1094, 1095, 6547, 1097, 1100, 1102, - 1105, 1109, 1111, 1110, 1116, 1112, 1123, 1124, 1125, 1128, - 1135, 1130, 1133, 1138, 1137, 1140, 1141, 1144, 1142, 1147, - - 1149, 1148, 1154, 1155, 1158, 1175, 6547, 1157, 1167, 1162, - 1159, 1168, 1169, 1187, 1185, 1188, 1186, 1190, 1203, 1198, - 1204, 1206, 1207, 1160, 1210, 1212, 1214, 1216, 1217, 1218, - 1219, 1221, 1222, 1223, 1225, 1224, 1228, 6547, 1226, 1236, - 1247, 1242, 1245, 1246, 1248, 1249, 1161, 1251, 1250, 1106, - 517, 1253, 1257, 1258, 1259, 1272, 1267, 1270, 1268, 1269, - 1275, 1274, 1276, 1278, 1287, 1283, 1289, 1291, 1299, 1298, - 1301, 1308, 1310, 1303, 1305, 1311, 1307, 1306, 1313, 1315, - 1322, 1316, 1319, 1326, 1329, 1328, 1331, 1335, 1320, 1336, - 1333, 1341, 1342, 1343, 1344, 1351, 1350, 1346, 1358, 1353, - - 1356, 1354, 1352, 1373, 1374, 1363, 1365, 6547, 1381, 1367, - 1382, 1383, 1384, 1388, 1390, 1386, 1392, 1393, 1394, 1396, - 1397, 1399, 1403, 1404, 1405, 1406, 1408, 1419, 1416, 1411, - 1427, 1426, 1428, 1418, 1430, 1432, 1431, 1440, 1438, 1441, - 1439, 1445, 1446, 1453, 1448, 1449, 1454, 1463, 1456, 1455, - 1460, 1458, 1466, 1469, 1468, 1483, 1472, 1480, 1488, 1489, - 1479, 1491, 1481, 1492, 1496, 1497, 1498, 1499, 1501, 1508, - 1503, 1510, 1505, 1509, 1511, 1506, 1522, 1512, 1523, 1526, - 1530, 1513, 1528, 1531, 1533, 1536, 1537, 1538, 1539, 1541, - 1545, 1543, 1549, 1548, 1550, 1554, 1560, 1561, 1563, 1564, - - 1567, 1568, 1571, 1570, 1573, 1581, 1572, 1582, 1584, 1585, - 1587, 1588, 1592, 1591, 1598, 1595, 1601, 1603, 1605, 1604, - 1607, 1611, 1614, 1616, 1608, 6547, 1615, 1628, 1623, 1626, - 1624, 1627, 1629, 1637, 1632, 1635, 1633, 1638, 1639, 1664, - 6547, 1641, 6547, 6547, 1644, 6547, 6547, 1645, 1649, 6547, - 1662, 1648, 1658, 1646, 1670, 1677, 1679, 1667, 1675, 1660, - 1687, 1691, 1694, 1696, 1682, 1697, 1688, 1702, 1708, 1653, - 1704, 1705, 1711, 1721, 1716, 1724, 1718, 1726, 1727, 1729, - 1732, 1736, 1738, 1740, 1739, 1743, 1744, 1745, 1747, 1746, - 1749, 1752, 1755, 1756, 1753, 1758, 1759, 1774, 1772, 1761, - - 1779, 6547, 1775, 1782, 1789, 1785, 1792, 1784, 1788, 1791, - 1764, 1796, 1793, 1797, 1798, 1800, 1802, 1805, 1804, 1809, - 1810, 1806, 1812, 1822, 1813, 6547, 1817, 1818, 1824, 1825, - 1828, 1831, 1833, 1829, 1835, 1836, 1839, 1847, 1849, 1840, - 1842, 1844, 1851, 1854, 1856, 6547, 1862, 1858, 1863, 1865, - 1866, 1868, 1869, 1871, 1874, 1873, 1876, 1877, 1878, 1879, - 1886, 1883, 1885, 1890, 1891, 1895, 1900, 1902, 1904, 1906, - 1908, 1910, 1911, 1912, 1913, 1915, 1916, 1924, 1927, 1923, - 1928, 1925, 1920, 1944, 1947, 1929, 1931, 1942, 1943, 1945, - 1951, 1955, 1953, 1946, 1957, 1965, 1958, 1961, 1963, 1967, - - 1974, 1969, 1971, 1976, 1979, 1980, 1982, 1983, 6547, 1985, - 1989, 6547, 1986, 1988, 1990, 2012, 1991, 1993, 1995, 2005, - 1994, 2014, 1998, 2006, 2022, 2016, 2032, 2025, 2024, 2035, - 2029, 2037, 2036, 2040, 2041, 2043, 2046, 2047, 2053, 2049, - 2063, 2067, 2066, 2073, 2075, 2050, 2058, 2062, 2081, 2071, - 2074, 2070, 2076, 2085, 2091, 2090, 2078, 2093, 2094, 2099, - 2103, 2104, 2102, 2105, 2106, 2108, 2111, 2116, 2117, 6547, - 2124, 2125, 2119, 2127, 2121, 2135, 2131, 2130, 6547, 2133, - 2139, 2140, 2147, 2143, 2144, 2145, 2146, 2151, 2153, 2155, - 2159, 2160, 2158, 2154, 2176, 6547, 2161, 6547, 2172, 2162, - - 2174, 2175, 2178, 2179, 2180, 2183, 6547, 6547, 2187, 2181, - 2197, 2201, 2191, 2184, 2202, 6547, 2203, 2210, 6547, 2207, - 2213, 2206, 2205, 2212, 2214, 2217, 2218, 2227, 2222, 2229, - 2224, 2226, 2234, 6547, 2235, 2236, 2240, 2241, 2237, 2243, - 2244, 2250, 2247, 6547, 2254, 2251, 2256, 2264, 2266, 2261, - 2263, 2268, 2272, 2269, 2274, 2275, 2276, 2277, 2284, 2286, - 2283, 2289, 2291, 2298, 6547, 2282, 2285, 2303, 2299, 2302, - 2306, 2307, 2308, 2309, 2310, 2311, 1996, 2312, 2318, 2319, - 2320, 2327, 2329, 2322, 2325, 2333, 2324, 2334, 2335, 2342, - 2340, 2341, 2344, 2345, 6547, 2346, 2352, 2349, 171, 2353, - - 2356, 2354, 2355, 2359, 2362, 2357, 2378, 2379, 2364, 2376, - 2382, 2383, 2375, 2385, 2386, 2387, 2374, 2390, 2392, 2394, - 6547, 2396, 2398, 2400, 2401, 2403, 2404, 2406, 6547, 2410, - 2426, 2423, 2430, 2408, 2405, 2431, 2417, 2421, 2432, 2433, - 2435, 2437, 2440, 2442, 2444, 2443, 6547, 2447, 2448, 2452, - 2450, 2458, 2460, 2459, 2451, 2461, 2465, 2467, 2471, 2473, - 2469, 2472, 2474, 2475, 2477, 2482, 2478, 2485, 2487, 2488, - 2489, 2490, 2492, 2494, 2499, 2500, 6547, 2507, 2506, 2504, - 2509, 2510, 2512, 2522, 2513, 2532, 2515, 2523, 2516, 2535, - 2538, 2540, 2524, 2548, 2544, 2549, 2541, 2558, 2555, 2559, - - 2562, 2556, 2565, 2567, 2568, 2569, 2571, 2573, 2574, 2575, - 2576, 2584, 2591, 2581, 2592, 2590, 2595, 2583, 2601, 2614, - 2598, 6547, 2603, 2605, 2613, 2615, 2622, 2617, 2618, 2623, - 2619, 2625, 2627, 2629, 2630, 2638, 2635, 2637, 2639, 2642, - 2641, 2643, 2649, 2650, 2651, 2654, 2658, 2660, 2662, 2663, - 6547, 2664, 2666, 2669, 2670, 2673, 2674, 2678, 2680, 2682, - 2683, 2684, 2686, 2689, 2690, 2691, 2692, 2698, 2699, 2695, - 6547, 2700, 2702, 2710, 2706, 2714, 2708, 2718, 2721, 2722, - 2725, 2728, 2712, 2729, 2731, 2732, 6547, 2740, 2742, 2739, - 2743, 2741, 2746, 2747, 2749, 2751, 6547, 2752, 2753, 2754, - - 2761, 2762, 2757, 6547, 2766, 2764, 2759, 2768, 2769, 2772, - 2774, 2775, 2770, 2780, 2782, 2789, 2796, 2783, 2793, 6547, - 2785, 2803, 2791, 2799, 2807, 2787, 2810, 2811, 2812, 2813, - 2814, 2818, 6547, 2827, 2819, 2824, 2834, 2830, 2831, 2836, - 2837, 2838, 2840, 2839, 2841, 2844, 6547, 2847, 2845, 2848, - 2850, 2852, 2853, 2855, 2868, 2860, 2865, 2867, 2870, 2873, - 2875, 2877, 2869, 2878, 2879, 2880, 2886, 2890, 2891, 2892, - 2895, 2899, 2904, 2901, 2903, 2907, 2906, 2908, 2909, 2916, - 2917, 2924, 2919, 2925, 6547, 2928, 2930, 2923, 2921, 2931, - 2933, 2935, 2937, 2940, 2936, 2938, 2948, 2945, 2942, 2955, - - 2958, 2951, 2962, 2960, 2964, 2965, 2967, 2966, 2968, 2969, - 2976, 2973, 2975, 2986, 2977, 2984, 2995, 2981, 2991, 2992, - 2993, 2994, 2982, 2998, 3004, 2999, 2997, 3006, 3007, 3015, - 3018, 3021, 3020, 3009, 3023, 3027, 3028, 6547, 3031, 3033, - 3029, 3035, 3036, 3042, 3043, 3045, 3046, 3037, 3051, 3053, - 3054, 3059, 3060, 3062, 3063, 3070, 3066, 6547, 3067, 6547, - 3068, 3069, 3072, 3081, 3076, 6547, 3087, 6547, 3077, 3091, - 3082, 3084, 6547, 3092, 3088, 3093, 3103, 3094, 3097, 3101, - 3105, 3099, 3106, 3112, 3111, 3115, 3114, 3116, 3122, 3117, - 3119, 3127, 3125, 3134, 3124, 3126, 3141, 3135, 3138, 3143, - - 3144, 3145, 6547, 3152, 3148, 3153, 3154, 3155, 3156, 3158, - 3159, 3161, 3162, 3165, 3173, 3167, 3179, 3169, 3178, 3181, - 3193, 3177, 3194, 6547, 3190, 3192, 3195, 3196, 6547, 3198, - 3199, 3200, 3205, 3207, 3208, 3209, 3210, 3211, 3215, 3216, - 3217, 3229, 3225, 3222, 3231, 6547, 3230, 3236, 3218, 3242, - 3249, 3244, 3246, 3251, 3252, 3254, 3263, 3259, 3258, 3260, - 3261, 3262, 3265, 3272, 3273, 3269, 3276, 3275, 3279, 3286, - 3283, 3277, 3281, 3287, 3289, 3290, 3291, 3292, 3293, 3296, - 3297, 3294, 6547, 3302, 3308, 3306, 3315, 3311, 3312, 3316, - 3321, 3317, 6547, 3323, 3324, 3325, 3327, 3332, 3326, 3329, - - 3334, 3337, 3340, 3342, 3345, 3347, 3346, 6547, 3348, 6547, - 3350, 3351, 3361, 3365, 3366, 3353, 3367, 3373, 3369, 3374, - 3376, 3379, 3377, 3383, 3380, 3385, 3386, 3388, 3400, 3391, - 3387, 3392, 3401, 3402, 3406, 3409, 3410, 3411, 6547, 6547, - 3412, 3413, 3417, 3414, 3420, 3421, 3424, 3432, 3428, 3427, - 3434, 3435, 3448, 6547, 3436, 3443, 3438, 3446, 3462, 3449, - 3464, 3465, 3452, 3440, 3472, 3468, 6547, 3461, 3469, 3476, - 3471, 3477, 3479, 6547, 3482, 6547, 3475, 3478, 3485, 3487, - 3488, 3489, 3491, 3492, 3499, 3509, 3510, 3495, 3512, 3507, - 3500, 3513, 3515, 3516, 3523, 3519, 3521, 3522, 6547, 3525, - - 3526, 3530, 3528, 3531, 3538, 3535, 3539, 6547, 3542, 3545, - 3548, 3549, 3551, 3550, 3553, 3556, 3557, 3555, 3559, 6547, - 3558, 3561, 3572, 3573, 3565, 3574, 3576, 3579, 3587, 6547, - 3584, 3588, 3596, 3592, 3593, 3598, 3599, 3594, 3595, 3601, - 3603, 3604, 3606, 3607, 3608, 3610, 3613, 3615, 3612, 3622, - 3623, 3626, 3630, 3639, 3631, 6547, 3635, 3636, 3640, 3638, - 3642, 3643, 3645, 3648, 3650, 3651, 3661, 3662, 3653, 3664, - 3666, 3668, 3673, 3675, 6547, 3676, 3669, 3683, 3679, 3681, - 3689, 3680, 3686, 3693, 3682, 3690, 3694, 3695, 3698, 3707, - 3702, 3705, 3706, 3708, 3718, 3709, 6547, 3723, 3713, 3719, - - 3730, 3720, 3726, 3739, 3735, 3736, 3737, 3743, 3738, 3745, - 3740, 3747, 3748, 3751, 3752, 6547, 6547, 3754, 3755, 3757, - 6547, 3759, 3761, 3771, 3763, 3767, 3770, 3774, 3775, 3773, - 3776, 3778, 3779, 6547, 3786, 3789, 3787, 3790, 3798, 3794, - 6547, 3793, 3806, 3802, 3803, 3805, 3809, 3811, 3810, 3813, - 3815, 3817, 3818, 3826, 3827, 3824, 3823, 3828, 6547, 3825, - 3831, 3834, 3836, 3837, 3840, 6547, 3841, 3842, 3849, 3851, - 3852, 3859, 3862, 3854, 3864, 3847, 3867, 3869, 3871, 3872, - 3873, 3880, 3875, 3877, 3879, 3883, 3885, 6547, 3886, 3887, - 3891, 3897, 6547, 3900, 3907, 3908, 6547, 3910, 3894, 3909, - - 3905, 3918, 6547, 3913, 3915, 3916, 3921, 3929, 3922, 3930, - 3926, 3927, 6547, 3933, 3932, 3935, 6547, 3934, 3941, 3948, - 3950, 3936, 3958, 3953, 3938, 3954, 3955, 6547, 3957, 6547, - 3963, 3961, 3967, 6547, 3965, 3969, 3970, 3972, 3974, 3979, - 3980, 3986, 3988, 3976, 3982, 3990, 3978, 3994, 3995, 3999, - 3992, 4002, 4001, 4003, 6547, 4004, 4006, 4009, 4007, 4012, - 4014, 4020, 4015, 4021, 4022, 6547, 6547, 4029, 6547, 4030, - 4025, 4031, 6547, 4034, 4037, 4044, 4039, 4042, 4046, 4053, - 4050, 6547, 4055, 4059, 6547, 4040, 4061, 4068, 4057, 4065, - 4066, 4069, 4071, 4072, 4073, 4076, 4074, 4078, 4075, 4077, - - 4091, 6547, 4079, 4081, 4082, 4084, 4095, 4096, 4100, 4102, - 4098, 6547, 4106, 4112, 4105, 4115, 4117, 6547, 4119, 6547, - 4108, 4121, 4122, 4125, 4129, 6547, 4131, 4132, 4136, 4137, - 4138, 4139, 4140, 4142, 4144, 4149, 4156, 4152, 4151, 4153, - 4160, 4158, 6547, 4155, 4161, 4168, 4170, 4172, 4173, 4182, - 4178, 4177, 4180, 4181, 4185, 4188, 4190, 4194, 4192, 4199, - 4196, 6547, 4203, 4205, 4202, 4217, 4206, 4210, 4208, 6547, - 4209, 4222, 4224, 6547, 4213, 4225, 4228, 4231, 4232, 4233, - 4236, 4234, 4238, 6547, 4235, 4242, 4239, 4241, 4244, 4255, - 6547, 6547, 4256, 6547, 4257, 4243, 4258, 4260, 4240, 4261, - - 4268, 4271, 4277, 4269, 4279, 4281, 4272, 4274, 4290, 4293, - 4297, 4292, 4294, 4298, 6547, 6547, 4300, 4304, 4301, 4307, - 4308, 4303, 4311, 4320, 4312, 4321, 4324, 4326, 4333, 6547, - 4328, 4316, 4334, 4325, 6547, 4335, 4337, 4339, 4340, 4341, - 4343, 4347, 4344, 4348, 4349, 4351, 4352, 4354, 4365, 4357, - 4358, 4366, 4367, 4368, 4359, 4374, 4380, 6547, 4377, 4375, - 4381, 4382, 4384, 4387, 4388, 4389, 4390, 6547, 4395, 6547, - 4391, 4393, 4396, 4397, 4413, 4398, 4414, 4415, 4416, 4418, - 4419, 4422, 4423, 4427, 4424, 4429, 4432, 4434, 4436, 4438, - 4440, 6547, 4444, 4441, 4447, 4448, 4451, 4453, 4454, 4456, - - 4457, 4459, 4462, 4463, 4465, 4470, 4466, 4472, 4471, 4474, - 6547, 4478, 4487, 4476, 4489, 4479, 4484, 4491, 4498, 4501, - 4492, 4502, 4503, 6547, 4504, 4496, 4507, 6547, 4508, 4509, - 4510, 4512, 4521, 4518, 4522, 4523, 4524, 6547, 4530, 4513, - 4534, 4526, 4531, 4535, 4536, 4542, 4545, 4544, 4547, 6547, - 4557, 4548, 4556, 4558, 4552, 4555, 4559, 4564, 4566, 6547, - 4570, 4571, 4572, 4579, 4574, 4584, 4581, 4583, 4582, 4585, - 4590, 4591, 4594, 4596, 4597, 4599, 4608, 4610, 4611, 6547, - 4589, 6547, 4612, 4616, 4620, 4618, 4623, 4622, 6547, 4624, - 4625, 4630, 4631, 4626, 6547, 4633, 4632, 4634, 4638, 6547, - - 4636, 4647, 4637, 4643, 4654, 4658, 6547, 4661, 4662, 4651, - 4669, 4670, 4666, 4668, 4671, 4672, 4674, 4676, 4677, 4678, - 4687, 4680, 4683, 6547, 4689, 4692, 4698, 4699, 4682, 4700, - 4701, 4702, 4708, 4703, 6547, 4705, 4711, 4712, 4713, 4714, - 4715, 4717, 4725, 4720, 4723, 4724, 4728, 4729, 4730, 6547, - 4733, 4736, 4737, 4744, 4740, 4753, 6547, 4749, 6547, 4746, - 4756, 4759, 4739, 4763, 6547, 6547, 4750, 4767, 4766, 4769, - 4770, 6547, 6547, 4772, 6547, 4773, 6547, 4774, 4776, 6547, - 6547, 4775, 4777, 4781, 4782, 4784, 6547, 4790, 6547, 4799, - 4794, 4785, 4796, 4797, 6547, 4798, 4804, 4800, 4808, 4806, - - 6547, 4810, 4815, 4811, 4813, 6547, 4822, 4823, 4814, 4816, - 6547, 4824, 4831, 4827, 4835, 4836, 4837, 4838, 4841, 4843, - 4839, 4844, 4846, 4847, 4854, 4861, 4863, 4865, 4869, 4858, - 4856, 4871, 4872, 4877, 4875, 4879, 4880, 4881, 4883, 4884, - 4886, 4889, 4890, 4892, 4895, 4893, 4894, 4906, 4896, 4898, - 4908, 4910, 4899, 4909, 4913, 4912, 4917, 4915, 4920, 4923, - 4922, 4924, 6547, 4928, 4930, 4933, 4935, 4934, 4940, 4942, - 4944, 4950, 4953, 6547, 4957, 6547, 4959, 4951, 4955, 4961, - 4962, 6547, 4963, 4964, 4965, 4968, 4967, 4970, 4848, 4971, - 4974, 4975, 4972, 6547, 4979, 4981, 4984, 4985, 4997, 6547, - - 4989, 5000, 4986, 5001, 5002, 5003, 5005, 5007, 5008, 5010, - 5012, 5014, 5015, 5016, 5020, 5022, 5028, 5036, 5031, 5017, - 5033, 5037, 5038, 5039, 5040, 5041, 5042, 5048, 5053, 5057, - 6547, 5045, 6547, 5054, 5050, 5058, 5061, 5062, 5065, 5068, - 6547, 6547, 5066, 5071, 5073, 5075, 5076, 5078, 5080, 5082, - 5079, 6547, 5084, 5088, 5096, 5089, 6547, 5093, 5098, 5100, - 5104, 6547, 5101, 5105, 5106, 5112, 5107, 5116, 5117, 5119, - 5109, 5121, 5123, 5130, 6547, 6547, 6547, 6547, 5131, 5124, - 5135, 5127, 5136, 5138, 5139, 5142, 5137, 6547, 5145, 6547, - 6547, 5150, 5151, 5153, 5154, 5157, 5158, 5160, 5162, 6547, - - 5161, 5163, 5166, 5164, 5173, 5175, 5181, 5178, 5182, 5183, - 5184, 5192, 5188, 5189, 5191, 5194, 5196, 5198, 6547, 6547, - 5200, 5204, 5205, 5215, 5207, 5211, 5210, 5223, 5218, 5220, - 5219, 5221, 5226, 5227, 5235, 5237, 5233, 5230, 6547, 5232, - 5240, 5241, 6547, 5243, 6547, 5246, 5247, 5249, 5250, 5253, - 5256, 5257, 5259, 6547, 6547, 5254, 5266, 5264, 6547, 6547, - 5261, 5269, 5271, 5274, 5275, 5276, 5277, 5278, 5284, 5279, - 6547, 5281, 6547, 5285, 5287, 5300, 5288, 5303, 5307, 5308, - 5310, 5304, 5306, 6547, 5314, 5315, 6547, 5322, 5317, 5321, - 5318, 5319, 6547, 5326, 5324, 5330, 5336, 6547, 5338, 5339, - - 5340, 6547, 5347, 6547, 5331, 5344, 5341, 5356, 5348, 6547, - 5352, 5357, 6547, 5362, 5364, 5365, 5354, 6547, 5359, 6547, - 5366, 5370, 5373, 5376, 5378, 5380, 5371, 5381, 5382, 5389, - 5388, 5390, 6547, 6547, 135, 5398, 5385, 5391, 5395, 5400, - 5407, 5402, 5405, 5404, 6547, 6547, 5412, 6547, 5410, 5413, - 6547, 5414, 5419, 5420, 5423, 5424, 5425, 5426, 5428, 5431, - 5433, 5434, 5435, 5432, 5436, 5454, 5456, 5438, 5459, 5460, - 5462, 5464, 5466, 5452, 5469, 5470, 5471, 5472, 5473, 5475, - 5476, 5478, 5479, 6547, 5482, 5484, 5486, 5487, 6547, 5494, - 5488, 5501, 5491, 6547, 5503, 5504, 5506, 5507, 6547, 5508, - - 5510, 5514, 5511, 5512, 5517, 5519, 5530, 5522, 5523, 5521, - 6547, 6547, 6547, 5533, 5537, 6547, 5540, 5527, 5542, 5543, - 6547, 5545, 5546, 5547, 6547, 6547, 5548, 5549, 5550, 5557, - 6547, 5552, 6547, 5553, 6547, 5560, 5563, 5571, 5566, 6547, - 5576, 5578, 6547, 5584, 5586, 5588, 5580, 5577, 5590, 5591, - 6547, 5562, 5593, 5594, 5601, 5592, 5595, 5602, 5603, 5604, - 5611, 5606, 5613, 6547, 5614, 5615, 5616, 5624, 5617, 5554, - 5619, 6547, 5626, 6547, 5628, 6547, 5629, 5630, 5633, 5632, - 5635, 5638, 5639, 5640, 5648, 5644, 5650, 5652, 5655, 5656, - 6547, 6547, 5659, 5661, 6547, 5662, 6547, 5664, 6547, 5665, - - 5666, 5669, 5667, 6547, 5671, 5673, 5677, 5680, 5676, 5679, - 6547, 5687, 5689, 5690, 5692, 6547, 6547, 5684, 5700, 5696, - 6547, 5695, 5706, 5708, 5702, 5711, 5712, 5715, 5713, 5720, - 5697, 5719, 5718, 5726, 5729, 5727, 6547, 6547, 6547, 5734, - 5721, 5742, 5740, 5744, 5743, 5735, 6547, 5745, 5749, 5751, - 5752, 5760, 5755, 5758, 6547, 5762, 5759, 5761, 5763, 5765, - 5766, 5767, 5769, 6547, 5780, 5782, 5770, 5784, 5787, 5789, - 5791, 5794, 5795, 5796, 5803, 5799, 6547, 5801, 6547, 6547, - 5802, 6547, 5805, 5806, 5807, 5809, 6547, 5812, 5813, 5814, - 5816, 5815, 5817, 5819, 5824, 6547, 5831, 5820, 5832, 5836, - - 6547, 6547, 5838, 6547, 5843, 5844, 5834, 5852, 5845, 5847, - 5854, 5856, 6547, 5850, 5858, 5859, 5860, 5862, 6547, 5863, - 5865, 5866, 5867, 6547, 5873, 5869, 5875, 5874, 5876, 6547, - 5877, 5879, 5889, 5896, 6547, 5880, 5894, 5890, 6547, 6547, - 5905, 5907, 5898, 6547, 6547, 6547, 5909, 5910, 5911, 5913, - 6547, 5917, 5921, 5925, 5929, 5920, 6547, 5928, 5931, 5935, - 5914, 5936, 6547, 6547, 5937, 5938, 5939, 5942, 6547, 6547, - 5943, 5945, 5947, 5946, 5948, 6547, 5949, 5953, 5959, 5965, - 5970, 5956, 5961, 5972, 5979, 5980, 5975, 5976, 5977, 5982, - 5983, 5985, 5990, 5992, 5993, 5995, 5997, 6001, 6002, 6547, - - 6547, 6006, 6547, 6009, 6003, 6547, 6547, 6011, 6014, 6018, - 6020, 6022, 6024, 6026, 6028, 6015, 6547, 6029, 6031, 6033, - 6032, 6034, 6547, 6036, 6040, 6035, 6043, 6037, 6045, 6047, - 6052, 6547, 6547, 6048, 6057, 6053, 6058, 6063, 6547, 6061, - 6071, 6068, 6067, 6069, 6073, 6070, 6547, 6074, 6075, 6547, - 6547, 6083, 6077, 6547, 6547, 6076, 6547, 6547, 6547, 6547, - 6547, 6547, 6547, 6547, 6085, 6093, 6547, 6094, 6098, 6100, - 6104, 6547, 6078, 6105, 6106, 6089, 6108, 6547, 6095, 6112, - 6111, 5292, 6113, 6119, 6117, 6115, 6121, 6124, 6125, 6126, - 6127, 6131, 6132, 6133, 6142, 6145, 6129, 6146, 6547, 6547, - - 6547, 6138, 6135, 6157, 6153, 6159, 6160, 6164, 6166, 6148, - 6168, 6169, 6170, 6171, 6173, 6174, 6183, 6178, 6179, 6180, - 6182, 6184, 6187, 6547, 6194, 6190, 6195, 6197, 6547, 6200, - 6547, 6199, 6547, 6547, 6202, 6206, 6203, 6208, 6216, 6218, - 6209, 6213, 6219, 6220, 6222, 6547, 6229, 6547, 6547, 6224, - 6230, 6547, 6232, 6231, 6547, 6233, 6234, 6236, 6241, 6243, - 6240, 6237, 6244, 6248, 6547, 6547, 6251, 6252, 6257, 6261, - 6258, 6268, 6264, 6267, 6269, 6273, 6266, 6281, 6547, 6280, - 6277, 6284, 6547, 6286, 6287, 6288, 6289, 6291, 6298, 6293, - 6294, 6547, 6296, 6547, 6300, 6302, 6304, 6301, 6303, 6305, - - 6315, 6319, 6313, 6547, 6317, 6327, 6321, 6329, 6331, 6333, - 6334, 6323, 6336, 6339, 6345, 6349, 6346, 6350, 6337, 6354, - 6351, 6547, 6361, 6352, 6547, 6358, 6362, 6355, 6364, 6365, - 6547, 6369, 6372, 6373, 6375, 6378, 6379, 6547, 6381, 6385, - 6382, 6547, 6388, 6547, 6547, 6390, 6387, 6394, 6397, 6399, - 6547, 6547, 6547, 6427, 6434, 6441, 6448, 6455, 6462, 6469, - 88, 6476, 6483, 6490, 6497, 6504, 6511, 6518, 6525, 6532, - 6539 + 763, 766, 762, 774, 773, 765, 769, 794, 799, 782, + 787, 800, 801, 804, 802, 803, 806, 808, 809, 814, + 818, 819, 823, 807, 825, 827, 834, 829, 6793, 831, + 838, 846, 839, 847, 850, 848, 854, 856, 836, 866, + 864, 867, 876, 898, 849, 871, 868, 878, 881, 6793, + 884, 882, 922, 890, 891, 908, 910, 859, 909, 911, + 904, 912, 933, 906, 920, 915, 945, 942, 930, 943, + + 944, 946, 952, 954, 955, 953, 957, 958, 966, 861, + 961, 970, 981, 962, 964, 968, 971, 974, 986, 983, + 990, 991, 993, 995, 997, 996, 1001, 999, 1022, 1004, + 1002, 1000, 1016, 1017, 1024, 1023, 1025, 1028, 1030, 1029, + 1037, 1041, 1038, 1046, 1047, 1048, 1049, 1059, 1054, 1055, + 1056, 1060, 1062, 1063, 1066, 1068, 1069, 1071, 1073, 1074, + 1080, 1081, 1085, 1089, 1075, 1090, 1082, 6793, 1097, 6793, + 1092, 1095, 1099, 1100, 1101, 1102, 1105, 6793, 1107, 1110, + 1109, 1112, 1120, 1115, 1136, 1111, 1118, 1123, 1135, 1119, + 1137, 1145, 1140, 1141, 1148, 1143, 1146, 1147, 1149, 1150, + + 1153, 1156, 1159, 1161, 1155, 1162, 1178, 6793, 1163, 1167, + 1165, 1168, 1176, 1182, 1173, 1181, 1191, 1190, 1201, 1193, + 1199, 1213, 1202, 1203, 1211, 1210, 1215, 1220, 1216, 1222, + 1224, 1225, 1227, 1228, 1226, 1230, 1231, 1234, 1232, 1238, + 1240, 6793, 1247, 1244, 1250, 1255, 1257, 1258, 1259, 1260, + 1261, 1262, 1263, 1264, 1266, 517, 1271, 1282, 1289, 1272, + 1291, 1275, 1290, 1286, 1288, 1265, 1292, 1296, 1294, 1307, + 1298, 1309, 1314, 1322, 1318, 1320, 1327, 1329, 1304, 1324, + 1299, 1326, 1330, 1332, 1334, 1333, 1335, 1341, 1339, 1348, + 1344, 1346, 1345, 1347, 1351, 1353, 1355, 1356, 1357, 1359, + + 1366, 1361, 1373, 1369, 1371, 1372, 1368, 1387, 1376, 1379, + 1391, 1392, 1389, 1390, 6793, 1399, 1398, 1401, 1402, 1408, + 1409, 1410, 1400, 1411, 1414, 1417, 1418, 1419, 1425, 1422, + 1426, 1420, 1427, 1433, 1432, 1440, 1446, 1435, 1450, 1451, + 1453, 1437, 1449, 1456, 1457, 1465, 1462, 1466, 1468, 1464, + 1469, 1478, 1470, 1473, 1475, 1485, 1481, 1482, 1487, 1484, + 1496, 1498, 1490, 1507, 1499, 1509, 1516, 1502, 1488, 1517, + 1506, 1518, 1512, 1521, 1522, 1523, 1526, 1533, 1528, 1529, + 1534, 1535, 1536, 1537, 1531, 1544, 1547, 1545, 1548, 1551, + 1552, 1553, 1557, 1560, 1555, 1561, 1566, 1567, 1568, 1570, + + 1558, 1578, 1588, 1569, 1580, 1582, 1581, 1589, 1590, 1591, + 1596, 1597, 1598, 1600, 1601, 1608, 1611, 1602, 1605, 1614, + 1615, 1617, 1618, 1627, 1619, 1628, 1632, 1633, 1634, 1622, + 1635, 1638, 1640, 1641, 1645, 1646, 1648, 6793, 1652, 1660, + 1653, 1658, 1655, 1656, 1661, 1669, 1664, 1668, 1665, 1666, + 1670, 1692, 6793, 1674, 6793, 6793, 1676, 6793, 6793, 1677, + 1678, 6793, 1682, 1687, 1699, 1698, 1705, 1707, 1709, 1685, + 1710, 1680, 1719, 1725, 1716, 1717, 1718, 1723, 1730, 1721, + 1731, 1728, 1738, 1742, 1740, 1746, 1749, 1754, 1756, 1758, + 1750, 1761, 1767, 1764, 1770, 1772, 1775, 1760, 1776, 1778, + + 1779, 1780, 1782, 1781, 1784, 1787, 1790, 1791, 1793, 1786, + 1794, 1805, 1803, 1796, 1813, 6793, 1809, 1821, 1806, 1823, + 1819, 1826, 1827, 1822, 1810, 1832, 1834, 1829, 1835, 1836, + 1838, 1839, 1840, 1842, 1844, 1846, 1850, 1848, 1860, 1849, + 6793, 1862, 1863, 1851, 1859, 1865, 1866, 1873, 1867, 1852, + 1870, 1876, 1886, 1882, 1884, 1887, 1888, 1890, 1891, 1892, + 6793, 1894, 1901, 1898, 1902, 1904, 1893, 1908, 1905, 1910, + 1911, 1912, 1917, 1915, 1918, 1922, 1923, 1924, 1926, 1929, + 1934, 1931, 1938, 1941, 1948, 1942, 1944, 1949, 1950, 1951, + 1953, 1954, 1955, 1957, 1962, 1966, 1965, 1969, 1967, 1968, + + 1978, 1986, 1971, 1982, 1983, 1984, 1985, 1990, 1993, 1998, + 1994, 1996, 1999, 2008, 2000, 2005, 2007, 2010, 2013, 2023, + 2009, 2026, 2018, 2011, 2021, 2027, 2028, 6793, 2034, 2035, + 6793, 2037, 2036, 2038, 2060, 2039, 2042, 2051, 2044, 2045, + 2048, 2053, 2061, 2057, 2064, 2073, 2074, 2077, 2080, 2079, + 2082, 2086, 2085, 2088, 2089, 2092, 2095, 2093, 2100, 2107, + 2109, 2055, 2113, 2117, 2112, 2114, 2118, 2137, 2115, 2116, + 2125, 2119, 2122, 2124, 2120, 2126, 2130, 2135, 2140, 2132, + 2147, 2150, 2146, 2149, 2152, 2153, 2160, 2162, 2165, 2164, + 6793, 2172, 2170, 2174, 2175, 2176, 2183, 2181, 2179, 6793, + + 2182, 2185, 2187, 2196, 2188, 2192, 2195, 2199, 2201, 2202, + 2204, 2205, 2208, 2206, 2207, 2226, 6793, 2209, 6793, 2213, + 2210, 2218, 2221, 2228, 2229, 2231, 2232, 2233, 6793, 6793, + 2234, 2235, 2248, 2251, 2241, 2243, 2252, 6793, 2253, 2260, + 6793, 2262, 2261, 2256, 2255, 2257, 2267, 2268, 2271, 2278, + 2274, 2282, 2277, 2279, 2283, 6793, 2287, 2280, 2288, 2291, + 2289, 2295, 2298, 2302, 2299, 6793, 2300, 2308, 2309, 2316, + 2313, 2314, 2317, 2318, 2319, 2322, 2325, 2326, 2327, 2328, + 2337, 2338, 2329, 2342, 2339, 2343, 2351, 6793, 2349, 2350, + 2336, 2358, 2355, 2362, 2357, 2363, 2353, 2359, 2364, 2370, + + 2365, 2369, 2375, 2377, 2379, 2386, 2387, 2382, 2383, 2385, + 2390, 2391, 2392, 2394, 2399, 2396, 2401, 2400, 2402, 6793, + 2403, 2407, 2408, 2413, 2415, 2411, 171, 2421, 2417, 2424, + 2423, 2425, 2430, 2426, 2439, 2443, 2438, 2440, 2442, 2447, + 2441, 2448, 2451, 2449, 2450, 2453, 2457, 2458, 6793, 2466, + 2459, 2461, 2463, 2468, 2467, 2470, 6793, 2476, 2481, 2483, + 2491, 2485, 2493, 2494, 2495, 2498, 2496, 2499, 2500, 2501, + 2503, 2506, 2510, 2509, 6793, 2512, 2517, 2518, 2515, 2524, + 2526, 2525, 2527, 2531, 2532, 2533, 2537, 2536, 2538, 2539, + 2540, 2541, 2547, 2548, 2555, 2544, 2554, 2556, 2557, 2560, + + 2566, 2562, 2567, 2568, 2575, 2570, 6793, 2577, 2573, 2580, + 2576, 2582, 2585, 2586, 2587, 2604, 2589, 2593, 2596, 2605, + 2610, 2600, 2612, 2620, 2616, 2622, 2625, 2630, 2626, 2632, + 2635, 2628, 2638, 2640, 2641, 2642, 2650, 2646, 2647, 2648, + 2651, 2652, 2662, 2663, 2654, 2664, 2666, 2669, 2658, 2676, + 2681, 2683, 6793, 2685, 2673, 2687, 2690, 2697, 2692, 2671, + 2695, 2698, 2702, 2703, 2704, 2706, 2713, 2708, 2710, 2714, + 2716, 2715, 2717, 2724, 2719, 2725, 2727, 2734, 2730, 2736, + 2595, 6793, 2738, 2739, 2740, 2742, 2747, 2743, 2749, 2752, + 2755, 2754, 2756, 2758, 2761, 2762, 2764, 2765, 2772, 2768, + + 2769, 2774, 2770, 6793, 2780, 2771, 2782, 2784, 2789, 2791, + 2790, 2793, 2792, 2800, 2802, 2803, 2804, 2805, 2806, 6793, + 2814, 2815, 2811, 2813, 2823, 2820, 2822, 2824, 2826, 2827, + 6793, 2828, 2830, 2832, 2831, 2834, 2836, 2843, 2844, 2839, + 6793, 2855, 2850, 2840, 2851, 2853, 2852, 2856, 2857, 2861, + 2862, 2867, 2863, 2873, 2869, 2875, 6793, 2876, 2883, 2878, + 2879, 2886, 2884, 2889, 2890, 2901, 2891, 2897, 2893, 6793, + 2916, 2911, 2902, 2918, 2903, 2914, 2919, 2920, 2921, 2923, + 2924, 2927, 2928, 6793, 2929, 2931, 2933, 2934, 2938, 2936, + 2939, 2952, 2945, 2947, 2950, 2953, 2955, 2956, 2960, 2962, + + 2967, 2959, 2961, 2971, 2973, 2963, 2976, 2979, 2983, 2987, + 2992, 2988, 2989, 2994, 2991, 2995, 2996, 2998, 3006, 3007, + 3010, 3008, 3012, 6793, 3015, 3016, 3018, 3005, 3019, 3021, + 3022, 3025, 3028, 3024, 3026, 3033, 3036, 3030, 3046, 3048, + 3039, 3051, 3041, 3043, 3054, 3053, 3055, 3056, 3057, 3067, + 3064, 3065, 3066, 3077, 3068, 3072, 3079, 3070, 3080, 3081, + 3082, 3083, 3084, 3088, 3090, 3093, 3094, 3095, 3086, 3107, + 3109, 3110, 3112, 3104, 3102, 3118, 3119, 6793, 3122, 3123, + 3120, 3124, 3126, 3130, 3127, 3139, 3134, 3137, 3136, 3143, + 3148, 3145, 3146, 3151, 3153, 3161, 3157, 6793, 3154, 6793, + + 3158, 3162, 3168, 3176, 3163, 6793, 3175, 6793, 3177, 3182, + 3171, 3178, 6793, 3185, 3184, 3166, 3189, 3190, 3191, 3193, + 3195, 3196, 3197, 3199, 3200, 3203, 3204, 3206, 3207, 3209, + 3217, 3211, 3219, 3223, 3220, 3227, 3230, 3224, 3238, 3214, + 3231, 3240, 3241, 3233, 3242, 6793, 3249, 3243, 3253, 3254, + 3255, 3256, 3258, 3257, 3261, 3260, 3262, 3264, 3267, 3268, + 3279, 3273, 3265, 3280, 3281, 3284, 3292, 3290, 3297, 6793, + 3293, 3295, 3296, 3298, 6793, 3301, 3299, 3302, 3308, 3305, + 3311, 3312, 3313, 3317, 3314, 3321, 3320, 3325, 3330, 3334, + 3335, 6793, 3336, 3337, 3322, 3341, 3349, 3352, 3356, 3353, + + 3359, 3361, 3357, 3363, 3364, 3355, 3365, 3366, 3367, 3375, + 3378, 3371, 3380, 3379, 3382, 3389, 3385, 3381, 3383, 3391, + 3392, 3393, 3394, 3395, 3396, 3397, 3400, 3411, 3398, 3416, + 6793, 3406, 3415, 3419, 3426, 3401, 3424, 3405, 3428, 3429, + 6793, 3431, 3433, 3434, 3435, 3436, 3441, 3438, 3443, 3444, + 3445, 3446, 3448, 3451, 3449, 6793, 3457, 6793, 3458, 3466, + 3471, 3474, 3464, 3468, 3475, 3480, 3481, 3482, 3484, 3485, + 3487, 3490, 3491, 3493, 3495, 3496, 3497, 3504, 3500, 3503, + 3511, 3510, 3512, 3513, 3521, 3517, 3518, 6793, 6793, 3516, + 3519, 3531, 3527, 3525, 3533, 3535, 3539, 3540, 3542, 3544, + + 3546, 3553, 6793, 3549, 3554, 3555, 3556, 3568, 3557, 3559, + 3572, 3571, 3567, 3579, 3574, 6793, 3570, 3578, 3588, 3583, + 3584, 3591, 6793, 3586, 6793, 3589, 3595, 3597, 3598, 3600, + 3599, 3601, 3602, 3604, 3606, 3617, 3613, 3625, 3611, 3622, + 3623, 3626, 3627, 3629, 3632, 3636, 3631, 3633, 3634, 6793, + 3640, 3635, 3637, 3642, 3648, 3651, 3654, 3657, 3650, 6793, + 3658, 3661, 3660, 3662, 3664, 3672, 3665, 3675, 3667, 3677, + 3678, 3681, 3682, 3683, 6793, 3680, 3685, 3696, 3689, 3691, + 3697, 3707, 3708, 3713, 6793, 3693, 3710, 3720, 3716, 3717, + 3700, 3718, 3704, 3722, 3723, 3725, 3726, 3727, 3728, 3730, + + 3733, 3734, 3736, 3735, 3747, 3746, 3738, 3750, 3760, 3740, + 6793, 3756, 3757, 3762, 3763, 3764, 3765, 3767, 3770, 3772, + 3773, 3785, 3786, 3774, 3777, 3789, 3790, 3797, 3796, 6793, + 3806, 3792, 3807, 3803, 3780, 3809, 3814, 3782, 3811, 3818, + 3804, 3815, 3820, 3821, 3822, 3824, 3833, 3828, 3830, 3831, + 3832, 3843, 3834, 6793, 3845, 3846, 3838, 3855, 3848, 3851, + 3862, 3858, 3861, 3863, 3865, 3868, 3869, 3871, 3873, 3874, + 3877, 3872, 6793, 6793, 3879, 3880, 3887, 6793, 3888, 3882, + 3889, 3885, 3899, 3886, 3893, 3902, 3904, 3890, 3910, 3900, + 3906, 6793, 3912, 3920, 3915, 3918, 3927, 3928, 6793, 3919, + + 3929, 3932, 3934, 3924, 3936, 3940, 3937, 3941, 3942, 3943, + 3945, 3953, 3954, 3950, 3951, 3957, 6793, 3952, 3958, 3962, + 3964, 3955, 3968, 6793, 3965, 3971, 3978, 3976, 3981, 3986, + 3987, 3988, 3993, 3973, 3989, 3995, 3996, 3997, 3998, 4006, + 4002, 4007, 4005, 4008, 4012, 4015, 4009, 6793, 4019, 4023, + 4024, 4026, 6793, 4030, 4033, 4037, 6793, 4041, 4036, 4038, + 4040, 4048, 6793, 4045, 4046, 4047, 4053, 4049, 4061, 4051, + 4064, 4066, 4056, 4060, 4063, 4067, 6793, 4069, 4070, 4071, + 6793, 4082, 4077, 4084, 4087, 4072, 4094, 4090, 4093, 4091, + 4095, 6793, 4100, 6793, 4099, 4101, 4106, 6793, 4103, 4108, + + 4109, 4111, 4112, 4117, 4118, 4116, 4125, 4126, 4127, 4129, + 4130, 4128, 4133, 4137, 4134, 4135, 4139, 4140, 6793, 4141, + 4143, 4150, 4145, 4155, 4151, 4158, 4148, 4162, 4163, 6793, + 6793, 4172, 6793, 4174, 4164, 4166, 6793, 4168, 4173, 4181, + 4178, 4184, 4186, 4179, 4190, 4191, 6793, 4193, 4200, 6793, + 4194, 4196, 4204, 4205, 4203, 4206, 4207, 4208, 4211, 4212, + 4213, 4214, 4215, 4222, 4216, 4221, 4218, 6793, 4223, 4229, + 4232, 4239, 4231, 4235, 4245, 4241, 4240, 6793, 4251, 4257, + 4247, 4253, 4254, 6793, 4262, 6793, 4250, 4263, 4264, 4267, + 4266, 4279, 6793, 4275, 4270, 4281, 4274, 4278, 4286, 4282, + + 4289, 4290, 4291, 4298, 4296, 4293, 4295, 4303, 4304, 6793, + 4299, 4305, 4310, 4313, 4315, 4316, 4323, 4320, 4322, 4321, + 4326, 4328, 4329, 4331, 4337, 4335, 4340, 4333, 6793, 4343, + 4346, 4347, 4359, 4349, 4354, 4350, 6793, 4357, 4360, 4366, + 6793, 4364, 4356, 4370, 4373, 4367, 4374, 4375, 4378, 4380, + 4381, 4382, 6793, 4383, 4386, 4384, 4388, 4397, 4390, 6793, + 6793, 4400, 6793, 4401, 4389, 4405, 4408, 4409, 4413, 4411, + 4414, 4416, 4417, 4418, 4421, 4424, 4427, 6793, 4428, 4436, + 4431, 4439, 4448, 4449, 4441, 4446, 4432, 6793, 6793, 4451, + 4455, 4457, 4459, 4460, 4462, 4445, 4471, 4464, 4467, 4473, + + 4475, 4482, 6793, 4479, 4477, 4484, 4478, 6793, 4485, 4486, + 4489, 4487, 4490, 4493, 4492, 4494, 4496, 4499, 4504, 4505, + 4500, 4513, 4506, 4507, 4516, 4517, 4519, 4520, 4522, 4527, + 6793, 4523, 4529, 4530, 4534, 4535, 4537, 4539, 4538, 4541, + 4551, 6793, 4543, 6793, 4542, 4547, 4546, 4563, 4544, 4554, + 4566, 4567, 4568, 4569, 4572, 4573, 4576, 4577, 4587, 4578, + 4582, 4588, 4590, 4592, 4597, 4598, 6793, 4600, 4584, 4594, + 4601, 4607, 4609, 4610, 4612, 4615, 4617, 4619, 4618, 4621, + 4625, 4622, 4626, 4627, 4628, 4630, 6793, 4632, 4639, 4631, + 4641, 4643, 4645, 4652, 4646, 4654, 4648, 4656, 4657, 6793, + + 4658, 4660, 4664, 6793, 4665, 4666, 4668, 4670, 4676, 4669, + 4672, 4678, 4680, 6793, 4682, 4684, 4687, 4686, 4690, 4691, + 4692, 4696, 4698, 4699, 4702, 6793, 4712, 4703, 4711, 4714, + 4710, 4713, 4717, 4723, 4721, 6793, 4724, 4725, 4727, 4737, + 4739, 4732, 4734, 4746, 4736, 4743, 4744, 4745, 4751, 4750, + 4752, 4755, 4756, 4757, 4766, 4768, 4763, 6793, 4770, 6793, + 4772, 4773, 4774, 4783, 4778, 4776, 4780, 4784, 4786, 6793, + 4788, 4791, 4794, 4795, 4796, 6793, 4797, 4798, 4800, 4799, + 6793, 4813, 4812, 4801, 4818, 4803, 4819, 6793, 4823, 4824, + 4826, 4834, 4835, 4832, 4837, 4825, 4842, 4833, 4838, 4840, + + 4846, 4850, 4848, 4849, 6793, 4851, 4853, 4858, 4860, 4861, + 4863, 4864, 4867, 4869, 4866, 6793, 4873, 4874, 4875, 4876, + 4877, 4880, 4882, 4889, 4885, 4892, 4886, 4888, 4896, 4897, + 4898, 4906, 6793, 4899, 4901, 4903, 4916, 4912, 4921, 6793, + 4909, 6793, 4913, 4924, 4926, 4914, 4930, 6793, 6793, 4928, + 4939, 4922, 4936, 4937, 6793, 6793, 4942, 6793, 4938, 6793, + 4943, 4944, 6793, 6793, 4945, 4947, 4948, 4949, 4953, 4952, + 6793, 4962, 6793, 4965, 4963, 4955, 4966, 4967, 6793, 4968, + 4974, 4970, 4978, 4976, 6793, 4980, 4985, 4981, 4983, 6793, + 4992, 4993, 4984, 4986, 6793, 4994, 5001, 4997, 5005, 5006, + + 5007, 5008, 5011, 5013, 5009, 5014, 5016, 5017, 5024, 5031, + 5033, 5035, 5039, 5028, 5026, 5041, 5042, 5047, 5045, 5049, + 5050, 5051, 5052, 5054, 5056, 5053, 5059, 5061, 5063, 5064, + 5068, 5065, 5066, 5078, 5067, 5079, 5081, 5082, 5085, 5088, + 5089, 5090, 5092, 5093, 5095, 5018, 5094, 5096, 5101, 5098, + 5100, 6793, 5102, 5104, 5105, 5108, 5118, 5119, 5122, 5130, + 5134, 5135, 6793, 5137, 6793, 5139, 5123, 5131, 5125, 5143, + 6793, 5145, 5146, 5147, 5148, 5112, 5150, 5149, 5152, 5153, + 5155, 5156, 6793, 5160, 5161, 5154, 5174, 5163, 6793, 5177, + 5167, 5178, 5179, 5180, 5184, 5182, 5185, 5188, 5189, 5191, + + 5193, 5195, 5181, 5202, 5205, 6793, 5207, 5210, 5218, 5213, + 5214, 5215, 5216, 5217, 5219, 5221, 5223, 5224, 5233, 5225, + 5236, 6793, 5237, 6793, 5238, 5240, 5242, 5243, 5244, 5245, + 5246, 5248, 6793, 6793, 5251, 5252, 5258, 5253, 5260, 5262, + 5264, 5265, 5269, 6793, 5270, 5272, 5282, 5274, 6793, 5277, + 5279, 5283, 5289, 6793, 5284, 5286, 5290, 5298, 5291, 5301, + 5302, 5304, 5293, 5305, 5306, 5312, 6793, 6793, 6793, 6793, + 5314, 5308, 5319, 5316, 5320, 5322, 5323, 5325, 5328, 5321, + 5324, 6793, 5336, 6793, 6793, 5337, 5338, 5340, 5344, 5345, + 5346, 5347, 5350, 6793, 5348, 6793, 5352, 5355, 5351, 5362, + + 5368, 5359, 5369, 5371, 5372, 5373, 5374, 5375, 5382, 5380, + 5383, 5381, 5386, 5390, 5395, 6793, 6793, 5387, 5398, 5399, + 5407, 5403, 5404, 5405, 5416, 5411, 5412, 5413, 5414, 5418, + 5420, 5427, 5430, 5423, 5425, 6793, 5431, 5434, 5432, 6793, + 5433, 6793, 5442, 5443, 5436, 5440, 5446, 5449, 5450, 5452, + 5457, 6793, 6793, 5456, 5465, 5460, 6793, 6793, 5444, 5464, + 5467, 5469, 5470, 5471, 5472, 5473, 5476, 5478, 6793, 5479, + 6793, 5480, 5483, 5492, 5482, 5495, 5499, 5485, 5502, 5505, + 5498, 5508, 6793, 5501, 5509, 6793, 5517, 5512, 5514, 5516, + 5519, 6793, 5520, 5523, 5525, 5527, 6793, 5529, 5531, 5532, + + 6793, 5539, 6793, 5533, 5540, 5536, 5550, 5542, 6793, 5543, + 5546, 6793, 5552, 5556, 5557, 5558, 5559, 6793, 5562, 5564, + 6793, 5565, 5567, 5568, 5574, 5575, 5577, 5570, 5578, 5579, + 5586, 5588, 5591, 6793, 6793, 5598, 5584, 135, 5600, 5581, + 5597, 5601, 5602, 5609, 5605, 5606, 5612, 6793, 6793, 5613, + 6793, 5607, 5616, 6793, 5614, 5620, 5624, 5626, 5622, 5628, + 5629, 5631, 5633, 5634, 5647, 5637, 5635, 5652, 5642, 5662, + 5638, 5664, 5665, 5667, 5669, 5671, 5659, 5673, 5674, 5653, + 5676, 5677, 5680, 5681, 5683, 5684, 5685, 6793, 5688, 5696, + 5697, 5689, 6793, 5702, 5691, 5709, 5706, 6793, 5713, 5710, + + 5714, 5715, 5716, 6793, 5703, 5718, 5722, 5720, 5727, 5728, + 5640, 5736, 5731, 5732, 5733, 6793, 6793, 6793, 5738, 5748, + 6793, 5750, 5740, 5734, 5742, 6793, 5752, 5753, 5745, 6793, + 6793, 5755, 5756, 5758, 6793, 5763, 5770, 6793, 5765, 6793, + 5766, 6793, 5768, 5769, 5771, 5775, 6793, 5776, 5778, 5779, + 5785, 6793, 5795, 5797, 5799, 5792, 5782, 5788, 5800, 6793, + 5809, 5806, 5808, 5815, 5804, 5812, 5810, 5816, 5817, 5825, + 5818, 5827, 6793, 5828, 5829, 5833, 5836, 5820, 5830, 5840, + 6793, 5841, 6793, 5847, 6793, 5844, 5849, 5848, 5842, 5850, + 5853, 5856, 5854, 5858, 5867, 5860, 5863, 5865, 5871, 5873, + + 6793, 6793, 5875, 5877, 6793, 5879, 6793, 5883, 6793, 5880, + 5885, 5884, 5886, 5888, 6793, 5895, 5887, 5890, 5903, 5898, + 5904, 6793, 5905, 5908, 5909, 5911, 6793, 6793, 5912, 5919, + 5915, 6793, 5914, 5917, 5925, 5918, 5926, 5930, 5927, 5931, + 5934, 5941, 5937, 5939, 5942, 5944, 5945, 5947, 5952, 5957, + 6793, 6793, 6793, 5953, 5948, 5967, 5964, 5966, 5976, 5959, + 6793, 5973, 5972, 5974, 5975, 5986, 5981, 5983, 6793, 5984, + 5985, 5987, 5988, 5990, 5991, 5992, 5993, 6793, 6005, 6007, + 5995, 5997, 6009, 6016, 6018, 6020, 6022, 6013, 6023, 6030, + 6027, 6793, 6029, 6793, 6793, 6025, 6793, 6031, 6033, 6035, + + 6034, 6036, 6793, 6039, 6040, 6041, 6043, 6042, 6050, 6046, + 6048, 6793, 6058, 6051, 6061, 6063, 6793, 6793, 6064, 6070, + 6793, 6073, 6074, 6067, 6082, 6065, 6075, 6087, 6084, 6793, + 6088, 6090, 6078, 6091, 6094, 6093, 6096, 6793, 6100, 6097, + 6101, 6103, 6793, 6104, 6109, 6110, 6112, 6113, 6793, 6114, + 6106, 6130, 6115, 6793, 6117, 6129, 6131, 6793, 6793, 6135, + 6139, 6136, 6793, 6793, 6793, 6793, 6142, 6143, 6145, 6147, + 6793, 6150, 6154, 6158, 6160, 6165, 6153, 6793, 6161, 6167, + 6169, 6170, 6171, 6793, 6793, 6172, 6173, 6174, 6178, 6175, + 6793, 6793, 6180, 6182, 6183, 6181, 6184, 6793, 6186, 6191, + + 6198, 6194, 6200, 6207, 6209, 6202, 6210, 6211, 6219, 6222, + 6212, 6214, 6221, 6225, 6226, 6224, 6228, 6238, 6233, 6235, + 6241, 6236, 6244, 6793, 6793, 6246, 6793, 6248, 6250, 6793, + 6793, 6253, 6255, 6257, 6261, 6793, 6263, 6265, 6267, 6269, + 6258, 6793, 6270, 6272, 6273, 6274, 6275, 6793, 6277, 6278, + 6281, 6283, 6287, 6289, 6290, 6293, 6793, 6288, 6305, 6793, + 6793, 6294, 6296, 6285, 6306, 6302, 6793, 6310, 6314, 6309, + 6316, 6315, 6317, 6322, 6793, 6318, 6319, 6793, 6793, 6325, + 6326, 6793, 6793, 6327, 6793, 6793, 6793, 6793, 6793, 6793, + 6793, 6793, 6331, 6330, 6793, 6332, 6340, 6343, 6793, 6347, + + 6793, 6337, 6348, 6350, 6344, 6793, 6349, 6793, 6351, 6355, + 6356, 6365, 6358, 6368, 6359, 6352, 6362, 6370, 6375, 6376, + 6378, 6377, 6379, 6381, 6383, 6393, 6385, 6390, 6793, 6793, + 6793, 6382, 6394, 6398, 6399, 6404, 6406, 6410, 6412, 6401, + 6413, 6415, 6416, 6417, 6419, 6423, 6430, 6425, 6428, 6426, + 6435, 6427, 6437, 6793, 6442, 6443, 6429, 6446, 6793, 6449, + 6793, 6432, 6793, 6793, 6452, 6453, 6455, 6456, 6465, 6466, + 6457, 6461, 6462, 6467, 6469, 6793, 6477, 6793, 6793, 6470, + 6473, 6793, 6478, 6479, 6793, 6480, 6482, 6484, 6485, 6486, + 6488, 6489, 6490, 6497, 6793, 6793, 6501, 6502, 6504, 6506, + + 6508, 6515, 6510, 6512, 6514, 6522, 6516, 6524, 6793, 6526, + 6528, 6530, 6793, 6532, 6531, 6534, 6537, 6538, 6545, 6540, + 6542, 6793, 6543, 6793, 6547, 6549, 6548, 6551, 6552, 6554, + 6562, 6560, 6564, 6793, 6566, 6568, 6572, 6573, 6575, 6578, + 6579, 6580, 6582, 6584, 6585, 6594, 6588, 6590, 6596, 6598, + 6600, 6793, 6602, 6604, 6793, 6605, 6606, 6607, 6608, 6612, + 6793, 6617, 6609, 6614, 6620, 6625, 6622, 6793, 6631, 6635, + 6632, 6793, 6636, 6793, 6793, 6637, 6638, 6640, 6644, 6646, + 6793, 6793, 6793, 6673, 6680, 6687, 6694, 6701, 6708, 6715, + 88, 6722, 6729, 6736, 6743, 6750, 6757, 6764, 6771, 6778, + + 6785 } ; -static yyconst flex_int16_t yy_def[3372] = +static yyconst flex_int16_t yy_def[3502] = { 0, - 3353, 1, 3354, 3354, 3355, 3355, 3356, 3356, 3357, 3357, - 3358, 3358, 3359, 3359, 3360, 3360, 3353, 3361, 3353, 3353, - 3353, 3353, 3362, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3363, 3353, 3353, 3353, - 3363, 3364, 3353, 3353, 3353, 3364, 3365, 3353, 3353, 3353, - 3353, 3365, 3366, 3353, 3353, 3353, 3366, 3367, 3353, 3368, - 3353, 3367, 3367, 3369, 3353, 3353, 3353, 3353, 3369, 3370, - 3353, 3353, 3353, 3370, 3361, 3361, 3353, 3371, 3362, 3371, - 3362, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3363, - 3363, 3364, 3364, 3365, 3365, 3353, 3366, 3366, 3367, 3367, - 3368, 3368, 3367, 3369, 3369, 3353, 3370, 3370, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3367, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3367, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3367, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3353, 3361, 3353, 3353, 3361, 3353, 3353, 3361, 3361, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3367, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, - 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3353, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3367, 3367, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3367, 3361, 3361, - - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, - 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361, - 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3361, 3353, 3361, 3367, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3367, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, - 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, - 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, - 3361, 3361, 3353, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - - 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3367, 3361, 3353, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3353, 3361, - 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, - 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3353, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361, - 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3353, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - 3361, 3353, 3361, 3361, 3361, 3361, 3367, 3361, 3353, 3361, - 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, - - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, - 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, - 3361, 3353, 3353, 3361, 3353, 3361, 3353, 3361, 3361, 3353, - 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, - 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, - - 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, - 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361, - 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, - 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3353, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3353, 3353, 3353, 3353, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, - 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - - 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, - 3361, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3353, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, - - 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, - 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3353, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3353, 3353, 3367, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3353, 3361, 3361, - 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, - - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3353, 3353, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, - 3353, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, - 3353, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3353, - 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3353, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3353, 3353, 3361, 3361, 3353, 3361, 3353, 3361, 3353, 3361, - - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3353, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, - 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3353, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3353, - 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, - - 3353, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, - 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3353, 3353, - 3361, 3361, 3361, 3353, 3353, 3353, 3361, 3361, 3361, 3361, - 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3353, 3353, - 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - - 3353, 3361, 3353, 3361, 3361, 3353, 3353, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3353, - 3353, 3361, 3361, 3353, 3353, 3361, 3353, 3353, 3353, 3353, - 3353, 3353, 3353, 3353, 3361, 3361, 3353, 3361, 3361, 3361, - 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, - - 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, - 3353, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3353, 3361, - 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, - 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - - 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, - 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, - 3361, 3353, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3361, - 3353, 3353, 0, 3353, 3353, 3353, 3353, 3353, 3353, 3353, - 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, - 3353 + 3483, 1, 3484, 3484, 3485, 3485, 3486, 3486, 3487, 3487, + 3488, 3488, 3489, 3489, 3490, 3490, 3483, 3491, 3483, 3483, + 3483, 3483, 3492, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3493, 3483, 3483, 3483, + 3493, 3494, 3483, 3483, 3483, 3494, 3495, 3483, 3483, 3483, + 3483, 3495, 3496, 3483, 3483, 3483, 3496, 3497, 3483, 3498, + 3483, 3497, 3497, 3499, 3483, 3483, 3483, 3483, 3499, 3500, + 3483, 3483, 3483, 3500, 3491, 3491, 3483, 3501, 3492, 3501, + 3492, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3493, + 3493, 3494, 3494, 3495, 3495, 3483, 3496, 3496, 3497, 3497, + 3498, 3498, 3497, 3499, 3499, 3483, 3500, 3500, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3497, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3497, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3483, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3491, 3497, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3497, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3483, 3491, 3483, 3483, 3491, 3483, 3483, 3491, + 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3497, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3483, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3483, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3491, 3491, 3491, 3491, 3491, 3497, 3497, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3497, 3491, 3491, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3483, + + 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3483, 3491, 3491, + 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, + 3497, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3483, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, + 3491, 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3491, 3491, 3491, 3497, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3483, 3483, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, + 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3483, 3491, 3491, 3491, 3483, 3491, 3491, 3491, + 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3497, 3491, 3483, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3483, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3483, 3491, 3483, 3491, 3491, 3491, 3483, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3483, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, + 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3497, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3483, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + + 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3483, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3497, 3491, 3483, + 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3483, 3491, + 3491, 3491, 3491, 3491, 3483, 3483, 3491, 3483, 3491, 3483, + 3491, 3491, 3483, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, + 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3483, + 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3497, 3491, 3491, 3491, + 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3483, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3491, + 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3483, 3483, 3483, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3483, 3483, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3497, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3483, 3483, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3483, + 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3483, 3483, 3491, 3491, 3491, 3483, 3483, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3483, 3491, 3491, 3483, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, + + 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, + 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3483, 3483, 3491, 3491, 3497, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3483, 3491, + 3483, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + + 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3483, 3483, 3483, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3483, + 3483, 3491, 3491, 3491, 3483, 3491, 3491, 3483, 3491, 3483, + 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, + 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3483, 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + + 3483, 3483, 3491, 3491, 3483, 3491, 3483, 3491, 3483, 3491, + 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3483, 3491, 3491, + 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3483, 3483, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3483, 3483, 3491, 3483, 3491, 3491, 3491, + + 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3483, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, + 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3483, 3483, 3491, + 3491, 3491, 3483, 3483, 3483, 3483, 3491, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3483, 3483, 3491, 3491, 3491, 3491, 3491, + 3483, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3483, 3483, 3491, 3483, 3491, 3491, 3483, + 3483, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3483, + 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3483, 3483, 3491, + 3491, 3483, 3483, 3491, 3483, 3483, 3483, 3483, 3483, 3483, + 3483, 3483, 3491, 3491, 3483, 3491, 3491, 3491, 3483, 3491, + + 3483, 3491, 3491, 3491, 3491, 3483, 3491, 3483, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3483, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3491, + 3483, 3491, 3483, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3483, 3483, 3491, + 3491, 3483, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3483, 3483, 3491, 3491, 3491, 3491, + + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, + 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3491, 3483, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, + 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3491, 3483, 3491, 3483, 3483, 3491, 3491, 3491, 3491, 3491, + 3483, 3483, 0, 3483, 3483, 3483, 3483, 3483, 3483, 3483, + 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, + + 3483 } ; -static yyconst flex_int16_t yy_nxt[6588] = +static yyconst flex_int16_t yy_nxt[6834] = { 0, 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, 18, 18, 22, 24, 25, 26, 27, 28, 29, 30, @@ -1602,7 +1646,7 @@ static yyconst flex_int16_t yy_nxt[6588] = 311, 86, 86, 86, 86, 307, 86, 318, 86, 86, 86, 319, 86, 325, 312, 313, 315, 309, 314, 316, 86, 320, 86, 329, 321, 328, 322, 330, 327, 326, - 332, 86, 86, 86, 724, 334, 86, 338, 323, 331, + 332, 86, 86, 86, 736, 334, 86, 338, 323, 331, 324, 86, 335, 86, 86, 340, 86, 342, 86, 339, 341, 86, 333, 86, 86, 86, 344, 336, 86, 86, 86, 343, 86, 86, 346, 86, 348, 86, 345, 86, @@ -1627,648 +1671,676 @@ static yyconst flex_int16_t yy_nxt[6588] = 425, 86, 436, 86, 86, 434, 86, 438, 86, 441, 431, 437, 433, 86, 430, 86, 443, 446, 86, 86, 439, 447, 440, 86, 442, 86, 86, 445, 86, 86, - 457, 448, 86, 444, 86, 455, 86, 86, 86, 458, - 461, 459, 499, 449, 170, 462, 450, 456, 469, 86, - - 463, 451, 452, 453, 454, 466, 86, 460, 464, 465, - 467, 86, 86, 86, 86, 468, 86, 86, 86, 477, - 86, 86, 86, 479, 86, 475, 478, 476, 86, 472, - 470, 86, 480, 471, 473, 474, 86, 86, 86, 481, - 483, 482, 86, 487, 86, 168, 86, 86, 488, 86, - 489, 492, 86, 505, 493, 166, 484, 486, 485, 490, - 86, 86, 86, 86, 491, 86, 494, 495, 497, 86, - 498, 86, 500, 496, 86, 506, 507, 86, 86, 508, - 504, 86, 86, 86, 86, 501, 509, 86, 502, 546, - 503, 86, 510, 86, 520, 86, 511, 522, 519, 523, - - 86, 524, 86, 525, 512, 86, 513, 527, 514, 537, - 535, 536, 521, 170, 538, 86, 86, 86, 86, 526, - 86, 515, 539, 86, 516, 556, 517, 86, 518, 86, - 86, 528, 529, 542, 540, 86, 541, 165, 86, 543, - 545, 530, 544, 531, 532, 533, 86, 547, 534, 548, - 549, 86, 86, 86, 86, 558, 86, 551, 553, 86, - 550, 86, 86, 559, 86, 86, 86, 563, 555, 557, - 86, 554, 86, 86, 86, 552, 561, 566, 86, 560, - 562, 567, 568, 86, 86, 86, 565, 86, 86, 573, - 564, 86, 572, 86, 569, 574, 575, 86, 86, 570, - - 86, 571, 577, 86, 578, 86, 580, 581, 86, 584, - 594, 86, 582, 576, 86, 86, 86, 585, 603, 579, - 586, 86, 86, 595, 583, 86, 589, 596, 86, 597, - 599, 587, 86, 588, 590, 591, 86, 598, 592, 593, - 86, 86, 86, 86, 86, 602, 601, 604, 86, 606, - 608, 86, 86, 600, 86, 86, 611, 607, 612, 609, - 86, 86, 86, 605, 86, 610, 613, 86, 86, 86, - 618, 86, 616, 617, 86, 614, 86, 86, 619, 86, - 86, 86, 615, 620, 624, 86, 86, 627, 623, 625, - 86, 626, 86, 86, 621, 622, 86, 628, 86, 630, - - 86, 629, 86, 632, 634, 86, 86, 86, 86, 635, - 86, 637, 631, 86, 633, 86, 645, 647, 86, 86, - 639, 723, 86, 86, 86, 86, 636, 638, 640, 86, - 641, 642, 644, 646, 648, 643, 86, 86, 86, 649, - 652, 86, 655, 86, 650, 658, 86, 651, 86, 657, - 86, 86, 653, 86, 86, 86, 654, 86, 661, 664, - 86, 86, 86, 656, 660, 665, 667, 86, 86, 659, - 86, 86, 86, 86, 86, 86, 662, 666, 663, 681, - 86, 86, 86, 668, 670, 163, 684, 669, 86, 671, - 679, 682, 720, 698, 672, 680, 673, 683, 86, 86, - - 86, 86, 674, 86, 675, 685, 688, 676, 677, 686, - 692, 86, 691, 687, 678, 689, 86, 86, 690, 86, - 86, 693, 696, 86, 699, 86, 694, 86, 701, 86, - 86, 86, 86, 695, 86, 86, 86, 86, 86, 86, - 707, 86, 703, 697, 702, 708, 704, 711, 712, 170, - 700, 705, 710, 713, 714, 86, 706, 709, 86, 86, - 86, 86, 86, 86, 86, 727, 86, 715, 721, 726, - 86, 86, 86, 716, 725, 718, 722, 719, 717, 729, - 86, 86, 86, 86, 728, 86, 731, 86, 86, 86, - 735, 86, 730, 734, 740, 732, 86, 733, 736, 741, - - 86, 743, 86, 744, 86, 737, 745, 739, 738, 742, - 746, 86, 86, 747, 86, 748, 86, 749, 86, 86, - 86, 86, 750, 86, 86, 754, 86, 753, 86, 86, - 752, 757, 86, 86, 756, 86, 762, 751, 755, 86, - 758, 86, 86, 761, 86, 763, 86, 766, 86, 86, - 767, 760, 759, 765, 86, 86, 86, 86, 773, 86, - 770, 768, 764, 86, 86, 86, 86, 86, 774, 86, - 781, 86, 771, 775, 776, 769, 86, 772, 86, 777, - 86, 783, 778, 779, 780, 782, 86, 86, 788, 789, - 786, 784, 785, 787, 86, 86, 86, 86, 790, 86, - - 791, 86, 793, 86, 794, 86, 86, 86, 795, 86, - 86, 802, 86, 798, 800, 796, 86, 86, 86, 86, - 799, 86, 792, 797, 86, 803, 808, 810, 806, 86, - 801, 86, 86, 807, 805, 809, 804, 811, 812, 86, - 86, 86, 813, 86, 86, 86, 814, 819, 821, 815, - 817, 86, 86, 86, 86, 822, 820, 816, 86, 86, - 825, 86, 86, 818, 824, 826, 86, 86, 86, 86, - 832, 86, 829, 86, 827, 828, 86, 834, 835, 86, - 837, 86, 86, 823, 839, 86, 830, 831, 833, 838, - 841, 836, 86, 86, 86, 845, 86, 842, 843, 840, - - 846, 86, 86, 847, 86, 86, 849, 851, 844, 86, - 86, 86, 86, 850, 86, 857, 86, 848, 86, 86, - 858, 86, 86, 86, 86, 86, 86, 852, 853, 854, - 866, 855, 859, 860, 856, 86, 86, 861, 863, 86, - 865, 86, 862, 86, 86, 869, 86, 864, 871, 86, - 86, 86, 86, 867, 86, 868, 86, 880, 86, 878, - 870, 86, 86, 86, 872, 873, 881, 86, 874, 875, - 876, 877, 879, 86, 86, 882, 86, 86, 884, 886, - 86, 86, 883, 86, 86, 86, 86, 885, 890, 891, - 892, 893, 887, 889, 86, 86, 888, 86, 86, 894, - - 86, 86, 896, 895, 86, 170, 897, 902, 86, 899, - 901, 86, 898, 900, 86, 903, 86, 86, 86, 909, - 86, 86, 904, 905, 86, 910, 912, 86, 86, 86, - 914, 906, 907, 911, 913, 916, 86, 86, 908, 86, - 86, 86, 86, 918, 922, 86, 86, 915, 86, 919, - 86, 86, 86, 923, 86, 924, 917, 86, 86, 86, - 921, 86, 86, 942, 925, 920, 86, 937, 938, 935, - 940, 86, 927, 86, 936, 86, 926, 86, 161, 928, - 86, 939, 929, 86, 943, 965, 930, 941, 86, 931, - 86, 944, 86, 948, 949, 86, 932, 933, 946, 934, - - 86, 86, 947, 945, 86, 950, 951, 86, 952, 86, - 86, 953, 957, 959, 960, 86, 954, 86, 86, 962, - 86, 86, 955, 956, 86, 961, 964, 968, 969, 86, - 958, 86, 966, 970, 86, 963, 971, 86, 972, 86, - 86, 975, 86, 967, 974, 86, 973, 976, 977, 86, - 979, 86, 86, 86, 978, 980, 86, 86, 86, 86, - 86, 983, 86, 987, 981, 86, 86, 986, 86, 86, - 990, 86, 86, 996, 86, 982, 1007, 86, 984, 985, - 988, 994, 989, 992, 991, 86, 997, 86, 86, 1000, - 995, 998, 86, 999, 993, 86, 1001, 86, 86, 1003, - - 1004, 86, 86, 1002, 86, 86, 86, 1005, 1008, 86, - 86, 86, 1006, 86, 1009, 86, 1011, 86, 86, 86, - 1012, 1016, 86, 86, 1019, 86, 86, 1018, 1010, 1020, - 86, 86, 1017, 1013, 1014, 86, 1015, 86, 86, 1022, - 1023, 86, 86, 1025, 86, 1021, 86, 1027, 86, 86, - 1026, 1028, 86, 86, 1033, 86, 1029, 86, 1031, 1034, - 86, 1024, 86, 1035, 86, 1032, 1038, 86, 1036, 86, - 1044, 86, 1041, 1030, 1037, 86, 86, 1043, 86, 86, - 1042, 86, 86, 1046, 86, 1040, 86, 86, 1039, 86, - 86, 86, 86, 1057, 1054, 1052, 86, 1045, 86, 86, - - 1047, 1048, 1049, 86, 86, 1058, 1050, 1051, 86, 1055, - 1059, 1056, 1053, 86, 1062, 86, 1065, 86, 1061, 86, - 1064, 86, 1060, 86, 86, 86, 86, 1063, 86, 86, - 1067, 1074, 1069, 86, 1075, 1077, 86, 86, 86, 1066, - 86, 86, 86, 1068, 86, 1070, 1082, 1072, 1071, 1073, - 1076, 1080, 1078, 1079, 1081, 86, 86, 86, 86, 86, - 86, 1086, 1089, 1083, 86, 1088, 86, 1084, 86, 1090, - 86, 86, 1093, 1095, 86, 1085, 86, 1091, 86, 1087, - 86, 1098, 86, 1092, 86, 1097, 1099, 170, 1101, 86, - 1102, 1094, 86, 86, 1096, 86, 86, 1100, 86, 86, - - 1105, 86, 86, 86, 86, 1118, 86, 86, 86, 86, - 1119, 86, 1109, 1104, 1103, 1106, 1108, 1121, 86, 86, - 1278, 1110, 1107, 1120, 1111, 86, 1124, 86, 1112, 86, - 1113, 1123, 1122, 1125, 1114, 86, 1115, 86, 86, 1128, - 1126, 1116, 86, 1127, 1129, 86, 1117, 1130, 86, 86, - 86, 1131, 1132, 86, 86, 1135, 86, 1134, 1138, 86, - 86, 1137, 86, 86, 1133, 1136, 86, 1144, 1139, 1142, - 1145, 86, 1143, 1141, 1146, 86, 86, 1140, 1147, 86, - 86, 1148, 1149, 86, 86, 1150, 86, 86, 86, 86, - 1151, 86, 1161, 1152, 86, 1153, 1160, 1162, 86, 1164, - - 1154, 1163, 1155, 86, 86, 1167, 86, 86, 1156, 1165, - 1171, 1166, 86, 1157, 1158, 86, 86, 86, 86, 86, - 1159, 86, 1172, 1177, 86, 1168, 1169, 1173, 1170, 86, - 86, 1180, 86, 1178, 86, 1175, 1174, 86, 86, 1176, - 86, 1181, 1185, 86, 86, 1183, 86, 1184, 86, 1186, - 1179, 1182, 86, 86, 1191, 1188, 86, 86, 86, 86, - 86, 1189, 1187, 1194, 86, 1192, 86, 86, 86, 1190, - 178, 86, 86, 86, 86, 86, 1193, 1201, 1196, 1195, - 1198, 1199, 1200, 1203, 1202, 86, 1197, 86, 86, 86, - 1204, 86, 86, 86, 86, 1206, 86, 86, 1211, 1205, - - 86, 1212, 1208, 1214, 86, 1213, 1207, 1210, 1216, 1209, - 86, 1215, 1218, 1217, 86, 86, 86, 1221, 86, 86, - 86, 1223, 1222, 86, 1224, 86, 86, 86, 1219, 1225, - 86, 86, 1220, 1226, 1232, 86, 1234, 86, 1227, 86, - 86, 1228, 86, 1230, 1236, 1229, 1231, 86, 86, 86, - 86, 1238, 1235, 86, 86, 1233, 86, 86, 1240, 1241, - 86, 1237, 1244, 86, 86, 1243, 1242, 86, 1245, 86, - 1239, 1250, 1246, 1247, 86, 1249, 86, 86, 1251, 86, - 1248, 86, 86, 1252, 1254, 86, 1255, 86, 86, 86, - 86, 1261, 1259, 1262, 1253, 86, 86, 86, 86, 86, - - 1256, 1263, 86, 1260, 86, 1266, 1257, 1264, 1258, 1265, - 1269, 86, 86, 1267, 1271, 86, 86, 1270, 1268, 86, - 86, 86, 86, 86, 86, 86, 1276, 1277, 1272, 1273, - 1279, 86, 86, 86, 1283, 86, 1284, 86, 86, 1274, - 86, 1275, 86, 1286, 1281, 1287, 86, 86, 86, 1280, - 1285, 1291, 1282, 86, 86, 86, 1288, 86, 86, 86, - 1290, 1289, 170, 1293, 1297, 86, 86, 86, 86, 86, - 86, 1292, 86, 1302, 1304, 86, 1294, 86, 1296, 1301, - 1299, 1303, 1298, 1295, 1300, 1306, 1307, 86, 86, 86, - 1305, 86, 86, 1308, 1309, 86, 86, 1310, 86, 86, - - 86, 1311, 1312, 86, 1314, 86, 1316, 86, 1320, 86, - 1317, 86, 1313, 86, 86, 1315, 86, 86, 86, 86, - 1318, 86, 1324, 86, 1326, 1321, 1319, 1330, 1334, 1323, - 86, 1322, 1335, 1327, 86, 1328, 86, 1325, 1329, 86, - 1331, 1332, 1333, 86, 86, 86, 86, 1336, 86, 1337, - 86, 1340, 1338, 86, 1339, 86, 86, 86, 1343, 1347, - 86, 86, 1342, 86, 86, 86, 1348, 1341, 1345, 1344, - 1349, 86, 86, 86, 86, 1346, 1351, 1352, 86, 1354, - 86, 1353, 86, 1350, 86, 86, 86, 86, 86, 1355, - 86, 86, 1357, 1359, 1360, 86, 1364, 1356, 86, 1358, - - 86, 86, 86, 86, 1361, 86, 1363, 86, 1362, 1368, - 1365, 1366, 86, 86, 1376, 1371, 1369, 86, 1367, 86, - 86, 1370, 86, 86, 1372, 86, 86, 1374, 86, 86, - 1379, 1378, 1373, 1375, 1377, 86, 86, 86, 1383, 1384, - 1382, 1381, 1388, 1380, 1385, 86, 1398, 1386, 86, 1389, - 1387, 86, 1390, 86, 86, 1399, 1391, 86, 1400, 1392, - 1393, 86, 86, 1402, 1394, 1403, 1397, 1401, 86, 86, - 1395, 86, 86, 1404, 1396, 86, 1406, 1405, 86, 1408, - 86, 86, 86, 1409, 86, 1410, 86, 86, 86, 86, - 1407, 1418, 1415, 1413, 86, 176, 86, 86, 1419, 1420, - - 1412, 1411, 1416, 86, 86, 86, 1414, 1417, 86, 1421, - 1428, 86, 1422, 1427, 86, 1429, 86, 1423, 86, 1424, - 1433, 1425, 1432, 1426, 1430, 1431, 86, 86, 86, 1437, - 86, 86, 86, 1434, 1438, 86, 86, 1436, 86, 1439, - 86, 1441, 86, 86, 1435, 1447, 1442, 1443, 86, 1448, - 86, 86, 86, 1440, 86, 86, 86, 1446, 1449, 1444, - 1451, 1445, 86, 86, 86, 1453, 1450, 86, 1452, 1454, - 1458, 86, 1457, 86, 1460, 86, 86, 86, 1461, 86, - 1462, 1455, 86, 86, 1463, 1466, 86, 86, 1459, 1456, - 1468, 86, 1465, 86, 1469, 86, 86, 86, 1473, 86, - - 1470, 1464, 86, 86, 86, 86, 1475, 1467, 86, 175, - 1477, 86, 86, 86, 1479, 86, 1481, 1471, 1472, 86, - 1478, 86, 1474, 86, 1476, 86, 1480, 86, 1483, 1486, - 1482, 86, 1485, 1484, 86, 86, 1487, 1488, 86, 1490, - 1489, 86, 86, 1492, 86, 86, 1491, 1496, 1493, 1497, - 1499, 1494, 86, 86, 86, 86, 86, 1498, 1495, 86, - 86, 1503, 86, 1500, 86, 170, 86, 86, 1508, 1509, - 86, 1502, 86, 1511, 86, 86, 1510, 86, 1501, 86, - 1505, 86, 86, 86, 1504, 86, 1506, 86, 86, 1519, - 1507, 1512, 1514, 86, 1516, 86, 86, 1513, 86, 1517, - - 86, 1515, 86, 1520, 86, 1518, 86, 1523, 1524, 86, - 1528, 1526, 86, 1522, 1533, 1529, 86, 1527, 1521, 1525, - 86, 1531, 1530, 86, 86, 86, 86, 86, 1532, 1540, - 1537, 86, 86, 1538, 1542, 1539, 1543, 86, 1534, 1535, - 86, 1545, 1536, 86, 86, 1541, 1546, 86, 1544, 86, - 86, 86, 86, 86, 86, 1550, 1551, 86, 86, 1554, - 86, 86, 1547, 86, 1559, 86, 86, 1549, 86, 1560, - 1548, 1552, 1553, 86, 1556, 1563, 1557, 1555, 86, 1558, - 86, 86, 86, 86, 1561, 1564, 86, 1562, 86, 1571, - 86, 86, 86, 86, 1566, 1570, 1572, 1565, 1567, 86, - - 1575, 1568, 1574, 86, 86, 86, 1580, 1569, 86, 1579, - 1573, 1581, 86, 1577, 86, 1583, 86, 86, 1576, 86, - 86, 86, 86, 1588, 1589, 1578, 1584, 1587, 1582, 86, - 86, 1590, 86, 1591, 86, 1585, 86, 86, 86, 1592, - 1593, 86, 1586, 86, 86, 1595, 86, 1594, 86, 86, - 86, 86, 1596, 86, 1601, 86, 1597, 1600, 86, 1603, - 1598, 86, 1607, 1599, 86, 1609, 1604, 1608, 86, 1602, - 1610, 86, 1605, 86, 1606, 86, 1612, 86, 86, 86, - 86, 86, 86, 1620, 1611, 1616, 86, 1615, 86, 86, - 86, 1621, 1613, 1623, 86, 86, 1614, 86, 1617, 86, - - 1619, 1618, 1626, 1625, 86, 86, 86, 86, 86, 1624, - 86, 86, 86, 1627, 1622, 1635, 1632, 86, 1634, 86, - 86, 1631, 86, 1628, 1629, 1630, 1633, 1639, 86, 1636, - 1640, 86, 1638, 86, 86, 1643, 86, 1642, 1637, 1641, - 86, 86, 86, 1646, 86, 1644, 86, 1647, 86, 86, - 86, 1650, 1656, 1645, 1654, 86, 86, 1651, 86, 86, - 1648, 1655, 1649, 1658, 86, 1653, 86, 86, 1652, 1659, - 1660, 1661, 86, 86, 1657, 86, 86, 1666, 1667, 86, - 86, 86, 86, 86, 1664, 86, 1671, 1670, 1672, 86, - 86, 1663, 1662, 1675, 86, 86, 1665, 86, 1668, 1674, - - 86, 86, 1669, 1676, 86, 86, 86, 86, 1679, 1673, - 86, 1677, 86, 1678, 86, 1681, 86, 1682, 86, 86, - 1688, 1680, 1683, 1686, 86, 86, 1687, 86, 86, 86, - 86, 1684, 86, 1685, 1689, 86, 1694, 86, 86, 86, - 86, 1700, 1690, 1691, 1695, 1697, 1699, 86, 86, 1693, - 1696, 86, 1692, 1698, 86, 1702, 86, 86, 86, 1701, - 1705, 170, 1704, 1707, 1708, 86, 86, 86, 86, 86, - 1703, 86, 86, 1716, 86, 86, 1706, 1709, 86, 1717, - 86, 1711, 86, 1714, 1710, 1720, 86, 1712, 1713, 1721, - 86, 86, 86, 1724, 86, 1718, 1715, 1722, 1719, 1725, - - 1726, 1728, 1723, 86, 1730, 86, 86, 86, 86, 86, - 1727, 86, 86, 86, 1735, 1732, 1733, 1729, 86, 1736, - 86, 86, 86, 86, 86, 1741, 1740, 1731, 86, 86, - 86, 86, 1748, 170, 1737, 86, 1734, 1739, 86, 1738, - 1749, 1743, 86, 86, 86, 1745, 1742, 1750, 1746, 86, - 1744, 1757, 1752, 1758, 1753, 86, 1754, 86, 1755, 86, - 1747, 1756, 86, 1751, 86, 86, 1760, 86, 1761, 1759, - 1762, 86, 86, 86, 86, 86, 86, 1763, 86, 1769, - 1770, 1768, 86, 1772, 1764, 86, 86, 1771, 86, 86, - 86, 1765, 86, 1766, 86, 1767, 86, 1774, 1775, 86, - - 86, 1776, 86, 86, 86, 86, 86, 86, 1777, 86, - 86, 1773, 1786, 1785, 1778, 86, 1780, 1781, 1782, 86, - 1779, 86, 1791, 1783, 86, 86, 1787, 1788, 86, 86, - 86, 1784, 1790, 1789, 86, 1797, 86, 86, 86, 86, - 86, 1793, 86, 1799, 1792, 86, 1801, 86, 1795, 1794, - 86, 1796, 1800, 86, 1802, 86, 1803, 1798, 86, 86, - 86, 86, 1806, 86, 86, 1808, 86, 1815, 1805, 1809, - 1807, 1804, 1810, 1816, 86, 1811, 1812, 1817, 86, 86, - 86, 1813, 86, 1820, 1819, 1821, 86, 86, 1814, 86, - 86, 1818, 86, 86, 1824, 1822, 86, 1825, 86, 86, - - 86, 86, 1828, 1834, 86, 86, 1823, 1833, 1830, 1826, - 1832, 1831, 1827, 86, 86, 86, 1840, 1829, 1836, 86, - 1835, 1841, 86, 86, 86, 86, 86, 86, 1842, 1838, - 86, 1846, 1837, 86, 86, 1839, 1843, 86, 1850, 1849, - 86, 86, 1848, 1847, 1845, 86, 1854, 86, 86, 86, - 1844, 86, 1851, 86, 1852, 1858, 86, 1853, 1855, 86, - 1859, 86, 86, 1860, 1863, 86, 1857, 1869, 1856, 1864, - 1868, 1861, 1867, 1862, 86, 86, 1866, 86, 86, 1870, - 1865, 86, 86, 1874, 86, 86, 1878, 1871, 86, 86, - 86, 86, 86, 1876, 1872, 86, 1873, 1875, 86, 1877, - - 86, 86, 86, 1879, 86, 86, 1882, 1880, 86, 1883, - 1881, 1888, 86, 86, 1884, 1885, 1890, 1891, 1886, 1887, - 86, 1892, 86, 86, 1893, 86, 86, 1897, 86, 86, - 1899, 1895, 86, 1889, 86, 86, 86, 1903, 86, 86, - 1894, 86, 1898, 86, 86, 1896, 1906, 1905, 86, 1907, - 1901, 86, 86, 1902, 1900, 170, 1908, 1909, 86, 1904, - 1913, 86, 86, 86, 86, 1917, 86, 1911, 86, 86, - 86, 86, 86, 1912, 86, 1910, 1915, 1919, 86, 1924, - 1920, 1914, 1916, 1918, 1921, 86, 86, 86, 1928, 86, - 1922, 168, 86, 1927, 1923, 1929, 1926, 86, 1925, 1930, - - 86, 86, 1931, 1933, 1934, 86, 86, 86, 86, 86, - 1932, 86, 86, 1936, 86, 1937, 86, 86, 1935, 86, - 86, 86, 1942, 86, 1943, 86, 86, 1938, 86, 1944, - 1939, 1947, 1940, 1945, 1941, 86, 86, 1948, 1946, 86, - 1951, 1953, 1955, 86, 86, 1950, 1956, 1952, 86, 86, - 1949, 86, 86, 86, 1954, 86, 86, 1962, 86, 1965, - 1966, 86, 1967, 86, 86, 1957, 86, 1958, 1959, 1960, - 1963, 1961, 1964, 1969, 86, 86, 1970, 86, 1973, 86, - 1975, 86, 86, 1977, 1968, 1974, 86, 1971, 86, 86, - 1979, 1976, 86, 86, 86, 86, 86, 1981, 1972, 86, - - 1978, 1982, 86, 86, 1984, 1985, 86, 86, 86, 1989, - 1986, 86, 1988, 1983, 1991, 86, 1990, 1980, 86, 86, - 86, 86, 86, 166, 1987, 1999, 86, 1992, 1993, 1994, - 2001, 86, 86, 86, 1995, 2002, 86, 1997, 1996, 86, - 2003, 1998, 2000, 86, 2006, 2005, 2008, 2004, 86, 86, - 86, 86, 86, 86, 2007, 2012, 86, 2009, 86, 2014, - 86, 86, 2017, 2018, 86, 86, 2020, 86, 86, 2010, - 86, 2011, 86, 2015, 86, 2026, 86, 2013, 2025, 2022, - 86, 2023, 2016, 86, 86, 2019, 86, 86, 86, 86, - 2032, 86, 86, 2021, 2029, 2024, 2036, 2030, 2028, 86, - - 86, 2027, 86, 86, 2035, 2039, 86, 86, 2034, 2040, - 2038, 86, 2031, 2042, 2043, 86, 86, 2033, 86, 86, - 2037, 2044, 86, 86, 86, 2041, 86, 2045, 86, 2049, - 86, 86, 2052, 2053, 2054, 2048, 86, 86, 86, 86, - 86, 86, 2046, 2047, 86, 2057, 2050, 86, 2062, 86, - 86, 2056, 2061, 86, 86, 86, 2051, 2055, 2059, 2066, - 86, 2058, 86, 2067, 86, 86, 2060, 86, 2064, 2063, - 2068, 2070, 86, 2065, 2069, 86, 2074, 86, 2072, 2071, - 86, 2075, 86, 2073, 86, 86, 86, 2081, 86, 2078, - 86, 2084, 86, 86, 2076, 2083, 86, 2085, 86, 86, - - 86, 2077, 2086, 2082, 86, 2079, 2080, 86, 2087, 2091, - 86, 2088, 2092, 86, 2093, 2095, 2089, 2096, 86, 2094, - 86, 86, 86, 86, 2090, 2100, 86, 2098, 86, 86, - 2099, 86, 2102, 2097, 86, 86, 2105, 2107, 2101, 170, - 86, 2103, 86, 86, 2108, 86, 86, 86, 86, 86, - 2113, 86, 2109, 2112, 86, 2114, 2120, 2106, 2110, 2104, - 2115, 86, 2116, 86, 2111, 2118, 86, 86, 86, 2117, - 86, 86, 2119, 2121, 86, 2123, 86, 2122, 86, 2124, - 86, 2126, 86, 86, 2130, 86, 2125, 86, 2129, 86, - 2127, 86, 86, 86, 2128, 86, 2131, 2132, 2133, 86, - - 2135, 86, 2134, 86, 2137, 86, 2142, 86, 86, 2136, - 2139, 2140, 86, 2141, 86, 86, 86, 86, 2147, 86, - 86, 2138, 86, 2143, 2144, 86, 2152, 86, 86, 2148, - 2146, 2150, 2145, 86, 86, 86, 2153, 2149, 86, 2156, - 2151, 2158, 86, 86, 86, 2154, 2159, 86, 2157, 2155, - 86, 2164, 86, 86, 2160, 86, 2166, 86, 165, 86, - 2161, 2167, 2162, 86, 2163, 2168, 86, 2170, 86, 2165, - 86, 2169, 86, 2171, 86, 2174, 2172, 2175, 86, 86, - 2173, 86, 86, 2178, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 2179, 86, 86, 2192, 86, 2181, 2177, - - 2176, 2182, 2183, 2184, 86, 2186, 2180, 2191, 86, 86, - 2187, 86, 2189, 86, 2185, 86, 2195, 2190, 86, 86, - 2196, 86, 163, 2188, 2198, 86, 2193, 2199, 86, 2194, - 86, 2197, 86, 2201, 86, 86, 2200, 2202, 86, 2204, - 2207, 2203, 86, 2205, 86, 86, 2209, 2206, 2211, 86, - 86, 86, 86, 86, 2214, 86, 2213, 86, 2215, 2210, - 2216, 2208, 86, 2219, 86, 86, 86, 2223, 86, 86, - 2220, 86, 2224, 86, 86, 2217, 2212, 2221, 2222, 2225, - 2228, 86, 2218, 86, 2229, 86, 86, 2226, 2227, 2232, - 86, 86, 2234, 86, 86, 86, 2233, 2238, 86, 161, - - 2230, 86, 2236, 86, 2240, 86, 2231, 86, 2241, 86, - 2237, 2235, 86, 2239, 2242, 86, 86, 2243, 86, 86, - 2247, 86, 86, 86, 2249, 2245, 86, 2244, 2246, 2250, - 86, 2251, 2252, 2253, 2254, 86, 2248, 86, 86, 2257, - 2255, 86, 2256, 2260, 86, 86, 86, 86, 86, 86, - 2259, 86, 86, 86, 86, 86, 86, 86, 2258, 2269, - 2266, 2264, 2270, 2261, 2262, 2263, 2265, 2267, 86, 86, - 86, 86, 2268, 86, 86, 2272, 2274, 2271, 2278, 2275, - 2280, 86, 86, 2279, 86, 86, 2276, 170, 2273, 2282, - 86, 2277, 86, 2281, 86, 86, 2284, 2288, 2286, 2285, - - 2290, 2283, 2289, 86, 2291, 86, 86, 86, 2292, 2287, - 86, 86, 2295, 86, 86, 2293, 86, 86, 2296, 2300, - 86, 86, 2301, 2299, 86, 86, 3353, 2304, 2302, 86, - 2305, 2294, 2297, 86, 86, 2306, 2307, 86, 86, 86, - 2309, 86, 2303, 2298, 2308, 2310, 86, 86, 86, 2311, - 86, 2312, 86, 86, 86, 2315, 86, 86, 2313, 2318, - 86, 86, 86, 2324, 86, 86, 2322, 86, 2317, 2325, - 86, 86, 86, 2314, 2319, 2316, 2320, 2321, 86, 86, - 86, 86, 2326, 2327, 2323, 2333, 2332, 86, 86, 2329, - 86, 2330, 2335, 86, 86, 86, 2328, 86, 2336, 2331, - - 86, 86, 86, 86, 86, 2334, 86, 2337, 86, 86, - 86, 86, 2349, 2338, 2343, 2348, 2351, 2346, 2339, 2341, - 2347, 2340, 2342, 2345, 2344, 2350, 86, 86, 86, 86, - 2352, 86, 86, 2356, 2357, 86, 86, 86, 2358, 2359, - 86, 2353, 86, 2354, 2355, 86, 2362, 86, 2365, 86, - 2366, 86, 2360, 86, 86, 2361, 2363, 86, 2367, 2364, - 86, 86, 2368, 2372, 86, 2373, 86, 86, 2375, 86, - 86, 2377, 86, 2371, 2369, 86, 86, 2380, 86, 86, - 2370, 2379, 2381, 86, 86, 86, 2374, 86, 2376, 86, - 2378, 86, 86, 2382, 2383, 3353, 2386, 86, 2384, 2387, - - 86, 2389, 86, 2391, 86, 86, 2385, 2392, 2388, 86, - 2390, 86, 2393, 2395, 86, 86, 86, 86, 2398, 2401, - 86, 86, 86, 86, 2396, 86, 86, 2394, 2400, 2405, - 2397, 86, 2399, 2406, 86, 86, 86, 86, 2404, 86, - 2408, 2402, 2411, 86, 86, 2403, 2412, 86, 86, 86, - 2407, 2409, 2410, 2414, 2413, 86, 2418, 86, 86, 2420, - 86, 86, 2415, 2421, 2424, 86, 2416, 2419, 86, 86, - 86, 86, 86, 2425, 2426, 2417, 2427, 86, 2422, 86, - 2423, 2429, 2431, 86, 86, 86, 2436, 86, 2433, 2434, - 2428, 2438, 86, 2430, 86, 86, 86, 86, 86, 2439, - - 2435, 2440, 86, 86, 86, 2432, 2443, 86, 2437, 86, - 86, 2442, 86, 2444, 3353, 2449, 2445, 2450, 2446, 2447, - 2441, 86, 2452, 86, 86, 86, 2448, 2455, 2451, 86, - 2454, 86, 2456, 86, 2453, 86, 170, 86, 86, 86, - 2457, 2458, 2463, 86, 86, 86, 86, 86, 2465, 86, - 86, 86, 2470, 2461, 2462, 2459, 86, 2460, 2466, 2464, - 86, 2467, 2468, 2469, 86, 2471, 2474, 86, 2473, 2478, - 2472, 86, 2475, 2476, 86, 86, 2479, 2480, 2477, 86, - 2482, 86, 86, 86, 86, 86, 2484, 86, 2481, 86, - 86, 86, 2488, 86, 2489, 86, 86, 3353, 2483, 2485, - - 86, 2491, 86, 2486, 2496, 86, 2492, 2490, 2493, 2487, - 2494, 86, 86, 86, 86, 86, 86, 2495, 86, 2499, - 2500, 86, 2497, 2502, 86, 86, 86, 86, 86, 2501, - 86, 2506, 2509, 86, 2498, 2508, 86, 86, 86, 2510, - 2505, 86, 86, 86, 2503, 2504, 86, 2514, 2507, 86, - 86, 2519, 86, 86, 2511, 2518, 2512, 86, 2516, 86, - 2513, 2520, 86, 86, 2515, 2517, 86, 2528, 2521, 86, - 2524, 2522, 86, 2523, 2529, 2525, 86, 2527, 2526, 86, - 86, 2531, 86, 86, 2533, 86, 86, 86, 86, 86, - 86, 2530, 2532, 2537, 86, 86, 2541, 86, 86, 2539, - - 2540, 2535, 2542, 86, 2534, 2536, 2543, 86, 2544, 86, - 86, 86, 86, 86, 2545, 2547, 2538, 86, 2552, 86, - 2549, 86, 2554, 86, 86, 2550, 86, 86, 86, 86, - 2548, 2546, 2553, 2551, 2557, 86, 86, 86, 2561, 2558, - 86, 2556, 2555, 2562, 86, 2563, 2559, 2560, 86, 86, - 86, 86, 86, 2567, 86, 2566, 86, 86, 2565, 86, - 86, 86, 2571, 2634, 2570, 3353, 2564, 86, 2568, 86, - 2569, 86, 2574, 2575, 86, 2576, 86, 2577, 86, 2572, - 2573, 2578, 86, 2579, 86, 86, 2582, 2580, 86, 2581, - 86, 2583, 86, 86, 86, 2588, 86, 86, 2590, 86, - - 2584, 2591, 86, 86, 2585, 86, 86, 86, 86, 86, - 2587, 86, 86, 2586, 2592, 2594, 2589, 2593, 2595, 86, - 2600, 86, 86, 86, 2597, 86, 86, 2596, 170, 2598, - 86, 2599, 2601, 86, 2608, 86, 86, 86, 2602, 2604, - 2607, 86, 2603, 86, 2606, 2609, 86, 86, 86, 2605, - 2610, 2615, 2611, 86, 3353, 86, 2619, 86, 2617, 2612, - 2618, 2616, 2620, 86, 86, 2613, 86, 2621, 86, 2614, - 86, 2622, 86, 2623, 86, 86, 86, 86, 86, 2625, - 86, 86, 2624, 86, 86, 86, 2638, 86, 86, 2632, - 2627, 2639, 86, 2626, 86, 2629, 2628, 86, 86, 86, - - 2630, 2631, 86, 2633, 2635, 2636, 2637, 2642, 2640, 2643, - 86, 2644, 2645, 86, 86, 86, 86, 2646, 86, 2641, - 86, 86, 2648, 86, 2654, 86, 2655, 86, 86, 86, - 86, 2649, 2647, 86, 2659, 86, 2650, 2652, 2651, 2658, - 2660, 86, 2653, 2661, 86, 2663, 86, 2657, 2656, 86, - 86, 86, 86, 86, 86, 86, 2666, 2670, 86, 2669, - 2671, 86, 2662, 86, 2665, 2664, 86, 86, 2672, 2673, - 86, 86, 2667, 2668, 86, 86, 2675, 2674, 86, 86, - 2679, 86, 2676, 2677, 86, 2684, 86, 2683, 86, 86, - 2687, 86, 86, 86, 2678, 86, 2690, 86, 2680, 2682, - - 2681, 86, 86, 2685, 2688, 2692, 86, 2686, 2693, 86, - 2689, 86, 2691, 86, 86, 2694, 2698, 86, 86, 86, - 86, 2695, 86, 2701, 2702, 86, 2699, 2700, 2704, 86, - 86, 2696, 86, 2697, 86, 2705, 86, 86, 2707, 2703, - 86, 2706, 2710, 86, 86, 2711, 2708, 2713, 86, 86, - 86, 86, 86, 2714, 2718, 86, 2709, 2720, 86, 2712, - 2716, 2717, 2715, 86, 86, 2719, 86, 86, 2721, 2722, - 86, 86, 2724, 86, 86, 86, 86, 86, 2725, 86, - 2723, 2730, 2727, 2728, 2731, 2733, 86, 2734, 86, 2729, - 2726, 86, 2732, 2735, 170, 86, 86, 86, 2736, 2740, - - 2737, 86, 86, 2742, 86, 86, 2741, 86, 2745, 86, - 2746, 86, 2744, 86, 2738, 2739, 2748, 86, 86, 2743, - 86, 2749, 2750, 86, 86, 2752, 2747, 2751, 86, 2753, - 2755, 86, 86, 86, 86, 2756, 86, 2754, 2757, 86, - 86, 2758, 2762, 86, 2763, 86, 86, 2760, 86, 2759, - 86, 2764, 2766, 86, 86, 2765, 86, 2768, 2767, 86, - 86, 2761, 86, 86, 2770, 2771, 86, 86, 2769, 86, - 86, 2776, 86, 2779, 86, 2774, 2773, 86, 2775, 86, - 2772, 2777, 86, 2780, 86, 2778, 2784, 86, 86, 86, - 86, 86, 86, 2781, 86, 2785, 2789, 86, 86, 2787, - - 86, 86, 2782, 2783, 2793, 86, 2788, 3210, 2786, 2791, - 2796, 2790, 2794, 86, 2797, 2798, 86, 86, 2792, 86, - 86, 86, 2799, 86, 2801, 2800, 2795, 86, 86, 2804, - 86, 86, 86, 2805, 86, 86, 2802, 86, 2806, 86, - 2809, 2803, 2811, 86, 86, 2807, 3353, 2808, 2812, 86, - 2813, 86, 86, 86, 86, 2810, 2814, 86, 2815, 2816, - 86, 86, 2818, 2820, 2817, 86, 2819, 86, 2821, 86, - 86, 2824, 86, 2822, 2825, 86, 2826, 86, 86, 86, - 2828, 2827, 2831, 86, 86, 2823, 86, 2832, 2833, 86, - 2829, 86, 2835, 86, 86, 86, 2839, 2836, 86, 2830, - - 2840, 86, 86, 86, 86, 2842, 2834, 2841, 86, 2838, - 2843, 86, 2837, 86, 2848, 86, 2851, 86, 86, 2847, - 86, 2844, 2850, 86, 2845, 86, 86, 86, 2846, 2854, - 2852, 2853, 86, 86, 2857, 2856, 86, 86, 86, 86, - 2849, 86, 2860, 2864, 86, 86, 86, 86, 86, 86, - 2866, 86, 2855, 2858, 2859, 2863, 2861, 2870, 2867, 2862, - 2865, 2871, 2868, 2873, 2869, 86, 2872, 86, 2874, 86, - 2875, 2876, 86, 86, 2877, 86, 2878, 86, 2879, 86, - 2880, 2881, 86, 86, 86, 86, 86, 2882, 86, 86, - 2885, 86, 86, 2887, 2891, 86, 2892, 86, 2888, 86, - - 86, 86, 2893, 2883, 86, 2886, 2895, 86, 2896, 2898, - 2884, 2889, 2890, 2897, 86, 2899, 86, 86, 2894, 86, - 86, 86, 2904, 86, 86, 86, 2900, 86, 2901, 2902, - 86, 2905, 86, 2906, 86, 86, 86, 2910, 2914, 2903, - 86, 2908, 2911, 86, 2907, 2913, 86, 2909, 2912, 2916, - 86, 2915, 2917, 86, 2918, 86, 86, 2921, 86, 86, - 86, 86, 86, 86, 2927, 86, 86, 86, 2922, 2944, - 86, 2925, 2923, 86, 2920, 86, 86, 2928, 2930, 86, - 2919, 2931, 2961, 2926, 86, 2932, 2924, 2929, 2933, 86, - 86, 86, 2935, 86, 2934, 2936, 2937, 86, 2938, 86, - - 2939, 86, 2940, 86, 86, 86, 86, 86, 86, 2943, - 2941, 2945, 2946, 2947, 86, 86, 86, 86, 2953, 86, - 2949, 2951, 2942, 2948, 86, 2955, 86, 86, 86, 86, - 86, 2956, 86, 2957, 2958, 2952, 2950, 86, 2959, 86, - 2964, 86, 86, 86, 2954, 86, 86, 2962, 86, 2960, - 2967, 86, 86, 86, 2968, 2965, 2966, 86, 2972, 2963, - 2971, 86, 2973, 86, 2969, 86, 2974, 2977, 86, 86, - 2970, 2979, 86, 2980, 86, 86, 2982, 86, 86, 86, - 86, 2975, 86, 2987, 86, 2986, 86, 2990, 2978, 86, - 86, 2976, 86, 86, 2983, 2984, 2981, 86, 2985, 2989, - - 86, 2993, 86, 86, 2996, 86, 2988, 2998, 86, 86, - 86, 2992, 2991, 86, 2999, 86, 2994, 2997, 3001, 86, - 3002, 86, 2995, 3004, 86, 86, 86, 3009, 86, 3010, - 3000, 86, 86, 86, 86, 3003, 3006, 3007, 3013, 86, - 86, 3015, 86, 3005, 3011, 3014, 3008, 86, 86, 3018, - 3021, 3012, 3019, 86, 3017, 86, 86, 86, 86, 3016, - 3020, 3024, 86, 3023, 86, 86, 3022, 3027, 86, 3025, - 3030, 86, 86, 86, 86, 86, 86, 3035, 86, 86, - 86, 3353, 86, 86, 3026, 3028, 3029, 3031, 3041, 3034, - 3032, 3038, 3039, 86, 3040, 86, 3037, 86, 3036, 3033, - - 86, 3044, 86, 3045, 86, 3043, 3046, 86, 86, 86, - 3049, 3042, 86, 3051, 86, 86, 86, 3050, 86, 86, - 86, 3047, 86, 3056, 3057, 86, 86, 86, 86, 86, - 86, 3063, 86, 86, 3052, 3048, 3064, 86, 3065, 3062, - 3053, 3054, 3055, 3060, 86, 86, 3059, 86, 3061, 86, - 3069, 86, 3058, 3066, 3068, 3070, 86, 86, 86, 3073, - 86, 3072, 3071, 86, 3067, 86, 3076, 86, 3075, 86, - 3074, 86, 86, 86, 3077, 86, 86, 3080, 86, 86, - 86, 3082, 86, 3078, 3083, 3081, 86, 86, 86, 86, - 86, 3079, 86, 86, 3092, 3093, 3095, 3084, 3088, 3085, - - 3086, 3353, 86, 86, 3087, 3089, 3090, 86, 3091, 86, - 3098, 86, 3094, 3097, 3096, 3102, 3099, 3100, 86, 3101, - 86, 3103, 86, 86, 86, 3106, 86, 86, 3104, 3107, - 86, 3108, 3109, 86, 86, 3110, 3111, 3114, 86, 3112, - 3113, 86, 86, 3105, 86, 3118, 3115, 3117, 86, 86, - 86, 86, 86, 3116, 3123, 86, 86, 3122, 86, 86, - 86, 86, 86, 3119, 3126, 3125, 86, 3353, 3127, 86, - 3120, 3121, 86, 3131, 86, 3130, 3128, 3132, 86, 3135, - 3129, 3124, 3133, 86, 3134, 86, 3138, 3140, 86, 86, - 86, 3139, 86, 86, 3136, 86, 86, 3137, 86, 3148, - - 3144, 3145, 3147, 86, 3142, 86, 86, 3150, 86, 3151, - 86, 3143, 3149, 3141, 86, 86, 86, 3146, 3154, 86, - 3153, 3155, 86, 3157, 86, 3156, 3158, 86, 86, 3152, - 3159, 86, 3160, 86, 3161, 86, 3162, 86, 3163, 86, - 3164, 86, 86, 3167, 86, 86, 86, 86, 86, 86, - 86, 3166, 3172, 86, 3165, 3168, 86, 3169, 86, 3176, - 86, 86, 3175, 3173, 3178, 86, 86, 3170, 3171, 3174, - 86, 86, 3182, 3180, 86, 3177, 86, 3184, 3185, 3179, - 86, 86, 86, 86, 86, 3187, 86, 86, 86, 86, - 86, 86, 3181, 3191, 3183, 3186, 86, 3192, 86, 3190, - - 3193, 3188, 86, 3196, 3189, 3194, 86, 86, 86, 3197, - 3199, 86, 3200, 86, 3202, 3195, 3201, 86, 86, 86, - 3198, 86, 3205, 3204, 86, 86, 86, 3203, 86, 3209, - 86, 3207, 86, 3212, 86, 3206, 3208, 86, 86, 86, - 86, 3211, 86, 3213, 86, 86, 86, 3214, 86, 3219, - 3221, 86, 3215, 3216, 3218, 86, 3220, 3224, 86, 86, - 3223, 86, 3225, 3217, 3226, 3227, 86, 3222, 3228, 3229, - 86, 3231, 86, 86, 3232, 3230, 3233, 86, 3234, 86, - 3235, 86, 86, 86, 86, 3237, 86, 86, 3238, 3239, - 3242, 86, 86, 86, 3246, 86, 86, 86, 3245, 3248, - - 86, 3236, 3241, 86, 3244, 3243, 3249, 86, 86, 3252, - 86, 3240, 86, 86, 3255, 86, 86, 3247, 3250, 86, - 3256, 86, 86, 3259, 3257, 3260, 86, 3251, 3253, 86, - 3254, 86, 86, 86, 3265, 86, 3261, 86, 3264, 3262, - 3258, 3266, 86, 86, 86, 86, 86, 86, 3270, 86, - 86, 3263, 3272, 86, 86, 3277, 86, 86, 3267, 3269, - 3279, 86, 3278, 3268, 86, 86, 3271, 3274, 3273, 3275, - 86, 86, 3276, 3283, 86, 3285, 3284, 86, 3286, 86, - 86, 86, 86, 3281, 3280, 3287, 86, 3288, 3291, 3282, - 86, 3289, 3292, 86, 86, 3293, 3294, 86, 3290, 86, - - 86, 86, 86, 3295, 86, 3300, 86, 86, 3297, 86, - 3303, 86, 3304, 86, 86, 86, 86, 86, 86, 3296, - 3302, 3298, 3307, 3299, 3305, 3301, 86, 3306, 86, 3311, - 86, 3310, 86, 3308, 86, 3309, 86, 3312, 3353, 3313, - 86, 3315, 86, 3317, 86, 3318, 86, 86, 3322, 86, - 86, 3319, 86, 3316, 3320, 3321, 3314, 3323, 86, 86, - 3324, 3325, 86, 86, 86, 86, 3326, 86, 86, 3328, - 3327, 86, 3329, 3331, 86, 86, 3333, 86, 86, 3337, - 3334, 3338, 86, 3330, 3332, 86, 86, 3335, 86, 3341, - 3342, 86, 86, 3344, 86, 86, 3336, 3345, 86, 3343, - - 86, 86, 3346, 86, 3339, 3340, 3347, 86, 3348, 3351, - 86, 3352, 86, 3353, 3353, 3353, 3353, 3353, 3353, 3349, - 3353, 3353, 3353, 3353, 3353, 3353, 3350, 47, 47, 47, - 47, 47, 47, 47, 52, 52, 52, 52, 52, 52, - 52, 57, 57, 57, 57, 57, 57, 57, 63, 63, - 63, 63, 63, 63, 63, 68, 68, 68, 68, 68, - 68, 68, 74, 74, 74, 74, 74, 74, 74, 80, - 80, 80, 80, 80, 80, 80, 89, 89, 3353, 89, - 89, 89, 89, 160, 160, 3353, 3353, 3353, 160, 160, - 162, 162, 3353, 3353, 162, 3353, 162, 164, 3353, 3353, - - 3353, 3353, 3353, 164, 167, 167, 3353, 3353, 3353, 167, - 167, 169, 3353, 3353, 3353, 3353, 3353, 169, 171, 171, - 3353, 171, 171, 171, 171, 174, 3353, 3353, 3353, 3353, - 3353, 174, 177, 177, 3353, 3353, 3353, 177, 177, 90, - 90, 3353, 90, 90, 90, 90, 17, 3353, 3353, 3353, - 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, - 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, - 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, - 3353, 3353, 3353, 3353, 3353, 3353, 3353 + 457, 448, 86, 444, 86, 455, 86, 86, 170, 462, + 458, 463, 459, 449, 464, 86, 450, 456, 469, 470, + + 86, 451, 452, 453, 454, 460, 467, 86, 461, 465, + 466, 468, 86, 86, 86, 86, 86, 86, 478, 86, + 86, 86, 86, 480, 476, 477, 479, 86, 481, 473, + 471, 86, 86, 472, 474, 475, 86, 483, 86, 485, + 86, 488, 86, 489, 86, 490, 482, 86, 484, 86, + 506, 86, 86, 494, 491, 487, 493, 495, 486, 86, + 86, 86, 86, 86, 492, 496, 498, 86, 499, 86, + 501, 497, 170, 507, 86, 500, 508, 86, 505, 86, + 86, 86, 522, 502, 86, 509, 503, 523, 504, 86, + 510, 86, 511, 545, 86, 86, 525, 86, 512, 569, + + 528, 168, 513, 86, 86, 524, 526, 514, 527, 530, + 515, 86, 516, 540, 517, 541, 529, 86, 539, 86, + 542, 86, 86, 86, 86, 86, 548, 518, 86, 543, + 519, 166, 520, 86, 521, 86, 544, 531, 532, 547, + 550, 546, 553, 86, 549, 551, 86, 533, 534, 535, + 536, 537, 554, 552, 538, 86, 86, 86, 86, 86, + 556, 563, 555, 558, 561, 86, 86, 86, 86, 564, + 86, 86, 560, 568, 86, 86, 559, 86, 557, 86, + 562, 86, 566, 86, 86, 567, 565, 86, 571, 578, + 570, 572, 573, 575, 86, 574, 86, 576, 577, 86, + + 582, 579, 580, 86, 86, 585, 86, 583, 86, 86, + 86, 601, 86, 86, 86, 86, 165, 86, 603, 581, + 591, 592, 584, 587, 602, 586, 588, 589, 590, 86, + 86, 606, 593, 604, 594, 86, 86, 86, 86, 605, + 595, 86, 86, 86, 608, 609, 610, 611, 596, 597, + 86, 86, 598, 599, 86, 613, 600, 607, 615, 86, + 86, 86, 86, 618, 614, 616, 619, 86, 86, 86, + 612, 620, 86, 86, 617, 86, 86, 625, 623, 86, + 624, 86, 86, 621, 86, 626, 86, 86, 86, 631, + 622, 627, 632, 86, 86, 86, 630, 633, 86, 635, + + 629, 628, 86, 86, 638, 86, 634, 636, 86, 637, + 86, 640, 86, 86, 86, 86, 642, 639, 86, 645, + 86, 643, 86, 86, 86, 86, 641, 653, 86, 656, + 647, 86, 86, 86, 644, 646, 86, 654, 648, 652, + 649, 650, 651, 655, 658, 657, 661, 659, 86, 86, + 86, 660, 663, 86, 86, 666, 86, 665, 86, 86, + 86, 86, 86, 86, 669, 662, 86, 672, 86, 86, + 668, 673, 86, 664, 86, 86, 86, 675, 86, 667, + 86, 86, 670, 671, 674, 690, 86, 677, 678, 86, + 676, 86, 679, 689, 86, 86, 687, 680, 694, 681, + + 692, 688, 693, 86, 86, 682, 86, 683, 691, 695, + 684, 685, 86, 696, 86, 86, 86, 686, 697, 698, + 702, 701, 699, 86, 86, 700, 86, 706, 86, 86, + 704, 703, 705, 86, 709, 86, 711, 86, 86, 86, + 86, 86, 715, 86, 86, 86, 707, 86, 708, 718, + 713, 86, 712, 86, 710, 714, 719, 86, 716, 722, + 86, 724, 726, 170, 720, 717, 721, 725, 86, 723, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, + 733, 735, 727, 746, 86, 86, 728, 730, 86, 731, + 734, 729, 737, 732, 738, 86, 739, 740, 741, 86, + + 742, 86, 86, 86, 86, 86, 743, 86, 747, 86, + 163, 86, 86, 744, 752, 765, 745, 86, 748, 753, + 86, 755, 86, 751, 754, 749, 756, 86, 750, 757, + 758, 86, 759, 86, 760, 86, 761, 86, 763, 86, + 86, 762, 86, 86, 766, 86, 86, 86, 86, 764, + 769, 770, 86, 768, 86, 774, 773, 86, 86, 86, + 86, 86, 767, 776, 86, 778, 86, 780, 86, 86, + 86, 771, 86, 772, 86, 783, 777, 775, 779, 86, + 787, 86, 86, 781, 86, 86, 86, 788, 790, 86, + 782, 784, 86, 791, 786, 785, 792, 793, 789, 794, + + 86, 795, 86, 86, 86, 86, 802, 796, 797, 798, + 799, 86, 86, 86, 86, 86, 800, 804, 801, 805, + 803, 86, 86, 86, 86, 808, 807, 86, 809, 810, + 86, 86, 86, 86, 812, 86, 814, 816, 86, 86, + 86, 806, 811, 813, 817, 86, 86, 823, 86, 161, + 86, 825, 815, 86, 819, 821, 820, 822, 818, 86, + 826, 827, 86, 86, 86, 824, 86, 828, 830, 86, + 86, 829, 834, 836, 832, 86, 831, 86, 86, 86, + 835, 86, 86, 86, 837, 840, 86, 839, 86, 833, + 841, 86, 847, 844, 86, 86, 842, 86, 86, 843, + + 86, 86, 838, 86, 849, 850, 854, 845, 846, 86, + 852, 86, 86, 848, 856, 86, 862, 851, 853, 86, + 86, 855, 86, 860, 857, 86, 863, 858, 861, 86, + 86, 86, 864, 866, 86, 86, 86, 859, 865, 86, + 872, 86, 86, 867, 86, 873, 86, 86, 86, 86, + 86, 874, 868, 869, 881, 870, 879, 86, 86, 871, + 86, 86, 875, 876, 86, 86, 86, 877, 86, 878, + 86, 86, 880, 86, 86, 883, 884, 888, 882, 86, + 86, 86, 86, 86, 885, 896, 889, 886, 895, 887, + 890, 86, 897, 86, 86, 86, 899, 891, 892, 893, + + 894, 86, 86, 86, 86, 898, 901, 903, 902, 86, + 86, 86, 900, 86, 86, 86, 908, 907, 86, 904, + 909, 86, 906, 905, 86, 914, 911, 86, 86, 912, + 86, 86, 170, 913, 919, 86, 915, 920, 910, 917, + 86, 86, 916, 918, 921, 86, 86, 86, 86, 922, + 925, 86, 928, 86, 86, 929, 924, 931, 86, 86, + 923, 86, 926, 930, 932, 86, 86, 935, 86, 86, + 933, 86, 927, 86, 86, 937, 941, 86, 86, 86, + 938, 86, 86, 86, 934, 942, 936, 86, 943, 86, + 86, 86, 940, 86, 939, 86, 944, 957, 86, 956, + + 86, 958, 954, 946, 945, 86, 955, 947, 86, 959, + 948, 86, 86, 967, 949, 961, 965, 950, 86, 962, + 86, 963, 86, 86, 951, 952, 968, 953, 960, 86, + 86, 86, 86, 964, 86, 977, 86, 966, 86, 969, + 970, 86, 971, 86, 86, 972, 984, 980, 982, 976, + 973, 86, 978, 86, 979, 86, 974, 975, 981, 86, + 986, 990, 86, 86, 983, 989, 991, 86, 987, 86, + 985, 86, 993, 86, 86, 1001, 992, 86, 994, 995, + 86, 996, 997, 86, 988, 86, 998, 1000, 86, 86, + 999, 86, 86, 86, 86, 86, 1004, 86, 1008, 86, + + 86, 1002, 1007, 86, 86, 1011, 86, 86, 1017, 86, + 1003, 1013, 1015, 1005, 1006, 1009, 86, 1010, 86, 86, + 1018, 1016, 86, 86, 1012, 1019, 86, 1020, 1021, 1014, + 1023, 1028, 86, 1025, 86, 86, 86, 1024, 1022, 86, + 86, 1027, 86, 1026, 1029, 86, 1030, 86, 86, 86, + 1031, 86, 86, 86, 1033, 86, 1038, 86, 1034, 86, + 1041, 86, 86, 86, 86, 86, 1032, 1042, 1039, 1036, + 1035, 1040, 86, 86, 1037, 86, 86, 1047, 86, 86, + 86, 1043, 1049, 86, 1044, 1045, 86, 1048, 1046, 86, + 1052, 1050, 1053, 1055, 1051, 86, 1057, 86, 1056, 86, + + 86, 86, 1054, 86, 86, 86, 86, 86, 1063, 1065, + 1060, 86, 1058, 1066, 86, 86, 1064, 86, 86, 1059, + 1068, 86, 1062, 86, 86, 86, 1070, 1061, 86, 1079, + 86, 86, 1067, 1074, 1076, 86, 86, 86, 1069, 86, + 1072, 1071, 86, 1073, 86, 1080, 1077, 86, 1075, 1081, + 1078, 86, 1085, 1084, 86, 86, 1083, 86, 1082, 1087, + 1088, 86, 86, 86, 86, 1086, 86, 86, 86, 1098, + 86, 1091, 1093, 1099, 1089, 86, 1101, 1090, 86, 86, + 86, 86, 86, 1092, 86, 1104, 1094, 1096, 1106, 1095, + 1097, 86, 1100, 1105, 1102, 86, 86, 86, 86, 86, + + 1113, 1103, 1110, 86, 1112, 1114, 86, 86, 1108, 86, + 1115, 86, 86, 86, 1107, 1118, 1109, 1120, 86, 1111, + 86, 86, 86, 86, 86, 1117, 86, 1116, 1122, 1123, + 1126, 86, 1130, 1119, 86, 1127, 170, 1128, 1121, 86, + 86, 86, 1124, 1129, 1125, 1133, 1131, 86, 86, 86, + 86, 86, 86, 1146, 1132, 86, 1149, 86, 86, 1147, + 1134, 86, 1136, 1137, 86, 1151, 86, 1175, 86, 1138, + 86, 1135, 1139, 86, 86, 1154, 1140, 86, 1141, 1148, + 1156, 1152, 1142, 1150, 1143, 1157, 86, 86, 1153, 1144, + 86, 1155, 86, 86, 1145, 86, 1158, 1160, 86, 86, + + 1163, 86, 86, 1166, 1159, 86, 86, 1162, 86, 1161, + 1164, 1165, 1171, 86, 1173, 1167, 1174, 1170, 1172, 1169, + 86, 1176, 86, 1168, 1177, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 1189, 86, 1192, 86, 86, 86, + 1188, 1194, 1193, 86, 1191, 86, 1179, 1178, 86, 1180, + 86, 1181, 1190, 86, 1200, 1195, 1182, 1196, 1183, 86, + 86, 1199, 86, 86, 1184, 86, 86, 1197, 1201, 1185, + 1186, 1202, 1198, 86, 1207, 86, 1187, 86, 86, 1210, + 1203, 1204, 1208, 86, 1205, 86, 1211, 86, 86, 86, + 1215, 1206, 86, 1213, 86, 86, 86, 1209, 86, 1216, + + 86, 86, 1214, 1221, 1218, 86, 1212, 1219, 86, 86, + 1222, 1217, 86, 1224, 86, 86, 1220, 86, 86, 86, + 86, 86, 86, 86, 1223, 1231, 86, 1229, 1226, 1228, + 1230, 86, 1225, 1233, 86, 1227, 1237, 1232, 1234, 86, + 1235, 86, 86, 1236, 86, 86, 86, 86, 86, 178, + 1242, 1243, 1244, 1238, 86, 1239, 86, 1245, 1247, 1241, + 1240, 86, 1246, 1248, 86, 86, 86, 1252, 86, 86, + 86, 1249, 1253, 86, 86, 86, 1254, 1256, 1250, 1255, + 86, 86, 1251, 1257, 86, 1263, 1259, 86, 1258, 1265, + 86, 86, 86, 86, 1261, 86, 86, 1267, 1260, 1262, + + 86, 86, 86, 1269, 86, 1266, 1271, 1264, 86, 1272, + 1268, 86, 86, 86, 1270, 86, 1275, 1274, 1273, 1278, + 1276, 86, 86, 1281, 1277, 1282, 86, 86, 1280, 86, + 86, 86, 86, 1286, 1285, 86, 1283, 1279, 86, 86, + 86, 86, 86, 1290, 1292, 1293, 1296, 1294, 1284, 86, + 86, 86, 86, 1287, 1291, 86, 86, 1288, 1298, 1289, + 1295, 1297, 86, 86, 86, 1302, 86, 1299, 86, 1301, + 86, 86, 86, 1303, 1304, 86, 86, 86, 86, 1305, + 1309, 1300, 86, 86, 1307, 1306, 1310, 1312, 86, 1311, + 86, 1308, 86, 1316, 1317, 86, 86, 1320, 86, 86, + + 86, 1319, 1314, 86, 86, 86, 1313, 86, 1325, 86, + 1318, 1315, 86, 86, 86, 86, 86, 1323, 1322, 1331, + 86, 86, 1321, 1327, 170, 1324, 86, 1326, 86, 1332, + 86, 1333, 1328, 1334, 86, 1330, 86, 86, 86, 86, + 1329, 1339, 1341, 86, 1335, 1337, 1343, 1340, 1336, 1338, + 1344, 86, 86, 86, 86, 86, 86, 1347, 1346, 1342, + 86, 86, 86, 86, 86, 1348, 86, 1345, 1349, 1351, + 86, 86, 86, 1354, 86, 1350, 86, 1352, 1357, 86, + 86, 86, 1353, 86, 176, 1355, 1358, 1361, 1363, 86, + 1356, 1360, 1359, 1367, 86, 1368, 86, 1364, 86, 1365, + + 1362, 1369, 1366, 1370, 86, 1371, 86, 86, 86, 86, + 1373, 86, 86, 86, 86, 175, 86, 1377, 1376, 86, + 1372, 1380, 86, 86, 1384, 86, 1379, 1374, 86, 1375, + 86, 86, 1378, 1381, 1382, 1385, 1386, 86, 86, 86, + 86, 1383, 1388, 1389, 86, 86, 86, 1390, 1387, 86, + 86, 86, 86, 86, 86, 1391, 1396, 86, 1394, 1392, + 86, 86, 1403, 1397, 1393, 1395, 1401, 86, 86, 86, + 86, 1398, 1400, 86, 1399, 86, 1402, 1404, 1406, 86, + 86, 86, 1413, 86, 1415, 1407, 86, 1405, 86, 86, + 86, 1409, 1408, 86, 1410, 86, 1412, 1418, 86, 86, + + 86, 1416, 86, 1414, 1421, 1411, 86, 1417, 86, 86, + 1501, 1423, 1422, 86, 1420, 1419, 1424, 86, 86, 1428, + 1426, 1425, 1427, 86, 1429, 86, 1436, 1438, 1430, 86, + 1439, 1431, 1432, 86, 1437, 86, 1433, 1442, 86, 86, + 1440, 86, 1434, 86, 1443, 86, 1435, 1441, 86, 1445, + 1444, 86, 1447, 86, 86, 86, 1448, 1452, 1449, 86, + 86, 86, 1446, 86, 86, 86, 1455, 86, 1453, 1458, + 1459, 86, 1460, 1451, 1450, 86, 86, 86, 1456, 86, + 1454, 1461, 86, 1457, 86, 1468, 86, 1467, 1462, 86, + 1469, 1470, 1471, 1463, 86, 1464, 86, 1465, 86, 1466, + + 86, 1474, 1473, 86, 1477, 86, 1480, 1472, 86, 1478, + 86, 86, 1476, 1481, 1479, 86, 86, 86, 1475, 86, + 1487, 86, 1488, 86, 1483, 1482, 86, 86, 86, 86, + 86, 1489, 86, 1486, 1491, 1484, 1485, 86, 86, 1493, + 86, 1490, 1492, 86, 1494, 1497, 1498, 86, 1500, 86, + 1495, 86, 86, 86, 1502, 86, 86, 1503, 1499, 1506, + 86, 1508, 86, 1496, 1505, 86, 1509, 86, 86, 86, + 1513, 86, 1504, 1510, 86, 86, 1507, 86, 86, 1518, + 1516, 86, 86, 86, 86, 86, 1519, 86, 1511, 1521, + 1512, 1520, 1515, 86, 1514, 86, 1523, 86, 1517, 1524, + + 1525, 1522, 86, 86, 86, 86, 86, 1527, 1529, 1530, + 1531, 1526, 1528, 86, 1532, 86, 86, 86, 86, 86, + 1533, 1538, 1539, 1535, 86, 1536, 86, 86, 86, 1540, + 1542, 1541, 1537, 86, 1534, 86, 86, 86, 1546, 86, + 86, 86, 1543, 86, 170, 86, 1548, 86, 1545, 86, + 1554, 1555, 86, 86, 1544, 1550, 86, 86, 1556, 1551, + 1547, 1549, 1557, 86, 86, 86, 86, 1552, 86, 86, + 86, 1565, 1553, 1560, 86, 86, 86, 1558, 1562, 1563, + 86, 1569, 86, 1559, 1561, 1570, 86, 1564, 86, 86, + 1574, 86, 86, 1572, 1566, 1575, 86, 86, 1568, 86, + + 1567, 1577, 86, 86, 86, 1571, 86, 1578, 1573, 1576, + 86, 1579, 1586, 1585, 86, 86, 86, 1580, 1581, 1583, + 1587, 1582, 1584, 1588, 86, 1591, 1590, 86, 1589, 86, + 1592, 86, 86, 86, 86, 1593, 86, 86, 1596, 1597, + 86, 86, 86, 170, 86, 1600, 86, 86, 1605, 86, + 1595, 86, 86, 1594, 1598, 1606, 1602, 1599, 86, 1609, + 86, 1601, 1603, 86, 1604, 86, 86, 1607, 86, 86, + 1610, 1608, 86, 86, 86, 86, 86, 1612, 1616, 1611, + 86, 1613, 1617, 1614, 86, 1618, 86, 1622, 1615, 86, + 1619, 1623, 86, 1621, 1627, 1620, 86, 1626, 1624, 1628, + + 86, 86, 86, 1630, 86, 86, 1631, 86, 86, 86, + 1632, 86, 1625, 1636, 1637, 1629, 1635, 1638, 86, 86, + 86, 86, 1639, 86, 1633, 86, 1640, 1641, 86, 86, + 1634, 86, 86, 1642, 86, 86, 1644, 86, 86, 86, + 1643, 86, 1649, 86, 1645, 1648, 86, 1651, 1646, 86, + 1647, 1652, 86, 1655, 86, 1657, 86, 1650, 1656, 86, + 1658, 86, 1654, 1653, 86, 1660, 86, 86, 86, 86, + 86, 1664, 1659, 1661, 1668, 1662, 1663, 86, 86, 86, + 86, 86, 1669, 86, 1672, 86, 1675, 1665, 1667, 1666, + 86, 1674, 86, 86, 86, 86, 86, 86, 1670, 86, + + 1673, 86, 1676, 86, 1683, 1671, 86, 86, 86, 1684, + 1680, 1687, 1677, 1678, 1679, 86, 1682, 86, 1681, 1688, + 86, 1689, 86, 86, 1693, 86, 1685, 1686, 1690, 1691, + 1692, 86, 86, 86, 1695, 86, 86, 86, 1696, 86, + 86, 1699, 1703, 86, 1694, 1704, 1705, 86, 1700, 86, + 86, 1697, 86, 1698, 1708, 1702, 86, 1701, 86, 86, + 1709, 86, 1706, 1707, 86, 1710, 86, 86, 1715, 1716, + 86, 86, 168, 1713, 86, 86, 86, 1712, 1711, 86, + 1719, 86, 1720, 1721, 86, 1717, 1714, 1723, 86, 86, + 86, 86, 1718, 1724, 1725, 86, 1722, 86, 86, 1730, + + 1726, 1728, 86, 86, 86, 1733, 86, 1727, 86, 86, + 86, 1731, 86, 86, 1739, 1737, 86, 86, 1729, 86, + 86, 1734, 86, 1732, 86, 1740, 1738, 86, 1736, 1735, + 86, 1745, 86, 86, 1742, 1741, 86, 86, 1746, 1750, + 86, 1748, 1744, 86, 86, 1743, 86, 1751, 1749, 1754, + 1747, 86, 1753, 86, 86, 86, 86, 1752, 1757, 1761, + 1759, 1760, 86, 1755, 1756, 1758, 86, 86, 170, 86, + 86, 86, 1763, 86, 86, 86, 1771, 86, 86, 1762, + 86, 86, 1772, 1777, 1764, 1766, 86, 1765, 1769, 1767, + 1768, 1775, 86, 86, 86, 1776, 1779, 86, 1770, 1781, + + 1773, 1774, 1780, 86, 1783, 86, 86, 1785, 86, 86, + 86, 86, 86, 1778, 86, 86, 1790, 1787, 86, 1788, + 1784, 86, 1791, 1782, 86, 86, 86, 86, 1786, 1795, + 86, 1796, 1792, 86, 86, 86, 1789, 1803, 86, 166, + 1794, 1800, 1793, 86, 1801, 1797, 1798, 86, 86, 86, + 86, 1805, 1804, 1799, 86, 1808, 1802, 1810, 1807, 1812, + 1809, 1811, 86, 1813, 1817, 86, 86, 1806, 86, 86, + 86, 1814, 86, 1815, 86, 1816, 86, 86, 86, 86, + 86, 1818, 1824, 1823, 86, 1825, 1820, 1827, 86, 1826, + 1819, 86, 86, 86, 86, 86, 86, 1821, 86, 1822, + + 1829, 1830, 86, 1831, 86, 86, 86, 86, 86, 86, + 86, 86, 1832, 86, 86, 1828, 1833, 1841, 86, 86, + 1836, 1837, 1838, 1834, 86, 1835, 1842, 1839, 86, 86, + 1843, 1845, 86, 1848, 1849, 1840, 1844, 86, 1851, 86, + 1846, 86, 86, 1854, 86, 1847, 86, 86, 86, 86, + 1858, 86, 1856, 1850, 86, 1852, 86, 86, 86, 86, + 1857, 86, 86, 1853, 86, 1860, 1855, 1863, 1865, 1859, + 86, 86, 165, 1866, 1864, 1862, 1867, 86, 1868, 86, + 1861, 86, 1872, 1873, 86, 1869, 1874, 86, 86, 1875, + 1870, 1877, 1878, 86, 86, 86, 1871, 86, 86, 1876, + + 86, 1882, 1881, 86, 86, 1883, 86, 1879, 86, 86, + 86, 1891, 1892, 86, 1880, 1886, 86, 86, 1888, 1890, + 1885, 1889, 1884, 86, 86, 86, 86, 1887, 1898, 86, + 86, 86, 86, 1899, 86, 1900, 1893, 1894, 86, 1896, + 86, 1895, 1897, 1901, 86, 1904, 86, 1906, 86, 1908, + 1903, 1907, 86, 86, 1902, 86, 1905, 86, 1912, 86, + 1916, 1910, 86, 1909, 1911, 1917, 86, 86, 86, 86, + 86, 1924, 86, 1913, 1921, 1922, 1918, 1915, 1914, 1925, + 86, 86, 1919, 86, 86, 86, 1928, 86, 1923, 1926, + 1920, 86, 86, 1929, 1927, 1932, 86, 86, 1936, 86, + + 1934, 86, 86, 1930, 86, 1931, 1935, 1937, 86, 1933, + 86, 86, 86, 86, 86, 86, 1941, 86, 1940, 86, + 1950, 1938, 1942, 1944, 86, 1943, 86, 1939, 1945, 1948, + 86, 1946, 1951, 1947, 1953, 86, 86, 1952, 86, 86, + 86, 1957, 86, 1959, 86, 86, 86, 86, 86, 86, + 86, 1949, 1963, 86, 1965, 86, 1954, 1955, 1958, 1956, + 1966, 86, 1961, 86, 86, 1962, 1960, 86, 1964, 1968, + 86, 86, 1969, 86, 86, 170, 1974, 86, 86, 1970, + 86, 1967, 1972, 1973, 1977, 86, 1971, 1975, 86, 1981, + 86, 86, 1976, 86, 86, 86, 86, 1978, 86, 1980, + + 1979, 1983, 86, 1988, 86, 1982, 86, 1984, 1985, 86, + 86, 1995, 1986, 86, 1989, 2000, 1991, 86, 1987, 1992, + 86, 86, 1990, 86, 1993, 1994, 86, 1997, 1998, 86, + 86, 86, 1996, 86, 2001, 86, 86, 2002, 86, 86, + 86, 86, 1999, 86, 2006, 2007, 86, 86, 86, 86, + 2008, 86, 2011, 86, 2004, 2009, 2005, 2003, 2012, 86, + 86, 2010, 2019, 86, 2017, 2015, 2018, 2020, 2014, 86, + 86, 2013, 2016, 86, 2021, 86, 86, 86, 86, 2026, + 86, 2029, 2030, 86, 2031, 86, 86, 86, 2022, 2023, + 86, 2024, 2027, 86, 2028, 86, 2025, 2033, 86, 86, + + 2034, 2037, 86, 86, 2039, 86, 2032, 2038, 2035, 86, + 86, 2036, 2040, 2041, 2043, 2048, 86, 86, 2045, 86, + 86, 2044, 86, 2042, 86, 2046, 2047, 86, 86, 2049, + 2050, 86, 2051, 86, 86, 86, 2055, 86, 2053, 2054, + 2057, 86, 2056, 86, 86, 86, 86, 86, 163, 2052, + 2065, 86, 2067, 2058, 2059, 2060, 86, 2068, 86, 86, + 2061, 86, 2063, 2062, 86, 2064, 2070, 2066, 86, 2074, + 2071, 86, 2072, 2069, 86, 86, 86, 2078, 86, 2073, + 2075, 86, 86, 2080, 86, 86, 86, 86, 2083, 2084, + 86, 2086, 86, 86, 2076, 86, 2091, 2077, 86, 86, + + 86, 86, 86, 86, 2081, 2085, 86, 2079, 2082, 2088, + 2089, 2093, 86, 86, 2092, 86, 2090, 86, 2087, 86, + 2094, 2095, 2096, 86, 2099, 86, 2097, 2103, 86, 2098, + 2102, 86, 86, 86, 2106, 2101, 2109, 86, 2105, 2100, + 86, 86, 86, 2107, 2110, 86, 2112, 86, 2104, 86, + 86, 2108, 2111, 86, 86, 86, 86, 2116, 86, 2119, + 2120, 2121, 2115, 86, 86, 86, 86, 86, 86, 2113, + 86, 86, 2114, 2117, 2124, 86, 2129, 86, 86, 2123, + 2128, 86, 2118, 2122, 86, 2126, 86, 2130, 2133, 86, + 2125, 86, 2134, 2127, 86, 2135, 2131, 2132, 2137, 86, + + 86, 86, 86, 2136, 2138, 2141, 86, 2142, 86, 86, + 86, 86, 2139, 2148, 2145, 86, 2143, 2140, 86, 86, + 86, 86, 86, 2151, 2153, 86, 2155, 2144, 86, 2154, + 2146, 2147, 86, 2149, 2152, 2150, 86, 86, 2160, 86, + 2162, 2156, 2161, 86, 2164, 2163, 86, 2157, 2165, 86, + 86, 86, 2158, 86, 86, 2169, 2167, 2159, 86, 86, + 86, 86, 86, 2171, 86, 2168, 86, 2173, 2175, 86, + 2170, 2177, 2172, 86, 86, 2166, 170, 86, 2178, 86, + 86, 2181, 86, 86, 86, 86, 2176, 2174, 2179, 2185, + 86, 2187, 2182, 2180, 2183, 86, 2188, 86, 2186, 2189, + + 86, 2191, 2184, 86, 86, 2190, 86, 86, 86, 2192, + 2194, 2193, 86, 86, 86, 2197, 86, 2195, 2196, 86, + 2199, 86, 86, 2203, 86, 86, 2198, 2202, 2200, 86, + 86, 86, 2207, 2201, 2204, 2205, 2206, 2208, 86, 86, + 86, 86, 86, 86, 2215, 2213, 86, 86, 86, 2210, + 86, 2214, 86, 86, 86, 2220, 86, 2217, 86, 2209, + 2211, 86, 2212, 86, 86, 2216, 2221, 2219, 86, 2225, + 2218, 86, 2223, 2226, 2222, 86, 86, 86, 2224, 86, + 2229, 86, 2228, 2227, 2231, 86, 86, 86, 2237, 2230, + 2232, 86, 86, 2233, 86, 2234, 2235, 86, 2239, 86, + + 2236, 2240, 2242, 86, 86, 2244, 86, 86, 2238, 86, + 2241, 2248, 2243, 86, 2245, 2247, 86, 86, 86, 86, + 86, 86, 2253, 2250, 86, 86, 86, 86, 86, 86, + 2246, 86, 2249, 2254, 86, 86, 86, 2262, 2256, 2257, + 2252, 2251, 86, 2258, 86, 86, 2255, 2259, 86, 2261, + 2263, 2267, 86, 86, 86, 2260, 2264, 2266, 86, 2271, + 86, 2270, 2268, 86, 86, 2265, 86, 86, 2269, 2273, + 86, 2276, 2274, 2272, 2277, 86, 86, 86, 2275, 86, + 86, 2279, 2282, 86, 2278, 2280, 2284, 86, 86, 2281, + 2285, 86, 86, 2287, 86, 86, 2289, 2286, 2283, 86, + + 2291, 2290, 86, 86, 86, 2295, 86, 2292, 86, 86, + 2299, 86, 86, 2288, 2296, 2300, 86, 86, 86, 2297, + 2298, 2293, 2304, 86, 2294, 2301, 86, 2305, 86, 86, + 2308, 2302, 2303, 86, 86, 86, 86, 2310, 2309, 86, + 2314, 86, 86, 2306, 86, 2316, 86, 2312, 86, 2307, + 86, 2317, 2311, 86, 2315, 2313, 86, 2318, 2319, 86, + 86, 2323, 86, 86, 2320, 2321, 2325, 86, 2322, 86, + 86, 2326, 86, 86, 2327, 2329, 2328, 86, 2331, 86, + 86, 2324, 2330, 86, 2332, 2336, 86, 86, 86, 2334, + 2333, 86, 2335, 86, 86, 86, 86, 86, 2337, 86, + + 2343, 86, 86, 86, 2339, 2338, 2347, 2341, 2344, 2342, + 86, 2345, 2349, 86, 86, 2348, 2340, 2346, 86, 2350, + 2352, 86, 86, 2358, 86, 2353, 86, 86, 2360, 86, + 86, 86, 2351, 2354, 86, 2357, 2359, 86, 2363, 2355, + 86, 86, 2364, 2367, 170, 86, 2369, 2356, 2361, 86, + 2362, 2370, 86, 2365, 86, 2371, 2372, 2373, 86, 86, + 2366, 86, 86, 2376, 86, 2375, 2368, 2374, 86, 2377, + 86, 2381, 86, 86, 2382, 86, 2384, 86, 2385, 2380, + 86, 2387, 2386, 2378, 86, 2388, 86, 2383, 86, 2390, + 86, 86, 86, 2389, 2379, 86, 2391, 86, 86, 86, + + 86, 2393, 86, 86, 2396, 86, 86, 86, 2399, 86, + 2392, 2394, 86, 86, 2403, 2398, 2405, 86, 86, 86, + 86, 2401, 2406, 2395, 2400, 2397, 86, 2402, 2407, 86, + 86, 2408, 86, 86, 2404, 86, 86, 2413, 2410, 2416, + 86, 2411, 86, 86, 2417, 2409, 2414, 86, 86, 2412, + 86, 86, 86, 2415, 86, 86, 86, 86, 2426, 86, + 86, 2418, 2419, 2424, 86, 2430, 2433, 86, 2428, 2422, + 2420, 2427, 2421, 2423, 2429, 2425, 86, 2432, 2431, 86, + 86, 86, 86, 2435, 2434, 86, 86, 2439, 2440, 86, + 86, 86, 2441, 161, 2436, 86, 2437, 86, 2438, 2442, + + 86, 86, 2445, 86, 2448, 86, 2443, 86, 2444, 2449, + 86, 86, 2446, 86, 86, 2447, 2450, 2452, 2451, 2455, + 86, 2456, 86, 86, 2458, 86, 2454, 2453, 86, 2460, + 86, 86, 86, 2463, 86, 86, 2462, 2464, 86, 86, + 86, 86, 2457, 86, 86, 86, 2459, 2461, 2466, 2465, + 2470, 2471, 86, 2473, 86, 2468, 86, 2467, 86, 86, + 2477, 86, 2469, 2472, 2475, 86, 2479, 86, 2476, 86, + 86, 86, 2482, 86, 2474, 2478, 2485, 86, 86, 86, + 2480, 86, 86, 86, 2481, 86, 2483, 2489, 2490, 86, + 2492, 86, 2484, 86, 2495, 86, 2488, 86, 2486, 86, + + 86, 2491, 2487, 86, 86, 86, 2493, 2497, 2494, 86, + 2502, 86, 86, 2498, 2504, 86, 86, 2496, 2505, 2508, + 2503, 2499, 2500, 86, 86, 86, 86, 86, 2509, 2510, + 86, 2501, 2511, 2506, 86, 2507, 86, 86, 86, 2513, + 86, 2515, 2517, 2518, 2520, 86, 2521, 86, 2512, 86, + 86, 2514, 86, 2524, 2525, 2519, 86, 86, 86, 86, + 2516, 2526, 2523, 86, 86, 86, 2522, 2529, 86, 86, + 86, 2528, 2530, 2535, 2531, 2536, 86, 2532, 2533, 86, + 2537, 86, 2527, 86, 2534, 86, 86, 86, 2541, 86, + 2542, 86, 2543, 86, 2546, 2540, 86, 170, 2545, 86, + + 2544, 86, 2547, 2538, 86, 2539, 2552, 86, 86, 86, + 86, 86, 86, 86, 86, 2563, 86, 2550, 2554, 2548, + 2551, 2549, 2555, 2553, 2558, 86, 86, 2556, 2557, 2559, + 2560, 86, 86, 2564, 2561, 2565, 86, 86, 86, 86, + 2566, 2568, 2569, 2562, 2567, 86, 86, 86, 86, 2571, + 86, 86, 2572, 86, 2570, 86, 2573, 2578, 2574, 86, + 2577, 86, 86, 86, 86, 2575, 86, 2580, 2581, 2582, + 2583, 86, 2576, 86, 86, 2579, 86, 86, 2584, 86, + 86, 2589, 86, 2585, 2588, 2586, 86, 86, 86, 86, + 86, 2591, 2590, 86, 2595, 86, 2598, 2587, 86, 86, + + 2597, 86, 86, 2594, 2599, 86, 2600, 2592, 2593, 86, + 86, 86, 86, 2596, 86, 2604, 86, 2601, 2606, 86, + 2602, 2609, 86, 2610, 2607, 86, 86, 86, 2603, 86, + 2608, 2613, 2605, 2611, 86, 86, 2612, 86, 2615, 86, + 2614, 86, 2616, 86, 2618, 2619, 2620, 2621, 2622, 86, + 86, 86, 86, 2617, 2624, 86, 86, 86, 86, 2623, + 86, 86, 86, 2628, 2633, 86, 86, 2631, 86, 2625, + 2626, 2632, 2635, 2627, 2634, 86, 86, 2636, 86, 86, + 86, 86, 2630, 86, 2637, 2639, 2629, 86, 2644, 86, + 2641, 86, 2646, 86, 86, 2642, 86, 86, 86, 86, + + 2640, 2638, 2645, 2643, 2649, 86, 86, 86, 2653, 2650, + 86, 2648, 2647, 2654, 86, 2655, 2651, 2652, 86, 86, + 86, 86, 86, 2659, 86, 2658, 86, 86, 2657, 86, + 86, 86, 2663, 2703, 2662, 86, 2656, 86, 2660, 86, + 2661, 86, 2666, 2667, 86, 2668, 86, 2669, 86, 2664, + 2665, 2670, 86, 2671, 86, 86, 2674, 2672, 86, 2673, + 86, 2675, 86, 86, 86, 86, 86, 86, 2682, 86, + 2676, 2684, 86, 2685, 86, 2678, 86, 86, 86, 86, + 86, 86, 2677, 2681, 2679, 2683, 2680, 2686, 2688, 2687, + 2689, 86, 86, 2694, 86, 86, 2691, 2696, 86, 2690, + + 2692, 86, 86, 86, 2695, 86, 86, 170, 86, 86, + 2705, 86, 2693, 86, 86, 86, 2699, 86, 86, 2704, + 2701, 86, 2698, 2706, 2712, 86, 2707, 2697, 2708, 2700, + 2702, 86, 86, 2709, 2729, 86, 86, 2714, 86, 2710, + 2715, 2711, 2716, 86, 86, 2713, 2717, 86, 86, 2718, + 86, 2719, 86, 2720, 2721, 2722, 86, 2723, 86, 86, + 86, 86, 86, 86, 2731, 86, 86, 86, 86, 86, + 2735, 2724, 2736, 86, 86, 2740, 86, 2726, 2725, 2742, + 86, 2728, 2727, 2730, 2733, 2732, 2734, 86, 2737, 2738, + 86, 86, 86, 86, 86, 86, 2739, 86, 86, 2741, + + 2745, 86, 86, 3483, 86, 2752, 86, 2753, 86, 2743, + 2744, 2751, 2746, 2747, 2754, 86, 2748, 2749, 86, 2757, + 86, 2750, 2758, 86, 2756, 2759, 86, 86, 86, 86, + 86, 86, 86, 2755, 86, 2764, 86, 86, 86, 2768, + 2770, 2767, 2761, 2763, 2760, 2769, 86, 2762, 2771, 86, + 86, 86, 2765, 86, 2766, 86, 86, 86, 86, 86, + 2773, 86, 2777, 2778, 86, 86, 86, 2775, 2782, 2772, + 2783, 86, 2774, 86, 2786, 86, 2776, 86, 86, 2779, + 2780, 2784, 86, 86, 2781, 86, 2789, 86, 2787, 2791, + 86, 2785, 86, 2788, 2792, 86, 86, 86, 2790, 86, + + 2793, 2797, 86, 86, 86, 2794, 86, 2800, 2799, 2798, + 2801, 86, 2795, 2803, 86, 86, 2796, 86, 86, 86, + 2804, 86, 2806, 2802, 2809, 86, 2805, 86, 2810, 86, + 2807, 2812, 86, 86, 86, 86, 86, 86, 86, 2808, + 2818, 86, 2813, 2811, 2815, 2816, 2814, 2817, 2821, 86, + 86, 86, 2820, 86, 2819, 2822, 2823, 86, 86, 86, + 86, 86, 2825, 86, 86, 86, 2826, 2824, 86, 2828, + 2831, 2829, 86, 2832, 2834, 86, 2830, 2836, 2827, 2833, + 2835, 86, 86, 2838, 170, 86, 86, 86, 86, 2843, + 3483, 2840, 2839, 86, 86, 86, 86, 2845, 2844, 86, + + 86, 2837, 2848, 86, 2847, 2841, 2842, 2849, 86, 2846, + 2851, 86, 86, 2850, 2853, 2852, 86, 86, 86, 2854, + 86, 2855, 2856, 2858, 86, 86, 86, 86, 2859, 86, + 2860, 86, 2857, 86, 2865, 2861, 86, 2866, 86, 2863, + 86, 2867, 2862, 86, 86, 86, 86, 86, 2871, 86, + 2868, 2869, 2870, 86, 2864, 86, 86, 86, 2872, 86, + 2873, 2874, 86, 86, 2879, 86, 2876, 2875, 2877, 86, + 86, 2878, 2883, 86, 2880, 2881, 2885, 86, 86, 2884, + 86, 2888, 86, 86, 86, 86, 86, 2882, 2893, 86, + 2889, 86, 86, 86, 2891, 86, 86, 2886, 86, 2887, + + 2897, 2892, 2900, 2890, 2898, 86, 2901, 2895, 86, 2903, + 2894, 86, 86, 2896, 86, 86, 2902, 2904, 86, 2905, + 2899, 86, 86, 2907, 2909, 86, 2906, 86, 2910, 86, + 86, 2911, 86, 86, 2914, 2908, 86, 2916, 86, 2917, + 86, 2918, 86, 2912, 86, 86, 86, 2913, 2919, 86, + 2920, 2921, 86, 86, 2915, 86, 86, 2925, 2923, 86, + 2929, 2924, 2926, 86, 2930, 86, 2922, 2927, 2931, 86, + 86, 86, 86, 2932, 2935, 86, 2928, 86, 86, 2938, + 86, 86, 2939, 86, 2933, 2934, 2940, 86, 86, 2942, + 86, 86, 86, 2946, 86, 2936, 2943, 86, 2937, 86, + + 2947, 86, 2950, 2941, 86, 2949, 2945, 2951, 2948, 2944, + 86, 86, 2952, 86, 86, 86, 2957, 2953, 86, 86, + 86, 2956, 86, 2959, 2960, 86, 86, 86, 2962, 86, + 2954, 2961, 2963, 86, 2955, 86, 2965, 86, 2966, 86, + 2969, 86, 86, 2958, 86, 2973, 86, 86, 86, 2980, + 86, 86, 2964, 86, 2981, 86, 2967, 2968, 2972, 2970, + 86, 2974, 2971, 2975, 2977, 86, 86, 2978, 3020, 2982, + 2984, 2976, 86, 2979, 2983, 86, 2985, 86, 86, 2986, + 86, 2987, 86, 2988, 86, 2989, 86, 86, 2990, 86, + 86, 2991, 2993, 86, 86, 2995, 86, 86, 86, 2997, + + 3001, 86, 86, 2994, 86, 2998, 3483, 2992, 3002, 86, + 86, 3006, 2996, 3003, 3005, 86, 86, 2999, 3000, 86, + 3004, 3007, 86, 86, 3008, 3009, 86, 86, 86, 86, + 3015, 86, 3010, 86, 3014, 86, 3011, 3012, 3013, 3016, + 86, 86, 3017, 3021, 86, 86, 86, 86, 3022, 86, + 3025, 86, 3019, 86, 3024, 86, 3026, 3023, 86, 3018, + 3027, 86, 3028, 86, 3032, 86, 86, 3029, 86, 86, + 3034, 86, 3030, 3031, 3036, 3033, 86, 3039, 86, 86, + 3037, 86, 86, 86, 86, 3044, 3042, 3043, 86, 86, + 3040, 86, 86, 3035, 3046, 86, 3038, 3045, 86, 3049, + + 3041, 86, 3050, 3483, 3047, 86, 3048, 3051, 86, 3052, + 86, 3053, 86, 86, 3054, 3055, 3058, 86, 3057, 86, + 3056, 86, 86, 86, 3059, 86, 3060, 3061, 86, 86, + 86, 86, 3067, 86, 3065, 3062, 3483, 3063, 86, 3069, + 86, 86, 86, 86, 3064, 3070, 86, 3071, 3066, 86, + 3073, 3072, 3074, 86, 86, 86, 3068, 86, 3075, 3078, + 86, 86, 86, 86, 3082, 3081, 86, 86, 3076, 86, + 3079, 86, 3086, 86, 3077, 3080, 86, 3085, 86, 3083, + 86, 3088, 3089, 3092, 86, 3084, 86, 3094, 86, 3095, + 86, 3087, 86, 86, 3090, 3097, 86, 86, 86, 86, + + 86, 86, 3100, 86, 3091, 3093, 3102, 3103, 86, 3098, + 3106, 86, 3105, 3096, 3099, 3101, 86, 86, 86, 3109, + 3104, 86, 86, 3112, 86, 86, 3114, 86, 86, 3117, + 86, 86, 86, 3115, 3107, 3110, 3108, 3118, 86, 86, + 86, 3111, 3121, 86, 86, 3113, 3119, 86, 3126, 3116, + 86, 3123, 86, 3124, 86, 86, 3130, 86, 86, 3120, + 86, 86, 3122, 3132, 3128, 86, 86, 3125, 3133, 3127, + 86, 3134, 86, 3131, 3137, 3129, 3138, 86, 3135, 86, + 86, 3136, 3139, 3140, 3143, 86, 86, 86, 86, 86, + 3141, 3142, 3144, 3146, 86, 3149, 86, 86, 86, 86, + + 86, 86, 3154, 86, 86, 86, 86, 3145, 86, 3150, + 86, 3147, 3148, 3160, 3153, 3157, 3151, 3158, 86, 3159, + 86, 3156, 86, 3155, 3161, 3152, 86, 3162, 3163, 86, + 3164, 86, 3165, 86, 3166, 86, 86, 3169, 86, 3167, + 86, 3171, 86, 86, 86, 3170, 86, 86, 86, 86, + 3177, 3178, 86, 86, 86, 86, 86, 3172, 3184, 86, + 3185, 86, 3168, 86, 86, 3186, 3173, 3175, 3174, 3176, + 3181, 86, 3183, 3180, 86, 3182, 86, 86, 86, 3179, + 86, 3189, 3191, 86, 3187, 3192, 86, 86, 86, 3195, + 3196, 86, 3193, 3188, 3194, 86, 3197, 86, 3190, 3198, + + 86, 86, 3199, 86, 86, 3200, 86, 86, 3201, 86, + 86, 3202, 3204, 86, 86, 3206, 86, 86, 3205, 86, + 3483, 3207, 86, 86, 3203, 86, 86, 86, 86, 3208, + 86, 3216, 3217, 3220, 3209, 3211, 3210, 3219, 3212, 3218, + 3213, 3214, 86, 86, 86, 3222, 3215, 3224, 86, 86, + 3221, 3225, 86, 3226, 3227, 86, 86, 3223, 86, 3230, + 86, 3228, 3231, 86, 3232, 3233, 86, 86, 3234, 3235, + 3239, 86, 3236, 86, 86, 3237, 3238, 3229, 86, 3240, + 86, 3242, 86, 86, 86, 86, 86, 86, 86, 3241, + 3248, 86, 3247, 86, 86, 86, 86, 86, 3244, 86, + + 3252, 3243, 3251, 3253, 86, 3245, 3246, 86, 3249, 3256, + 3257, 86, 3254, 86, 3259, 86, 3258, 3255, 3250, 3260, + 86, 3261, 86, 86, 86, 86, 3266, 86, 3263, 3268, + 3262, 3267, 86, 3264, 86, 86, 3265, 86, 86, 86, + 3275, 86, 3270, 3272, 3273, 3276, 86, 3278, 86, 86, + 3269, 86, 3277, 3279, 86, 3271, 3274, 86, 3282, 86, + 3283, 86, 3281, 86, 3280, 3285, 86, 3286, 86, 3287, + 86, 86, 3284, 3288, 86, 3289, 86, 3290, 86, 3291, + 86, 3292, 86, 86, 3295, 86, 86, 86, 86, 3299, + 86, 86, 3294, 3301, 86, 3296, 86, 3293, 86, 3297, + + 86, 86, 86, 86, 3305, 3306, 86, 86, 3298, 86, + 3300, 3302, 3310, 3303, 3304, 86, 3307, 3308, 86, 86, + 3312, 3315, 86, 86, 3311, 3309, 3314, 86, 86, 86, + 86, 86, 86, 3313, 3317, 86, 3316, 3321, 86, 86, + 86, 3322, 3323, 86, 86, 86, 3327, 3318, 3319, 3326, + 86, 3320, 3329, 86, 3324, 3330, 86, 86, 3328, 3331, + 86, 86, 86, 86, 86, 86, 3325, 3334, 86, 86, + 3333, 86, 86, 3332, 3339, 86, 3336, 3335, 86, 3338, + 3340, 86, 3342, 86, 3344, 3343, 3341, 3337, 86, 86, + 86, 86, 86, 3345, 86, 86, 86, 3351, 86, 3346, + + 3349, 3353, 3350, 86, 3348, 3354, 86, 86, 3356, 3357, + 3359, 86, 86, 3347, 86, 3352, 3361, 86, 3355, 86, + 3362, 3360, 3363, 86, 3364, 86, 86, 3358, 86, 86, + 86, 3367, 86, 3365, 3368, 3369, 86, 3372, 86, 86, + 86, 86, 86, 86, 3375, 86, 3366, 3376, 86, 3378, + 86, 3371, 3373, 3374, 3379, 86, 86, 3370, 3382, 86, + 3377, 3381, 86, 3384, 3385, 86, 86, 3386, 86, 86, + 86, 3380, 3389, 3390, 86, 86, 3387, 3383, 86, 86, + 86, 3395, 86, 86, 3391, 3394, 86, 3392, 3388, 3396, + 86, 86, 86, 86, 3393, 86, 3400, 86, 86, 86, + + 3402, 86, 86, 86, 3397, 3399, 3398, 3407, 3408, 3409, + 86, 3404, 3405, 3401, 86, 86, 3403, 86, 3413, 86, + 3406, 86, 3415, 86, 3416, 86, 3414, 86, 86, 86, + 3417, 3421, 3418, 3411, 3410, 86, 3412, 86, 3422, 86, + 3419, 86, 3424, 86, 86, 86, 3423, 86, 3420, 3425, + 86, 86, 3430, 86, 3427, 86, 86, 3433, 86, 3434, + 86, 86, 86, 3426, 86, 86, 3437, 86, 3432, 3428, + 3429, 3435, 3431, 86, 3436, 86, 3441, 86, 3442, 86, + 3440, 86, 3445, 3438, 3439, 86, 86, 3447, 86, 3448, + 3443, 86, 86, 86, 3452, 86, 3449, 86, 86, 3450, + + 3454, 86, 3453, 86, 3446, 3444, 3455, 86, 3456, 86, + 3457, 86, 3451, 86, 3461, 86, 3459, 86, 86, 86, + 86, 86, 86, 3463, 3464, 86, 3467, 86, 3458, 3468, + 86, 3483, 3460, 86, 3471, 86, 3462, 3472, 86, 3465, + 3466, 3469, 3473, 3474, 86, 86, 3470, 3475, 86, 86, + 86, 86, 3476, 86, 3477, 3478, 3481, 86, 3482, 86, + 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, + 3479, 3483, 3480, 47, 47, 47, 47, 47, 47, 47, + 52, 52, 52, 52, 52, 52, 52, 57, 57, 57, + 57, 57, 57, 57, 63, 63, 63, 63, 63, 63, + + 63, 68, 68, 68, 68, 68, 68, 68, 74, 74, + 74, 74, 74, 74, 74, 80, 80, 80, 80, 80, + 80, 80, 89, 89, 3483, 89, 89, 89, 89, 160, + 160, 3483, 3483, 3483, 160, 160, 162, 162, 3483, 3483, + 162, 3483, 162, 164, 3483, 3483, 3483, 3483, 3483, 164, + 167, 167, 3483, 3483, 3483, 167, 167, 169, 3483, 3483, + 3483, 3483, 3483, 169, 171, 171, 3483, 171, 171, 171, + 171, 174, 3483, 3483, 3483, 3483, 3483, 174, 177, 177, + 3483, 3483, 3483, 177, 177, 90, 90, 3483, 90, 90, + 90, 90, 17, 3483, 3483, 3483, 3483, 3483, 3483, 3483, + + 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, + 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, + 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, + 3483, 3483, 3483 } ; -static yyconst flex_int16_t yy_chk[6588] = +static yyconst flex_int16_t yy_chk[6834] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2278,18 +2350,18 @@ static yyconst flex_int16_t yy_chk[6588] = 5, 3, 6, 24, 4, 24, 24, 5, 24, 6, 7, 7, 7, 7, 24, 7, 8, 8, 8, 8, 33, 8, 7, 9, 9, 9, 26, 26, 8, 10, - 10, 10, 19, 29, 9, 33, 19, 29, 3361, 35, + 10, 10, 19, 29, 9, 33, 19, 29, 3491, 35, 10, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 34, 13, 11, 35, 99, 34, 29, 38, 13, 51, 51, 11, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 99, 14, 12, 15, 15, 15, 38, 23, 14, 23, 23, 12, 23, 46, 15, 16, 16, - 16, 23, 23, 25, 27, 27, 25, 25, 2735, 16, + 16, 23, 23, 25, 27, 27, 25, 25, 2838, 16, 25, 46, 27, 30, 30, 25, 27, 56, 40, 27, 56, 73, 31, 31, 25, 28, 67, 67, 30, 32, 28, 31, 40, 32, 28, 73, 32, 28, 92, 28, - 28, 92, 31, 32, 1099, 32, 36, 36, 37, 37, + 28, 92, 31, 32, 1127, 32, 36, 36, 37, 37, 28, 45, 45, 37, 97, 36, 45, 97, 41, 41, 45, 36, 87, 41, 93, 36, 87, 37, 93, 37, @@ -2328,9 +2400,9 @@ static yyconst flex_int16_t yy_chk[6588] = 200, 201, 202, 197, 203, 204, 201, 202, 205, 197, 197, 199, 196, 206, 205, 207, 203, 206, 208, 200, 207, 209, 213, 210, 211, 204, 214, 213, 216, 217, - 551, 214, 218, 216, 208, 209, 211, 205, 210, 211, + 556, 214, 218, 216, 208, 209, 211, 205, 210, 211, 215, 215, 220, 220, 215, 219, 215, 221, 218, 217, - 222, 219, 223, 221, 551, 224, 222, 227, 215, 221, + 222, 219, 223, 221, 556, 224, 222, 227, 215, 221, 215, 224, 225, 227, 228, 229, 230, 231, 225, 228, 230, 229, 223, 231, 232, 234, 233, 225, 235, 236, 237, 232, 233, 238, 235, 239, 237, 240, 234, 241, @@ -2354,646 +2426,674 @@ static yyconst flex_int16_t yy_chk[6588] = 313, 315, 316, 319, 311, 312, 317, 317, 314, 318, 308, 321, 318, 320, 322, 316, 324, 320, 323, 323, 313, 319, 315, 325, 312, 326, 325, 327, 328, 329, - 321, 328, 322, 327, 324, 333, 331, 326, 366, 332, - 333, 329, 336, 325, 330, 331, 334, 335, 337, 334, - 335, 334, 366, 330, 169, 336, 330, 332, 341, 341, - - 337, 330, 330, 330, 330, 339, 338, 334, 338, 338, - 339, 339, 340, 342, 343, 340, 345, 344, 346, 347, - 347, 348, 349, 349, 351, 345, 348, 346, 353, 343, - 342, 350, 350, 342, 344, 344, 352, 354, 355, 351, - 353, 352, 356, 357, 360, 167, 361, 358, 358, 357, - 358, 361, 369, 369, 362, 166, 354, 356, 355, 358, - 362, 363, 364, 394, 360, 365, 363, 364, 365, 367, - 365, 368, 367, 364, 372, 370, 371, 371, 375, 372, - 368, 370, 377, 373, 378, 367, 373, 379, 367, 394, - 367, 376, 373, 382, 376, 384, 373, 377, 375, 378, - - 381, 379, 385, 381, 373, 374, 374, 382, 374, 386, - 384, 385, 376, 388, 386, 386, 387, 389, 390, 381, - 402, 374, 387, 392, 374, 402, 374, 395, 374, 383, - 391, 383, 383, 390, 388, 396, 389, 164, 399, 391, - 393, 383, 392, 383, 383, 383, 393, 395, 383, 396, - 397, 400, 398, 401, 403, 404, 397, 398, 399, 406, - 397, 404, 405, 405, 407, 410, 408, 409, 401, 403, - 411, 400, 412, 409, 414, 398, 407, 412, 417, 406, - 408, 413, 413, 415, 413, 416, 411, 418, 423, 418, - 410, 426, 417, 419, 414, 419, 419, 424, 420, 415, - - 421, 416, 420, 427, 421, 422, 422, 423, 425, 426, - 430, 428, 424, 419, 431, 439, 430, 427, 439, 421, - 428, 429, 432, 431, 425, 433, 429, 432, 434, 433, - 435, 428, 436, 428, 429, 429, 435, 434, 429, 429, - 437, 438, 440, 441, 443, 438, 437, 440, 442, 442, - 444, 444, 446, 436, 445, 447, 447, 443, 448, 445, - 450, 451, 449, 441, 448, 446, 449, 452, 453, 454, - 454, 455, 452, 453, 456, 450, 458, 457, 454, 461, - 464, 459, 451, 455, 459, 460, 462, 462, 458, 460, - 466, 461, 463, 470, 456, 457, 471, 463, 465, 465, - - 472, 464, 468, 468, 471, 473, 474, 475, 476, 472, - 478, 474, 466, 479, 470, 480, 482, 484, 481, 550, - 476, 550, 482, 484, 483, 486, 473, 475, 478, 485, - 478, 479, 481, 483, 485, 480, 487, 488, 489, 486, - 488, 490, 491, 492, 487, 494, 493, 487, 491, 493, - 495, 494, 489, 496, 497, 499, 490, 498, 496, 499, - 500, 502, 501, 492, 495, 500, 502, 503, 504, 494, - 508, 505, 511, 524, 547, 510, 497, 501, 498, 510, - 509, 512, 513, 503, 505, 162, 513, 504, 506, 506, - 508, 511, 547, 524, 506, 509, 506, 512, 515, 517, - - 514, 516, 506, 518, 506, 514, 516, 506, 506, 514, - 519, 520, 518, 515, 506, 517, 519, 521, 517, 522, - 523, 519, 522, 525, 525, 526, 520, 527, 527, 528, - 529, 530, 531, 521, 532, 533, 534, 536, 535, 539, - 533, 537, 529, 523, 528, 534, 530, 537, 539, 540, - 526, 531, 536, 540, 541, 542, 532, 535, 543, 544, - 541, 545, 546, 549, 548, 554, 552, 542, 548, 553, - 553, 554, 555, 543, 552, 545, 549, 546, 544, 556, - 557, 559, 560, 558, 555, 556, 558, 562, 561, 563, - 562, 564, 557, 561, 565, 559, 566, 560, 563, 565, - - 565, 567, 567, 568, 568, 563, 569, 564, 563, 566, - 570, 570, 569, 571, 571, 572, 574, 573, 575, 578, - 577, 572, 573, 573, 576, 577, 579, 576, 580, 582, - 575, 580, 583, 589, 579, 581, 585, 574, 578, 584, - 581, 586, 585, 584, 587, 586, 591, 589, 588, 590, - 590, 583, 582, 588, 592, 593, 594, 595, 596, 598, - 593, 591, 587, 597, 596, 603, 600, 602, 597, 601, - 601, 599, 594, 598, 599, 592, 606, 595, 607, 599, - 610, 603, 599, 599, 600, 602, 604, 605, 609, 610, - 606, 604, 605, 607, 609, 611, 612, 613, 611, 616, - - 612, 614, 613, 615, 614, 617, 618, 619, 615, 620, - 621, 622, 622, 618, 620, 616, 623, 624, 625, 626, - 619, 627, 612, 617, 630, 623, 628, 630, 626, 629, - 621, 634, 628, 627, 625, 629, 624, 631, 631, 632, - 631, 633, 632, 635, 637, 636, 633, 638, 640, 634, - 636, 639, 641, 638, 640, 641, 639, 635, 642, 643, - 644, 645, 646, 637, 643, 644, 644, 647, 650, 649, - 648, 652, 647, 651, 645, 646, 648, 650, 651, 653, - 653, 655, 654, 642, 655, 657, 647, 647, 649, 654, - 656, 652, 661, 658, 663, 659, 656, 657, 658, 655, - - 659, 659, 660, 660, 662, 664, 662, 664, 658, 665, - 666, 667, 668, 663, 669, 670, 671, 661, 673, 676, - 671, 670, 674, 672, 675, 678, 682, 665, 666, 667, - 679, 668, 672, 673, 669, 677, 679, 674, 676, 680, - 678, 683, 675, 681, 684, 682, 685, 677, 684, 686, - 687, 688, 689, 680, 690, 681, 692, 692, 691, 690, - 683, 694, 693, 695, 685, 686, 693, 696, 687, 688, - 688, 689, 691, 697, 698, 694, 699, 700, 696, 698, - 701, 702, 695, 704, 703, 707, 705, 697, 702, 703, - 704, 705, 699, 701, 706, 708, 700, 709, 710, 706, - - 711, 712, 708, 707, 714, 713, 709, 714, 716, 711, - 713, 715, 710, 712, 717, 715, 718, 720, 719, 721, - 721, 725, 716, 717, 722, 722, 723, 723, 727, 724, - 725, 718, 719, 722, 724, 728, 729, 731, 720, 730, - 732, 728, 733, 730, 734, 735, 737, 727, 736, 731, - 734, 738, 739, 735, 742, 736, 729, 745, 748, 754, - 733, 752, 749, 754, 737, 732, 770, 748, 749, 742, - 752, 753, 739, 760, 745, 751, 738, 740, 160, 740, - 758, 751, 740, 755, 755, 770, 740, 753, 759, 740, - 756, 756, 757, 760, 761, 765, 740, 740, 758, 740, - - 761, 767, 759, 757, 762, 762, 762, 763, 762, 764, - 766, 762, 763, 765, 766, 768, 762, 771, 772, 768, - 85, 769, 762, 762, 773, 767, 769, 773, 774, 775, - 764, 777, 771, 774, 774, 768, 775, 776, 776, 778, - 779, 779, 780, 772, 778, 781, 777, 780, 781, 782, - 783, 783, 785, 784, 782, 784, 786, 787, 788, 790, - 789, 787, 791, 791, 785, 792, 795, 790, 793, 794, - 794, 796, 797, 800, 800, 786, 811, 811, 788, 789, - 792, 798, 793, 796, 795, 799, 801, 798, 803, 804, - 799, 801, 801, 803, 797, 804, 805, 808, 806, 807, - - 808, 809, 805, 806, 810, 807, 813, 809, 812, 812, - 814, 815, 810, 816, 813, 817, 815, 819, 818, 822, - 816, 820, 820, 821, 823, 823, 825, 822, 814, 824, - 827, 828, 821, 817, 818, 824, 819, 829, 830, 827, - 828, 831, 834, 830, 832, 825, 833, 832, 835, 836, - 831, 833, 837, 840, 838, 841, 834, 842, 836, 838, - 838, 829, 839, 839, 843, 837, 842, 844, 840, 845, - 848, 848, 845, 835, 841, 847, 849, 847, 850, 851, - 845, 852, 853, 850, 854, 844, 856, 855, 843, 857, - 858, 859, 860, 861, 858, 856, 862, 849, 863, 861, - - 851, 852, 853, 864, 865, 862, 854, 855, 866, 859, - 863, 860, 857, 867, 866, 868, 869, 869, 865, 870, - 868, 871, 864, 872, 873, 874, 875, 867, 876, 877, - 871, 878, 873, 883, 879, 881, 880, 878, 882, 870, - 879, 881, 886, 872, 887, 874, 886, 876, 875, 877, - 880, 884, 882, 883, 885, 888, 889, 884, 890, 894, - 885, 889, 892, 887, 891, 891, 893, 888, 892, 893, - 895, 897, 896, 898, 898, 888, 899, 894, 896, 890, - 900, 901, 902, 895, 903, 900, 901, 901, 903, 904, - 904, 897, 905, 906, 899, 907, 908, 902, 910, 913, - - 907, 914, 911, 915, 917, 917, 918, 921, 919, 1077, - 918, 923, 913, 906, 905, 908, 911, 920, 920, 924, - 1077, 914, 910, 919, 915, 916, 923, 922, 916, 926, - 916, 922, 921, 924, 916, 925, 916, 929, 928, 927, - 925, 916, 931, 926, 927, 927, 916, 928, 930, 933, - 932, 929, 930, 934, 935, 932, 936, 931, 934, 937, - 938, 933, 940, 946, 930, 932, 939, 940, 935, 938, - 941, 947, 939, 937, 942, 948, 941, 936, 943, 943, - 942, 944, 945, 952, 950, 946, 944, 951, 945, 953, - 947, 957, 951, 948, 949, 949, 950, 952, 954, 954, - - 949, 953, 949, 956, 955, 957, 958, 959, 949, 955, - 961, 956, 960, 949, 949, 963, 961, 962, 964, 965, - 949, 966, 962, 967, 967, 958, 959, 963, 960, 968, - 969, 971, 973, 968, 975, 965, 964, 971, 972, 966, - 974, 972, 976, 978, 977, 974, 980, 975, 976, 977, - 969, 973, 981, 982, 983, 980, 984, 985, 986, 987, - 983, 981, 978, 986, 988, 984, 989, 994, 990, 982, - 80, 993, 991, 992, 997, 1000, 985, 993, 988, 987, - 990, 991, 992, 995, 994, 999, 989, 1001, 1002, 995, - 997, 1003, 1004, 1005, 1010, 1000, 1006, 1014, 1005, 999, - - 1009, 1006, 1002, 1010, 1013, 1009, 1001, 1004, 1012, 1003, - 1011, 1011, 1014, 1013, 1012, 1015, 1017, 1018, 1023, 1022, - 1020, 1020, 1018, 1018, 1020, 1024, 1021, 1025, 1015, 1021, - 1026, 1027, 1017, 1022, 1028, 1029, 1030, 1031, 1023, 1032, - 1028, 1024, 1030, 1026, 1032, 1025, 1027, 1033, 1035, 1036, - 1039, 1035, 1031, 1037, 1038, 1029, 1040, 1041, 1037, 1038, - 1043, 1033, 1041, 1042, 1046, 1040, 1039, 1045, 1042, 1047, - 1036, 1048, 1043, 1045, 1050, 1047, 1051, 1048, 1049, 1049, - 1046, 1052, 1054, 1050, 1052, 1053, 1053, 1055, 1056, 1057, - 1058, 1059, 1057, 1060, 1051, 1066, 1061, 1059, 1067, 1060, - - 1054, 1061, 1062, 1058, 1063, 1064, 1055, 1062, 1056, 1063, - 1068, 1064, 1069, 1066, 1070, 1070, 1068, 1069, 1067, 1071, - 1072, 1073, 1074, 1075, 1076, 1078, 1075, 1076, 1071, 1072, - 1078, 1079, 1080, 1081, 1082, 1084, 1083, 1087, 1085, 1073, - 1082, 1074, 1083, 1085, 1080, 1086, 1086, 1088, 1089, 1079, - 1084, 1090, 1081, 1091, 1092, 1090, 1087, 1093, 1094, 1096, - 1089, 1088, 1098, 1092, 1097, 1097, 1100, 1102, 1103, 1101, - 1106, 1091, 1104, 1103, 1105, 1105, 1093, 1109, 1096, 1102, - 1100, 1104, 1098, 1094, 1101, 1107, 1108, 1117, 1113, 1110, - 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1111, 1114, 1115, - - 1116, 1112, 1113, 1118, 1115, 1119, 1117, 1120, 1122, 1122, - 1118, 1123, 1114, 1124, 1125, 1116, 1126, 1127, 1135, 1128, - 1119, 1134, 1126, 1130, 1128, 1123, 1120, 1130, 1134, 1125, - 1137, 1124, 1135, 1128, 1138, 1128, 1132, 1127, 1128, 1131, - 1131, 1132, 1133, 1133, 1136, 1139, 1140, 1136, 1141, 1137, - 1142, 1140, 1138, 1143, 1139, 1144, 1146, 1145, 1143, 1148, - 1148, 1149, 1142, 1151, 1155, 1150, 1149, 1141, 1145, 1144, - 1150, 1152, 1154, 1153, 1156, 1146, 1152, 1153, 1157, 1155, - 1158, 1154, 1161, 1151, 1159, 1162, 1160, 1163, 1164, 1156, - 1165, 1167, 1158, 1160, 1161, 1166, 1165, 1157, 1168, 1159, - - 1169, 1170, 1171, 1172, 1162, 1173, 1164, 1174, 1163, 1169, - 1166, 1167, 1175, 1176, 1178, 1172, 1170, 1180, 1168, 1179, - 1178, 1171, 1181, 1182, 1173, 1183, 1185, 1175, 1187, 1189, - 1181, 1180, 1174, 1176, 1179, 1184, 1188, 1193, 1185, 1186, - 1184, 1183, 1189, 1182, 1186, 1186, 1193, 1187, 1190, 1190, - 1188, 1191, 1191, 1192, 1197, 1194, 1191, 1195, 1195, 1191, - 1191, 1194, 1196, 1197, 1191, 1198, 1192, 1196, 1199, 1202, - 1191, 1198, 1200, 1199, 1191, 1201, 1201, 1200, 1203, 1203, - 1204, 1205, 1206, 1204, 1207, 1204, 1208, 1209, 1210, 1211, - 1202, 1212, 1209, 1207, 1214, 75, 1218, 1212, 1213, 1214, - - 1206, 1205, 1210, 1216, 1213, 1215, 1208, 1211, 1217, 1215, - 1218, 1221, 1216, 1217, 1219, 1219, 1223, 1216, 1224, 1216, - 1223, 1216, 1221, 1216, 1220, 1220, 1225, 1220, 1226, 1227, - 1228, 1229, 1231, 1224, 1227, 1227, 1230, 1226, 1232, 1228, - 1233, 1230, 1234, 1235, 1225, 1236, 1231, 1232, 1237, 1237, - 1238, 1236, 1239, 1229, 1241, 1240, 1242, 1235, 1238, 1233, - 1240, 1234, 1243, 1244, 1245, 1242, 1239, 1246, 1241, 1243, - 1247, 1247, 1246, 1248, 1249, 1249, 1250, 1252, 1250, 1253, - 1252, 1244, 1254, 1255, 1253, 1256, 1256, 1257, 1248, 1245, - 1258, 1258, 1255, 1259, 1259, 1260, 1261, 1262, 1263, 1263, - - 1260, 1254, 1264, 1265, 1266, 1267, 1265, 1257, 1270, 74, - 1267, 1268, 1269, 1272, 1269, 1273, 1272, 1261, 1262, 1275, - 1268, 1277, 1264, 1274, 1266, 1283, 1270, 1276, 1274, 1277, - 1273, 1278, 1276, 1275, 1279, 1280, 1278, 1279, 1281, 1281, - 1280, 1282, 1284, 1283, 1285, 1286, 1282, 1288, 1284, 1289, - 1291, 1285, 1290, 1288, 1292, 1289, 1291, 1290, 1286, 1293, - 1294, 1295, 1295, 1292, 1296, 1298, 1299, 1300, 1301, 1302, - 1303, 1294, 1307, 1305, 1301, 1302, 1303, 1306, 1293, 1305, - 1298, 1308, 1309, 1313, 1296, 1310, 1299, 1311, 1312, 1312, - 1300, 1306, 1307, 1314, 1309, 1315, 1318, 1306, 1321, 1310, - - 1326, 1308, 1316, 1313, 1323, 1311, 1319, 1316, 1317, 1317, - 1322, 1319, 1324, 1315, 1326, 1322, 1322, 1321, 1314, 1318, - 1325, 1324, 1323, 1327, 1328, 1329, 1330, 1331, 1325, 1331, - 1329, 1332, 1335, 1329, 1334, 1330, 1335, 1336, 1327, 1328, - 1334, 1337, 1328, 1338, 1339, 1332, 1337, 1337, 1336, 1340, - 1341, 1342, 1344, 1343, 1345, 1341, 1342, 1346, 1349, 1345, - 1348, 1350, 1338, 1351, 1351, 1352, 1353, 1340, 1354, 1352, - 1339, 1343, 1344, 1356, 1348, 1355, 1349, 1346, 1357, 1350, - 1358, 1355, 1363, 1359, 1353, 1356, 1360, 1354, 1361, 1363, - 1362, 1364, 1365, 1366, 1358, 1362, 1364, 1357, 1359, 1367, - - 1367, 1360, 1366, 1368, 1369, 1370, 1372, 1361, 1371, 1371, - 1365, 1373, 1372, 1369, 1374, 1375, 1375, 1373, 1368, 1377, - 1376, 1378, 1379, 1380, 1381, 1370, 1376, 1379, 1374, 1380, - 1381, 1382, 1383, 1383, 1389, 1377, 1388, 1382, 1384, 1384, - 1386, 1386, 1378, 1387, 1390, 1388, 1391, 1387, 1392, 1395, - 1393, 1396, 1389, 1394, 1394, 1399, 1390, 1393, 1398, 1396, - 1391, 1397, 1400, 1392, 1402, 1401, 1397, 1400, 1400, 1395, - 1401, 1401, 1398, 1404, 1399, 1403, 1403, 1405, 1406, 1408, - 1407, 1409, 1410, 1411, 1402, 1407, 1412, 1406, 1413, 1411, - 1415, 1412, 1404, 1414, 1418, 1423, 1405, 1416, 1408, 1414, - - 1410, 1409, 1417, 1416, 1419, 1420, 1421, 1422, 1417, 1415, - 1427, 1424, 1426, 1418, 1413, 1426, 1423, 1425, 1425, 1428, - 1429, 1422, 1434, 1419, 1420, 1421, 1424, 1430, 1430, 1427, - 1431, 1431, 1429, 1433, 1432, 1434, 1435, 1433, 1428, 1432, - 1436, 1437, 1441, 1437, 1439, 1435, 1440, 1437, 1442, 1443, - 1448, 1440, 1446, 1436, 1444, 1444, 1445, 1441, 1446, 1447, - 1437, 1445, 1439, 1448, 1449, 1443, 1450, 1451, 1442, 1449, - 1450, 1451, 1452, 1453, 1447, 1454, 1455, 1456, 1457, 1457, - 1459, 1461, 1462, 1456, 1454, 1463, 1463, 1462, 1464, 1465, - 1469, 1453, 1452, 1469, 1464, 1471, 1455, 1472, 1459, 1467, - - 1467, 1475, 1461, 1470, 1470, 1474, 1476, 1478, 1474, 1465, - 1479, 1471, 1482, 1472, 1480, 1476, 1477, 1477, 1481, 1483, - 1483, 1475, 1478, 1481, 1485, 1484, 1482, 1487, 1486, 1488, - 1490, 1479, 1491, 1480, 1484, 1489, 1489, 1495, 1493, 1496, - 1492, 1495, 1485, 1486, 1490, 1492, 1494, 1494, 1498, 1488, - 1491, 1499, 1487, 1493, 1497, 1497, 1500, 1501, 1502, 1496, - 1500, 1505, 1499, 1502, 1504, 1504, 1506, 1507, 1508, 1509, - 1498, 1510, 1511, 1511, 1512, 1513, 1501, 1505, 1514, 1512, - 1516, 1507, 1518, 1509, 1506, 1515, 1515, 1508, 1508, 1516, - 1522, 1519, 1517, 1519, 1520, 1513, 1510, 1517, 1514, 1520, - - 1521, 1523, 1518, 1525, 1526, 1526, 1521, 1523, 1527, 1528, - 1522, 1530, 1531, 1532, 1532, 1528, 1530, 1525, 1533, 1533, - 1534, 1535, 1536, 1537, 1538, 1538, 1537, 1527, 1539, 1540, - 1541, 1549, 1543, 68, 1534, 1544, 1531, 1536, 1543, 1535, - 1544, 1540, 1542, 1547, 1545, 1542, 1539, 1545, 1542, 1548, - 1541, 1552, 1547, 1553, 1548, 1550, 1549, 1552, 1550, 1553, - 1542, 1551, 1551, 1545, 1554, 1555, 1555, 1556, 1556, 1554, - 1557, 1559, 1558, 1560, 1561, 1562, 1557, 1558, 1563, 1564, - 1565, 1563, 1566, 1567, 1559, 1564, 1565, 1566, 1568, 1567, - 1572, 1560, 1569, 1561, 1573, 1562, 1571, 1569, 1570, 1570, - - 1574, 1571, 1575, 1576, 1577, 1578, 1579, 1582, 1572, 1580, - 1581, 1568, 1581, 1580, 1573, 1584, 1575, 1576, 1577, 1586, - 1574, 1585, 1587, 1578, 1588, 1589, 1582, 1584, 1587, 1590, - 1592, 1579, 1586, 1585, 1591, 1594, 1594, 1595, 1596, 1599, - 1597, 1589, 1600, 1596, 1588, 1598, 1598, 1601, 1591, 1590, - 1602, 1592, 1597, 1603, 1599, 1604, 1600, 1595, 1605, 1607, - 1606, 1609, 1603, 1611, 1612, 1605, 1616, 1612, 1602, 1606, - 1604, 1601, 1606, 1613, 1613, 1607, 1609, 1614, 1614, 1615, - 1617, 1609, 1619, 1617, 1616, 1618, 1618, 1620, 1611, 1621, - 1623, 1615, 1622, 1625, 1621, 1619, 1624, 1622, 1626, 1627, - - 1631, 1628, 1625, 1630, 1630, 1632, 1620, 1629, 1627, 1623, - 1628, 1627, 1624, 1629, 1633, 1634, 1636, 1626, 1632, 1635, - 1631, 1636, 1636, 1637, 1638, 1641, 1642, 1644, 1637, 1634, - 1643, 1643, 1633, 1645, 1646, 1635, 1638, 1647, 1647, 1646, - 1650, 1649, 1645, 1644, 1642, 1648, 1649, 1651, 1652, 1655, - 1641, 1657, 1647, 1664, 1648, 1653, 1656, 1648, 1650, 1658, - 1653, 1653, 1660, 1655, 1658, 1663, 1652, 1664, 1651, 1659, - 1663, 1656, 1662, 1657, 1668, 1659, 1661, 1661, 1662, 1665, - 1660, 1666, 1669, 1670, 1671, 1665, 1673, 1666, 1677, 1670, - 1672, 1678, 1673, 1672, 1668, 1675, 1669, 1671, 1679, 1672, - - 1680, 1681, 1682, 1675, 1683, 1684, 1679, 1677, 1688, 1680, - 1678, 1685, 1685, 1691, 1681, 1682, 1686, 1687, 1683, 1684, - 1690, 1688, 1686, 1687, 1689, 1689, 1692, 1693, 1693, 1694, - 1695, 1691, 1696, 1685, 1697, 1698, 1695, 1700, 1700, 1701, - 1690, 1703, 1694, 1702, 1704, 1692, 1703, 1702, 1706, 1704, - 1697, 1705, 1707, 1698, 1696, 1709, 1705, 1706, 1710, 1701, - 1711, 1711, 1712, 1714, 1713, 1715, 1715, 1709, 1718, 1716, - 1717, 1721, 1719, 1710, 1722, 1707, 1713, 1717, 1725, 1723, - 1718, 1712, 1714, 1716, 1719, 1723, 1724, 1726, 1727, 1727, - 1721, 63, 1728, 1726, 1722, 1728, 1725, 1731, 1724, 1729, - - 1729, 1732, 1731, 1733, 1734, 1734, 1735, 1738, 1739, 1733, - 1732, 1736, 1737, 1736, 1740, 1737, 1741, 1742, 1735, 1743, - 1744, 1745, 1742, 1746, 1743, 1749, 1747, 1738, 1748, 1744, - 1739, 1747, 1740, 1745, 1741, 1750, 1751, 1748, 1746, 1752, - 1750, 1751, 1753, 1753, 1755, 1749, 1754, 1750, 1757, 1758, - 1748, 1760, 1754, 1759, 1752, 1761, 1762, 1761, 1763, 1763, - 1764, 1764, 1765, 1765, 1766, 1755, 1769, 1757, 1758, 1759, - 1762, 1760, 1762, 1767, 1767, 1768, 1768, 1770, 1771, 1771, - 1773, 1772, 1777, 1776, 1766, 1772, 1773, 1769, 1774, 1776, - 1778, 1774, 1779, 1782, 1780, 1785, 1778, 1780, 1770, 1783, - - 1777, 1781, 1781, 1786, 1783, 1784, 1784, 1787, 1788, 1788, - 1785, 1789, 1787, 1782, 1790, 1791, 1789, 1779, 1792, 1793, - 1790, 1794, 1796, 58, 1786, 1795, 1799, 1791, 1791, 1791, - 1798, 1795, 1800, 1802, 1791, 1798, 1798, 1793, 1792, 1803, - 1799, 1794, 1796, 1801, 1802, 1801, 1804, 1800, 1805, 1806, - 1807, 1809, 1804, 1811, 1803, 1808, 1808, 1805, 1810, 1810, - 1812, 1813, 1813, 1814, 1814, 1815, 1818, 1818, 1819, 1806, - 1820, 1807, 1822, 1811, 1823, 1825, 1825, 1809, 1824, 1820, - 1826, 1822, 1812, 1827, 1824, 1815, 1830, 1828, 1829, 1831, - 1831, 1832, 1833, 1819, 1828, 1823, 1836, 1829, 1827, 1835, - - 1837, 1826, 1836, 1838, 1835, 1839, 1842, 1840, 1833, 1840, - 1838, 1839, 1830, 1843, 1844, 1844, 1845, 1832, 1846, 1843, - 1837, 1845, 1847, 1849, 1848, 1842, 1850, 1846, 1851, 1850, - 1852, 1853, 1853, 1854, 1855, 1849, 1857, 1856, 1860, 1854, - 1855, 1858, 1847, 1848, 1861, 1858, 1851, 1862, 1863, 1863, - 1864, 1857, 1862, 1865, 1867, 1868, 1852, 1856, 1860, 1868, - 1876, 1858, 1869, 1869, 1870, 1871, 1861, 1874, 1865, 1864, - 1870, 1872, 1872, 1867, 1871, 1873, 1875, 1875, 1874, 1873, - 1877, 1876, 1878, 1874, 1879, 1880, 1881, 1882, 1883, 1879, - 1884, 1885, 1885, 1882, 1877, 1884, 1886, 1886, 1887, 1889, - - 1890, 1878, 1887, 1883, 1891, 1880, 1881, 1899, 1889, 1892, - 1892, 1890, 1894, 1894, 1895, 1896, 1890, 1898, 1901, 1895, - 1895, 1896, 1900, 1898, 1891, 1902, 1904, 1900, 1905, 1906, - 1901, 1902, 1905, 1899, 1907, 1909, 1908, 1910, 1904, 1911, - 1912, 1906, 1908, 1910, 1911, 1915, 1914, 1918, 1916, 1922, - 1918, 1925, 1912, 1916, 1919, 1919, 1925, 1909, 1914, 1907, - 1920, 1920, 1921, 1921, 1915, 1923, 1924, 1926, 1927, 1922, - 1929, 1923, 1924, 1926, 1932, 1929, 1931, 1927, 1935, 1931, - 1933, 1933, 1936, 1937, 1938, 1938, 1932, 1939, 1937, 1944, - 1935, 1947, 1940, 1941, 1936, 1945, 1939, 1940, 1941, 1942, - - 1943, 1943, 1942, 1946, 1945, 1951, 1950, 1948, 1949, 1944, - 1947, 1948, 1950, 1949, 1953, 1952, 1954, 1956, 1956, 1957, - 1959, 1946, 1958, 1951, 1952, 1960, 1960, 1961, 1963, 1956, - 1954, 1958, 1953, 1962, 1964, 1965, 1961, 1957, 1971, 1964, - 1959, 1968, 1968, 1970, 1972, 1962, 1970, 1974, 1965, 1963, - 1975, 1976, 1977, 1986, 1971, 1978, 1978, 1976, 57, 1979, - 1972, 1979, 1974, 1981, 1975, 1980, 1980, 1983, 1983, 1977, - 1989, 1981, 1984, 1984, 1987, 1988, 1986, 1989, 1990, 1991, - 1987, 1988, 1992, 1992, 1993, 1994, 1995, 1997, 1999, 1996, - 2000, 1998, 2003, 1993, 2004, 2005, 2006, 2006, 1995, 1991, - - 1990, 1996, 1997, 1998, 2001, 2000, 1994, 2005, 2007, 2008, - 2001, 2011, 2003, 2009, 1999, 2010, 2009, 2004, 2015, 2013, - 2010, 2021, 52, 2001, 2013, 2014, 2007, 2014, 2016, 2008, - 2017, 2011, 2019, 2016, 2022, 2023, 2015, 2017, 2024, 2021, - 2024, 2019, 2025, 2022, 2027, 2028, 2027, 2023, 2029, 2029, - 2030, 2031, 2032, 2033, 2032, 2034, 2031, 2035, 2033, 2028, - 2034, 2025, 2036, 2037, 2039, 2038, 2040, 2041, 2044, 2037, - 2038, 2042, 2041, 2041, 2045, 2035, 2030, 2039, 2040, 2042, - 2046, 2046, 2036, 2047, 2047, 2048, 2049, 2044, 2045, 2050, - 2052, 2051, 2052, 2053, 2054, 2050, 2051, 2055, 2055, 47, - - 2048, 2056, 2054, 2057, 2057, 2059, 2049, 2058, 2058, 2061, - 2054, 2053, 2060, 2056, 2059, 2065, 2063, 2060, 2064, 2067, - 2064, 2069, 2071, 2068, 2066, 2063, 2075, 2061, 2063, 2066, - 2066, 2067, 2068, 2069, 2071, 2072, 2065, 2073, 2076, 2075, - 2072, 2077, 2073, 2078, 2078, 2079, 2080, 2082, 2085, 2081, - 2077, 2083, 2087, 2099, 2088, 2086, 2096, 2089, 2076, 2088, - 2085, 2082, 2089, 2079, 2080, 2081, 2083, 2086, 2090, 2093, - 2095, 2097, 2087, 2098, 2100, 2093, 2095, 2090, 2099, 2096, - 2101, 2101, 2104, 2100, 2102, 2107, 2097, 2108, 2093, 2103, - 2103, 2098, 2105, 2102, 2106, 18, 2105, 2109, 2107, 2106, - - 2110, 2104, 2109, 2109, 2111, 2112, 2110, 2113, 2112, 2108, - 2111, 2114, 2117, 2117, 2119, 2113, 2122, 2118, 2118, 2120, - 2120, 2121, 2121, 2119, 2123, 2125, 17, 2124, 2122, 2132, - 2125, 2114, 2118, 2124, 2126, 2126, 2127, 2127, 2134, 2128, - 2129, 2131, 2123, 2118, 2128, 2131, 2129, 2133, 2136, 2132, - 2137, 2133, 2138, 2139, 2140, 2137, 2141, 2143, 2134, 2140, - 2142, 2144, 2145, 2146, 2146, 2147, 2144, 2148, 2139, 2147, - 2150, 2151, 2155, 2136, 2141, 2138, 2142, 2143, 2149, 2152, - 2153, 2154, 2148, 2149, 2145, 2155, 2154, 2156, 2160, 2151, - 2159, 2152, 2157, 2157, 2161, 2162, 2150, 2163, 2159, 2153, - - 2164, 2165, 2166, 2167, 2171, 2156, 2172, 2160, 2169, 2173, - 2174, 2176, 2174, 2161, 2166, 2173, 2176, 2171, 2162, 2164, - 2172, 2163, 2165, 2169, 2167, 2175, 2175, 2177, 2178, 2179, - 2177, 2180, 2181, 2181, 2182, 2182, 2183, 2185, 2183, 2184, - 2184, 2178, 2186, 2179, 2180, 2187, 2187, 2188, 2189, 2189, - 2190, 2190, 2185, 2191, 2194, 2186, 2188, 2193, 2191, 2188, - 2195, 2196, 2193, 2197, 2197, 2198, 2198, 2199, 2200, 2200, - 2201, 2202, 2202, 2196, 2194, 2203, 2204, 2205, 2205, 2207, - 2195, 2204, 2206, 2206, 2209, 2208, 2199, 2210, 2201, 2214, - 2203, 2212, 2216, 2207, 2208, 0, 2212, 2217, 2209, 2213, - - 2213, 2215, 2215, 2217, 2218, 2221, 2210, 2218, 2214, 2226, - 2216, 2219, 2219, 2220, 2220, 2222, 2223, 2225, 2223, 2227, - 2227, 2229, 2230, 2231, 2221, 2232, 2240, 2219, 2226, 2232, - 2222, 2234, 2225, 2233, 2233, 2235, 2236, 2237, 2231, 2242, - 2235, 2229, 2239, 2239, 2243, 2230, 2240, 2241, 2244, 2245, - 2234, 2236, 2237, 2242, 2241, 2246, 2246, 2248, 2247, 2248, - 2249, 2252, 2243, 2249, 2251, 2255, 2244, 2247, 2256, 2253, - 2251, 2254, 2257, 2252, 2253, 2245, 2254, 2258, 2249, 2259, - 2249, 2256, 2258, 2261, 2262, 2263, 2264, 2265, 2261, 2262, - 2255, 2266, 2264, 2257, 2267, 2269, 2268, 2266, 2270, 2267, - - 2263, 2268, 2281, 2271, 2272, 2259, 2271, 2273, 2265, 2274, - 2275, 2270, 2276, 2272, 0, 2277, 2273, 2278, 2274, 2275, - 2269, 2277, 2281, 2278, 2279, 2283, 2276, 2285, 2279, 2284, - 2284, 2286, 2286, 2285, 2283, 2288, 2287, 2290, 2291, 2294, - 2286, 2287, 2292, 2292, 2293, 2297, 2296, 2298, 2294, 2301, - 2303, 2299, 2301, 2290, 2291, 2288, 2304, 2288, 2296, 2293, - 2302, 2297, 2298, 2299, 2310, 2302, 2305, 2305, 2304, 2310, - 2303, 2306, 2306, 2308, 2308, 2309, 2311, 2312, 2309, 2313, - 2314, 2314, 2311, 2312, 2315, 2316, 2316, 2317, 2313, 2318, - 2319, 2320, 2320, 2322, 2321, 2329, 2323, 0, 2315, 2317, - - 2321, 2323, 2325, 2318, 2329, 2326, 2325, 2322, 2326, 2319, - 2327, 2327, 2328, 2330, 2331, 2332, 2334, 2328, 2336, 2332, - 2333, 2333, 2330, 2336, 2337, 2338, 2339, 2340, 2341, 2334, - 2342, 2340, 2343, 2344, 2331, 2342, 2345, 2346, 2343, 2344, - 2339, 2347, 2348, 2349, 2337, 2338, 2351, 2348, 2341, 2352, - 2353, 2354, 2363, 2355, 2345, 2353, 2346, 2354, 2351, 2360, - 2347, 2355, 2358, 2367, 2349, 2352, 2356, 2367, 2356, 2361, - 2361, 2358, 2362, 2360, 2368, 2362, 2364, 2364, 2363, 2369, - 2368, 2370, 2370, 2371, 2374, 2374, 2376, 2378, 2382, 2379, - 2383, 2369, 2371, 2382, 2384, 2385, 2386, 2386, 2392, 2384, - - 2385, 2378, 2388, 2388, 2376, 2379, 2390, 2391, 2391, 2393, - 2394, 2396, 2390, 2398, 2392, 2394, 2383, 2397, 2400, 2400, - 2397, 2399, 2403, 2402, 2404, 2398, 2405, 2409, 2403, 2410, - 2396, 2393, 2402, 2399, 2407, 2407, 2408, 2412, 2412, 2408, - 2414, 2405, 2404, 2413, 2413, 2414, 2409, 2410, 2415, 2416, - 2417, 2418, 2421, 2418, 2419, 2417, 2420, 2422, 2416, 2423, - 2424, 2489, 2422, 2489, 2421, 0, 2415, 2425, 2419, 2431, - 2420, 2430, 2425, 2426, 2426, 2427, 2427, 2428, 2428, 2423, - 2424, 2429, 2429, 2430, 2432, 2433, 2433, 2431, 2435, 2432, - 2434, 2434, 2436, 2437, 2438, 2439, 2439, 2440, 2441, 2441, - - 2435, 2442, 2442, 2443, 2436, 2444, 2446, 2447, 2445, 2449, - 2438, 2450, 2453, 2437, 2443, 2445, 2440, 2444, 2446, 2448, - 2451, 2451, 2454, 2452, 2448, 2456, 2455, 2447, 2458, 2449, - 2457, 2450, 2452, 2459, 2459, 2461, 2460, 2462, 2453, 2455, - 2458, 2464, 2454, 2465, 2457, 2460, 2466, 2468, 2467, 2456, - 2461, 2467, 2462, 2469, 0, 2470, 2471, 2471, 2469, 2464, - 2470, 2468, 2472, 2472, 2478, 2465, 2473, 2473, 2479, 2466, - 2475, 2475, 2477, 2477, 2480, 2481, 2483, 2484, 2485, 2479, - 2487, 2486, 2478, 2488, 2490, 2493, 2493, 2491, 2492, 2487, - 2481, 2495, 2495, 2480, 2496, 2484, 2483, 2497, 2498, 2503, - - 2485, 2486, 2501, 2488, 2490, 2491, 2492, 2498, 2496, 2499, - 2499, 2501, 2502, 2502, 2504, 2505, 2506, 2503, 2507, 2497, - 2508, 2509, 2505, 2510, 2511, 2511, 2512, 2512, 2513, 2514, - 2520, 2506, 2504, 2515, 2516, 2516, 2507, 2509, 2508, 2515, - 2517, 2517, 2510, 2518, 2519, 2520, 2521, 2514, 2513, 2518, - 2522, 2523, 2524, 2525, 2526, 2527, 2523, 2527, 2532, 2526, - 2528, 2528, 2519, 2535, 2522, 2521, 2529, 2534, 2529, 2530, - 2530, 2536, 2524, 2525, 2537, 2538, 2534, 2532, 2539, 2543, - 2538, 2540, 2535, 2536, 2544, 2545, 2545, 2544, 2546, 2547, - 2548, 2548, 2551, 2549, 2537, 2550, 2551, 2553, 2539, 2543, - - 2540, 2554, 2556, 2546, 2549, 2554, 2558, 2547, 2555, 2555, - 2550, 2559, 2553, 2560, 2563, 2556, 2561, 2561, 2564, 2565, - 2567, 2558, 2571, 2565, 2566, 2566, 2563, 2564, 2568, 2568, - 2569, 2559, 2570, 2560, 2572, 2569, 2573, 2580, 2571, 2567, - 2582, 2570, 2574, 2574, 2579, 2579, 2572, 2581, 2581, 2583, - 2587, 2584, 2585, 2582, 2586, 2586, 2573, 2589, 2589, 2580, - 2584, 2585, 2583, 2592, 2593, 2587, 2594, 2595, 2592, 2593, - 2596, 2597, 2595, 2598, 2601, 2599, 2602, 2604, 2596, 2603, - 2594, 2602, 2598, 2599, 2603, 2605, 2605, 2606, 2606, 2601, - 2597, 2608, 2604, 2607, 2607, 2609, 2610, 2611, 2608, 2612, - - 2609, 2613, 2614, 2614, 2615, 2612, 2613, 2616, 2617, 2617, - 2618, 2618, 2616, 2621, 2610, 2611, 2622, 2622, 2623, 2615, - 2625, 2623, 2624, 2627, 2626, 2625, 2621, 2624, 2624, 2626, - 2628, 2629, 2631, 2630, 2632, 2629, 2628, 2627, 2630, 2633, - 2634, 2631, 2635, 2638, 2636, 2640, 2637, 2633, 2635, 2632, - 2636, 2637, 2640, 2641, 2642, 2638, 2644, 2642, 2641, 2646, - 2647, 2634, 2648, 2649, 2646, 2647, 2650, 2656, 2644, 2651, - 2652, 2652, 2653, 2657, 2661, 2650, 2649, 2658, 2651, 2657, - 2648, 2653, 2662, 2658, 2663, 2656, 2664, 2664, 2665, 2666, - 2667, 2668, 2670, 2661, 2672, 2665, 2669, 2669, 2674, 2667, - - 2675, 2677, 2662, 2663, 2675, 3182, 2668, 3182, 2666, 2672, - 2678, 2670, 2676, 2676, 2679, 2680, 2678, 2682, 2674, 2683, - 2679, 2680, 2681, 2681, 2683, 2682, 2677, 2685, 2686, 2688, - 2689, 2691, 2692, 2689, 2690, 2688, 2685, 2695, 2690, 2694, - 2694, 2686, 2696, 2696, 2705, 2691, 0, 2692, 2697, 2697, - 2699, 2699, 2700, 2701, 2707, 2695, 2700, 2706, 2701, 2703, - 2703, 2709, 2706, 2708, 2705, 2711, 2707, 2717, 2708, 2708, - 2712, 2712, 2719, 2709, 2714, 2714, 2715, 2715, 2716, 2721, - 2717, 2716, 2722, 2722, 2727, 2711, 2723, 2723, 2724, 2724, - 2719, 2725, 2726, 2726, 2728, 2729, 2730, 2727, 2737, 2721, - - 2731, 2731, 2730, 2732, 2738, 2736, 2725, 2732, 2739, 2729, - 2736, 2736, 2728, 2740, 2741, 2742, 2744, 2744, 2743, 2740, - 2741, 2737, 2743, 2749, 2738, 2747, 2750, 2752, 2739, 2750, - 2747, 2749, 2753, 2754, 2754, 2753, 2755, 2756, 2757, 2758, - 2742, 2759, 2756, 2760, 2760, 2764, 2761, 2762, 2763, 2765, - 2762, 2768, 2752, 2755, 2755, 2759, 2757, 2765, 2762, 2758, - 2761, 2766, 2763, 2767, 2764, 2774, 2766, 2766, 2767, 2767, - 2768, 2769, 2769, 2770, 2770, 2771, 2771, 2772, 2772, 2773, - 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2775, 2780, 2781, - 2778, 2782, 2783, 2780, 2785, 2785, 2786, 2786, 2781, 2787, - - 2788, 2791, 2787, 2776, 2793, 2779, 2790, 2790, 2791, 2793, - 2777, 2782, 2783, 2792, 2792, 2795, 2795, 2796, 2788, 2797, - 2798, 2800, 2801, 2801, 2803, 2804, 2796, 2802, 2797, 2798, - 2805, 2802, 2806, 2803, 2810, 2808, 2809, 2807, 2810, 2800, - 2818, 2805, 2807, 2807, 2804, 2809, 2814, 2806, 2808, 2815, - 2815, 2814, 2817, 2817, 2818, 2819, 2820, 2822, 2822, 2823, - 2824, 2827, 2828, 2829, 2830, 2832, 2834, 2870, 2823, 2852, - 2830, 2828, 2824, 2836, 2820, 2852, 2837, 2832, 2836, 2839, - 2819, 2837, 2870, 2829, 2838, 2838, 2827, 2834, 2839, 2841, - 2848, 2842, 2842, 2847, 2841, 2842, 2844, 2844, 2845, 2845, - - 2846, 2846, 2847, 2849, 2850, 2856, 2853, 2854, 2857, 2850, - 2848, 2853, 2854, 2855, 2855, 2858, 2859, 2860, 2861, 2862, - 2857, 2859, 2849, 2856, 2861, 2863, 2863, 2865, 2866, 2867, - 2869, 2865, 2871, 2866, 2867, 2860, 2858, 2868, 2868, 2873, - 2875, 2875, 2877, 2878, 2862, 2880, 2879, 2871, 2881, 2869, - 2879, 2882, 2883, 2884, 2880, 2877, 2878, 2886, 2884, 2873, - 2883, 2885, 2885, 2887, 2881, 2888, 2886, 2889, 2889, 2890, - 2882, 2893, 2893, 2894, 2894, 2896, 2898, 2898, 2900, 2901, - 2903, 2887, 2902, 2905, 2905, 2903, 2906, 2908, 2890, 2909, - 2907, 2888, 2910, 2908, 2900, 2901, 2896, 2918, 2902, 2907, - - 2912, 2912, 2913, 2914, 2915, 2915, 2906, 2919, 2922, 2920, - 2931, 2910, 2909, 2919, 2920, 2925, 2913, 2918, 2923, 2923, - 2924, 2924, 2914, 2926, 2926, 2927, 2929, 2930, 2928, 2931, - 2922, 2933, 2932, 2930, 2941, 2925, 2927, 2928, 2934, 2934, - 2936, 2936, 2935, 2926, 2932, 2935, 2929, 2940, 2946, 2942, - 2945, 2933, 2943, 2943, 2941, 2942, 2945, 2944, 2948, 2940, - 2944, 2949, 2949, 2948, 2950, 2951, 2946, 2952, 2953, 2950, - 2954, 2954, 2957, 2952, 2958, 2956, 2959, 2960, 2960, 2961, - 2962, 0, 2963, 2967, 2951, 2953, 2953, 2956, 2967, 2959, - 2957, 2963, 2965, 2965, 2966, 2966, 2962, 2968, 2961, 2958, - - 2969, 2970, 2970, 2971, 2971, 2969, 2972, 2972, 2973, 2974, - 2975, 2968, 2976, 2978, 2978, 2981, 2975, 2976, 2983, 2984, - 2985, 2973, 2986, 2986, 2988, 2988, 2989, 2990, 2992, 2991, - 2993, 2994, 2994, 2998, 2981, 2974, 2995, 2995, 2997, 2993, - 2983, 2984, 2985, 2991, 2997, 2999, 2990, 3007, 2992, 3000, - 3003, 3003, 2989, 2998, 3000, 3005, 3005, 3006, 3009, 3008, - 3010, 3007, 3006, 3014, 2999, 3008, 3011, 3011, 3010, 3012, - 3009, 3015, 3016, 3017, 3012, 3018, 3020, 3016, 3021, 3022, - 3023, 3018, 3026, 3014, 3020, 3017, 3025, 3028, 3027, 3029, - 3031, 3015, 3032, 3036, 3029, 3031, 3033, 3021, 3026, 3022, - - 3023, 0, 3033, 3038, 3025, 3027, 3027, 3037, 3028, 3034, - 3037, 3043, 3032, 3036, 3034, 3043, 3038, 3041, 3041, 3042, - 3042, 3047, 3047, 3048, 3049, 3050, 3050, 3061, 3048, 3052, - 3052, 3053, 3053, 3056, 3053, 3054, 3054, 3056, 3054, 3055, - 3055, 3058, 3055, 3049, 3059, 3061, 3058, 3060, 3060, 3062, - 3065, 3066, 3067, 3059, 3068, 3068, 3071, 3067, 3072, 3074, - 3073, 3075, 3077, 3062, 3073, 3072, 3078, 0, 3074, 3082, - 3065, 3066, 3079, 3079, 3083, 3078, 3075, 3080, 3080, 3083, - 3077, 3071, 3081, 3081, 3082, 3084, 3085, 3086, 3087, 3088, - 3089, 3085, 3085, 3086, 3084, 3090, 3091, 3084, 3092, 3094, - - 3090, 3091, 3093, 3093, 3088, 3094, 3095, 3096, 3096, 3097, - 3097, 3089, 3095, 3087, 3098, 3099, 3105, 3092, 3102, 3102, - 3099, 3104, 3104, 3108, 3108, 3105, 3109, 3109, 3116, 3098, - 3110, 3110, 3111, 3111, 3112, 3112, 3113, 3113, 3114, 3114, - 3115, 3115, 3118, 3119, 3119, 3121, 3120, 3122, 3126, 3124, - 3128, 3118, 3125, 3125, 3116, 3120, 3127, 3121, 3129, 3129, - 3130, 3134, 3128, 3126, 3131, 3131, 3136, 3122, 3124, 3127, - 3135, 3137, 3137, 3135, 3140, 3130, 3138, 3140, 3141, 3134, - 3143, 3142, 3144, 3146, 3141, 3143, 3145, 3148, 3149, 3156, - 3153, 3173, 3136, 3148, 3138, 3142, 3152, 3149, 3165, 3146, - - 3152, 3144, 3176, 3165, 3145, 3153, 3166, 3168, 3179, 3166, - 3169, 3169, 3170, 3170, 3173, 3156, 3171, 3171, 3174, 3175, - 3168, 3177, 3176, 3175, 3181, 3180, 3183, 3174, 3186, 3181, - 3185, 3179, 3184, 3184, 3187, 3177, 3180, 3188, 3189, 3190, - 3191, 3183, 3197, 3185, 3192, 3193, 3194, 3186, 3203, 3191, - 3193, 3202, 3187, 3188, 3190, 3195, 3192, 3196, 3196, 3198, - 3195, 3210, 3197, 3189, 3198, 3202, 3205, 3194, 3203, 3204, - 3204, 3206, 3206, 3207, 3207, 3205, 3208, 3208, 3209, 3209, - 3210, 3211, 3212, 3213, 3214, 3212, 3215, 3216, 3213, 3214, - 3217, 3218, 3219, 3220, 3221, 3221, 3217, 3222, 3220, 3223, - - 3223, 3211, 3216, 3226, 3219, 3218, 3225, 3225, 3227, 3228, - 3228, 3215, 3232, 3230, 3235, 3235, 3237, 3222, 3226, 3236, - 3236, 3238, 3241, 3239, 3237, 3240, 3242, 3227, 3230, 3239, - 3232, 3240, 3243, 3244, 3245, 3245, 3241, 3250, 3244, 3242, - 3238, 3247, 3247, 3251, 3254, 3253, 3256, 3257, 3254, 3258, - 3262, 3243, 3257, 3261, 3259, 3262, 3260, 3263, 3250, 3253, - 3264, 3264, 3263, 3251, 3267, 3268, 3256, 3259, 3258, 3260, - 3269, 3271, 3261, 3270, 3270, 3272, 3271, 3273, 3273, 3277, - 3274, 3272, 3275, 3268, 3267, 3274, 3276, 3275, 3278, 3269, - 3281, 3276, 3280, 3280, 3278, 3281, 3282, 3282, 3277, 3284, - - 3285, 3286, 3287, 3284, 3288, 3289, 3290, 3291, 3286, 3293, - 3293, 3289, 3295, 3295, 3298, 3296, 3299, 3297, 3300, 3285, - 3291, 3287, 3297, 3288, 3296, 3290, 3303, 3296, 3301, 3301, - 3305, 3300, 3302, 3298, 3307, 3299, 3312, 3302, 0, 3303, - 3306, 3306, 3308, 3308, 3309, 3309, 3310, 3311, 3313, 3313, - 3319, 3310, 3314, 3307, 3311, 3312, 3305, 3314, 3315, 3317, - 3315, 3316, 3316, 3318, 3321, 3324, 3317, 3320, 3328, 3319, - 3318, 3326, 3320, 3323, 3323, 3327, 3326, 3329, 3330, 3330, - 3327, 3332, 3332, 3321, 3324, 3333, 3334, 3328, 3335, 3335, - 3336, 3336, 3337, 3339, 3339, 3341, 3329, 3340, 3340, 3337, - - 3347, 3343, 3341, 3346, 3333, 3334, 3343, 3348, 3346, 3349, - 3349, 3350, 3350, 0, 0, 0, 0, 0, 0, 3347, - 0, 0, 0, 0, 0, 0, 3348, 3354, 3354, 3354, - 3354, 3354, 3354, 3354, 3355, 3355, 3355, 3355, 3355, 3355, - 3355, 3356, 3356, 3356, 3356, 3356, 3356, 3356, 3357, 3357, - 3357, 3357, 3357, 3357, 3357, 3358, 3358, 3358, 3358, 3358, - 3358, 3358, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3360, - 3360, 3360, 3360, 3360, 3360, 3360, 3362, 3362, 0, 3362, - 3362, 3362, 3362, 3363, 3363, 0, 0, 0, 3363, 3363, - 3364, 3364, 0, 0, 3364, 0, 3364, 3365, 0, 0, - - 0, 0, 0, 3365, 3366, 3366, 0, 0, 0, 3366, - 3366, 3367, 0, 0, 0, 0, 0, 3367, 3368, 3368, - 0, 3368, 3368, 3368, 3368, 3369, 0, 0, 0, 0, - 0, 3369, 3370, 3370, 0, 0, 0, 3370, 3370, 3371, - 3371, 0, 3371, 3371, 3371, 3371, 3353, 3353, 3353, 3353, - 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, - 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, - 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, - 3353, 3353, 3353, 3353, 3353, 3353, 3353 + 321, 328, 322, 327, 324, 333, 331, 326, 336, 332, + 333, 329, 337, 325, 330, 331, 335, 334, 169, 335, + 334, 336, 334, 330, 337, 340, 330, 332, 340, 341, + + 341, 330, 330, 330, 330, 334, 339, 338, 334, 338, + 338, 339, 339, 342, 343, 345, 346, 344, 347, 347, + 354, 348, 349, 349, 345, 346, 348, 350, 350, 343, + 342, 351, 352, 342, 344, 344, 353, 352, 355, 354, + 356, 357, 358, 358, 360, 358, 351, 357, 353, 369, + 369, 361, 363, 362, 358, 356, 361, 363, 355, 362, + 364, 366, 375, 365, 360, 364, 365, 367, 365, 368, + 367, 364, 388, 370, 410, 366, 371, 371, 368, 370, + 372, 377, 375, 367, 376, 372, 367, 376, 367, 373, + 373, 378, 373, 388, 379, 382, 377, 381, 373, 410, + + 381, 167, 373, 384, 385, 376, 378, 373, 379, 382, + 373, 374, 374, 385, 374, 386, 381, 391, 384, 394, + 386, 386, 389, 387, 390, 392, 391, 374, 396, 387, + 374, 166, 374, 395, 374, 383, 387, 383, 383, 390, + 393, 389, 396, 399, 392, 394, 393, 383, 383, 383, + 383, 383, 397, 395, 383, 398, 400, 401, 397, 402, + 398, 404, 397, 399, 402, 403, 406, 404, 405, 405, + 407, 408, 401, 409, 411, 414, 400, 415, 398, 409, + 403, 416, 407, 412, 417, 408, 406, 418, 412, 418, + 411, 413, 413, 415, 413, 414, 420, 416, 417, 419, + + 420, 419, 419, 421, 422, 422, 423, 421, 424, 426, + 425, 430, 428, 432, 427, 431, 164, 430, 432, 419, + 428, 428, 421, 424, 431, 423, 425, 426, 427, 433, + 434, 435, 428, 433, 428, 429, 436, 435, 437, 434, + 429, 438, 440, 439, 437, 438, 439, 440, 429, 429, + 441, 443, 429, 429, 442, 442, 429, 436, 444, 444, + 445, 446, 447, 447, 443, 445, 448, 449, 450, 451, + 441, 449, 448, 452, 446, 453, 454, 454, 452, 455, + 453, 456, 457, 450, 458, 454, 459, 460, 465, 459, + 451, 455, 460, 461, 462, 467, 458, 461, 463, 463, + + 457, 456, 464, 466, 466, 471, 462, 464, 472, 465, + 469, 469, 473, 474, 475, 476, 472, 467, 477, 475, + 479, 473, 481, 480, 486, 482, 471, 483, 484, 486, + 477, 487, 490, 483, 474, 476, 488, 484, 479, 482, + 479, 480, 481, 485, 488, 487, 490, 488, 489, 485, + 491, 489, 492, 493, 494, 495, 496, 494, 492, 497, + 498, 495, 499, 500, 497, 491, 501, 500, 505, 502, + 496, 501, 503, 493, 504, 506, 509, 503, 511, 495, + 510, 512, 498, 499, 502, 512, 515, 505, 506, 513, + 504, 507, 507, 511, 516, 514, 509, 507, 516, 507, + + 514, 510, 515, 518, 517, 507, 520, 507, 513, 517, + 507, 507, 521, 517, 519, 523, 524, 507, 518, 519, + 522, 521, 520, 526, 525, 520, 522, 525, 527, 529, + 523, 522, 524, 528, 528, 530, 530, 531, 532, 535, + 533, 534, 534, 536, 537, 539, 526, 538, 527, 537, + 532, 540, 531, 541, 529, 533, 538, 544, 535, 541, + 543, 544, 546, 545, 539, 536, 540, 545, 546, 543, + 547, 548, 549, 550, 551, 552, 553, 554, 566, 555, + 553, 555, 547, 566, 557, 560, 548, 550, 562, 551, + 554, 549, 557, 552, 558, 558, 559, 560, 561, 564, + + 562, 565, 559, 563, 561, 567, 563, 569, 567, 568, + 162, 571, 581, 564, 570, 581, 565, 579, 568, 570, + 570, 572, 572, 569, 571, 568, 573, 573, 568, 574, + 575, 575, 576, 576, 577, 574, 578, 580, 579, 582, + 577, 578, 578, 583, 582, 584, 586, 585, 587, 580, + 585, 586, 589, 584, 588, 590, 589, 591, 593, 592, + 594, 590, 583, 592, 595, 594, 596, 596, 597, 598, + 599, 587, 600, 588, 602, 599, 593, 591, 595, 601, + 603, 607, 604, 597, 605, 606, 603, 604, 606, 609, + 598, 600, 610, 606, 602, 601, 606, 606, 605, 607, + + 608, 608, 613, 614, 611, 612, 616, 609, 610, 611, + 612, 617, 616, 623, 618, 619, 613, 618, 614, 619, + 617, 620, 621, 622, 624, 621, 620, 625, 622, 623, + 626, 627, 628, 632, 625, 630, 627, 629, 629, 631, + 633, 619, 624, 626, 630, 635, 634, 636, 638, 160, + 642, 638, 628, 636, 632, 634, 633, 635, 631, 637, + 639, 639, 643, 639, 640, 637, 641, 640, 642, 644, + 645, 641, 646, 648, 644, 647, 643, 650, 646, 648, + 647, 649, 651, 653, 649, 652, 654, 651, 655, 645, + 652, 652, 656, 655, 657, 658, 653, 660, 656, 654, + + 659, 669, 650, 663, 658, 659, 663, 655, 655, 661, + 661, 662, 665, 657, 664, 668, 668, 660, 662, 671, + 664, 663, 666, 667, 665, 673, 669, 666, 667, 667, + 670, 672, 670, 672, 674, 675, 676, 666, 671, 677, + 678, 679, 680, 673, 685, 679, 678, 681, 682, 683, + 684, 680, 674, 675, 687, 676, 685, 686, 688, 677, + 687, 689, 681, 682, 690, 691, 692, 683, 695, 684, + 693, 701, 686, 694, 696, 689, 690, 694, 688, 697, + 698, 699, 704, 700, 691, 701, 695, 692, 700, 693, + 696, 702, 702, 705, 707, 706, 704, 697, 698, 698, + + 699, 703, 708, 709, 710, 703, 706, 708, 707, 711, + 712, 713, 705, 714, 715, 718, 713, 712, 719, 709, + 714, 716, 711, 710, 717, 719, 716, 720, 721, 717, + 722, 723, 725, 718, 724, 730, 720, 725, 715, 722, + 724, 726, 721, 723, 726, 727, 728, 729, 731, 727, + 730, 732, 733, 733, 734, 734, 729, 735, 735, 736, + 728, 737, 731, 734, 736, 739, 741, 740, 743, 744, + 737, 742, 732, 740, 745, 742, 746, 747, 749, 750, + 743, 748, 746, 751, 739, 747, 741, 754, 748, 757, + 760, 761, 745, 772, 744, 763, 749, 761, 770, 760, + + 764, 763, 754, 751, 750, 752, 757, 752, 85, 764, + 752, 766, 765, 772, 752, 766, 770, 752, 767, 767, + 768, 768, 769, 771, 752, 752, 773, 752, 765, 775, + 776, 777, 773, 769, 780, 776, 778, 771, 774, 774, + 774, 782, 774, 779, 781, 774, 782, 779, 781, 775, + 774, 783, 777, 785, 778, 784, 774, 774, 780, 786, + 784, 788, 787, 791, 781, 787, 788, 788, 785, 789, + 783, 790, 790, 798, 792, 798, 789, 794, 791, 792, + 793, 793, 794, 795, 786, 796, 795, 797, 797, 799, + 796, 800, 801, 802, 804, 803, 801, 805, 805, 810, + + 806, 799, 804, 807, 808, 808, 809, 811, 814, 814, + 800, 810, 812, 802, 803, 806, 813, 807, 812, 819, + 815, 813, 817, 825, 809, 815, 815, 817, 818, 811, + 820, 825, 821, 822, 818, 824, 820, 821, 819, 822, + 823, 824, 828, 823, 826, 826, 827, 827, 829, 830, + 828, 831, 832, 833, 830, 834, 835, 835, 831, 836, + 838, 838, 840, 837, 844, 850, 829, 839, 836, 833, + 832, 837, 845, 839, 834, 842, 843, 845, 846, 847, + 849, 840, 847, 851, 842, 843, 848, 846, 844, 852, + 850, 848, 851, 853, 849, 854, 854, 855, 853, 853, + + 856, 857, 852, 858, 859, 860, 867, 862, 860, 862, + 857, 864, 855, 863, 863, 865, 860, 866, 869, 856, + 865, 868, 859, 870, 871, 872, 867, 858, 874, 876, + 873, 875, 864, 871, 873, 876, 877, 878, 866, 879, + 869, 868, 880, 870, 882, 877, 874, 881, 872, 878, + 875, 883, 882, 881, 884, 886, 880, 887, 879, 884, + 885, 885, 888, 889, 890, 883, 891, 892, 893, 895, + 894, 888, 890, 896, 886, 895, 898, 887, 897, 896, + 899, 900, 898, 889, 903, 901, 891, 893, 903, 892, + 894, 901, 897, 902, 899, 904, 905, 906, 907, 902, + + 909, 900, 906, 908, 908, 910, 909, 911, 905, 912, + 911, 910, 913, 915, 904, 914, 905, 916, 916, 907, + 917, 914, 921, 918, 924, 913, 919, 912, 918, 919, + 920, 923, 923, 915, 925, 920, 920, 921, 917, 922, + 926, 927, 919, 922, 919, 926, 924, 929, 930, 933, + 932, 934, 936, 936, 925, 937, 939, 939, 940, 937, + 927, 941, 930, 932, 938, 941, 942, 962, 962, 933, + 944, 929, 934, 935, 943, 944, 935, 945, 935, 938, + 946, 942, 935, 940, 935, 946, 946, 947, 943, 935, + 948, 945, 950, 949, 935, 951, 947, 949, 953, 952, + + 951, 954, 955, 953, 948, 956, 958, 950, 957, 949, + 951, 952, 958, 959, 960, 954, 961, 957, 959, 956, + 960, 963, 961, 955, 964, 965, 963, 966, 969, 970, + 964, 967, 972, 975, 970, 973, 973, 974, 971, 976, + 969, 975, 974, 977, 972, 980, 966, 965, 978, 967, + 968, 968, 971, 979, 981, 976, 968, 977, 968, 983, + 981, 980, 984, 982, 968, 985, 986, 978, 982, 968, + 968, 983, 979, 987, 988, 988, 968, 990, 989, 992, + 984, 985, 989, 993, 986, 992, 993, 994, 995, 996, + 997, 987, 999, 995, 998, 1001, 997, 990, 1002, 998, + + 1003, 1005, 996, 1004, 1001, 1006, 994, 1002, 1007, 1004, + 1005, 999, 1008, 1007, 1009, 1010, 1003, 1011, 1012, 1014, + 1015, 1013, 1018, 1021, 1006, 1014, 1020, 1012, 1009, 1011, + 1013, 1022, 1008, 1016, 1023, 1010, 1022, 1015, 1018, 1016, + 1020, 1024, 1025, 1021, 1026, 1027, 1028, 1031, 1032, 80, + 1027, 1028, 1031, 1023, 1035, 1024, 1036, 1032, 1034, 1026, + 1025, 1033, 1033, 1035, 1034, 1037, 1039, 1040, 1045, 1044, + 1046, 1036, 1040, 1040, 1043, 1042, 1042, 1043, 1037, 1042, + 1047, 1048, 1039, 1044, 1049, 1050, 1046, 1051, 1045, 1052, + 1053, 1050, 1054, 1058, 1048, 1052, 1055, 1054, 1047, 1049, + + 1057, 1059, 1061, 1057, 1060, 1053, 1059, 1051, 1062, 1060, + 1055, 1063, 1065, 1067, 1058, 1064, 1063, 1062, 1061, 1067, + 1064, 1068, 1069, 1070, 1065, 1071, 1071, 1072, 1069, 1070, + 1073, 1074, 1075, 1075, 1074, 1076, 1072, 1068, 1077, 1078, + 1079, 1080, 1083, 1079, 1081, 1082, 1085, 1083, 1073, 1091, + 1081, 1082, 1085, 1076, 1080, 1084, 1086, 1077, 1087, 1078, + 1084, 1086, 1089, 1090, 1087, 1092, 1097, 1089, 1093, 1091, + 1095, 1092, 1098, 1093, 1094, 1094, 1096, 1099, 1101, 1095, + 1099, 1090, 1102, 1100, 1097, 1096, 1100, 1102, 1103, 1101, + 1104, 1098, 1105, 1106, 1107, 1108, 1109, 1110, 1110, 1106, + + 1107, 1109, 1104, 1111, 1112, 1113, 1103, 1114, 1115, 1116, + 1108, 1105, 1115, 1118, 1117, 1119, 1121, 1113, 1112, 1122, + 1122, 1123, 1111, 1117, 1126, 1114, 1124, 1116, 1125, 1123, + 1129, 1124, 1118, 1125, 1128, 1121, 1131, 1130, 1132, 1134, + 1119, 1131, 1133, 1133, 1126, 1129, 1135, 1132, 1128, 1130, + 1136, 1137, 1135, 1138, 1141, 1139, 1136, 1139, 1138, 1134, + 1140, 1142, 1144, 1145, 1143, 1140, 1146, 1137, 1141, 1143, + 1147, 1148, 1151, 1146, 1152, 1142, 1153, 1144, 1150, 1150, + 1155, 1154, 1145, 1156, 75, 1147, 1151, 1154, 1156, 1158, + 1148, 1153, 1152, 1158, 1159, 1159, 1160, 1156, 1162, 1156, + + 1155, 1160, 1156, 1161, 1161, 1162, 1163, 1164, 1165, 1167, + 1164, 1166, 1168, 1169, 1170, 74, 1171, 1168, 1167, 1172, + 1163, 1171, 1174, 1173, 1176, 1176, 1170, 1165, 1179, 1166, + 1177, 1178, 1169, 1172, 1173, 1177, 1178, 1180, 1182, 1181, + 1183, 1174, 1180, 1181, 1184, 1185, 1186, 1182, 1179, 1188, + 1187, 1189, 1190, 1191, 1192, 1183, 1188, 1196, 1186, 1184, + 1193, 1194, 1195, 1189, 1185, 1187, 1193, 1197, 1195, 1198, + 1199, 1190, 1192, 1200, 1191, 1202, 1194, 1196, 1198, 1201, + 1203, 1204, 1205, 1206, 1208, 1199, 1209, 1197, 1205, 1211, + 1208, 1201, 1200, 1210, 1202, 1212, 1204, 1211, 1213, 1214, + + 1215, 1209, 1217, 1206, 1214, 1203, 1218, 1210, 1281, 1219, + 1281, 1216, 1215, 1222, 1213, 1212, 1216, 1216, 1220, 1220, + 1218, 1217, 1219, 1221, 1221, 1223, 1222, 1224, 1221, 1225, + 1225, 1221, 1221, 1224, 1223, 1226, 1221, 1228, 1227, 1229, + 1226, 1232, 1221, 1228, 1229, 1230, 1221, 1227, 1231, 1231, + 1230, 1233, 1233, 1234, 1235, 1236, 1234, 1237, 1234, 1238, + 1239, 1240, 1232, 1237, 1241, 1242, 1240, 1245, 1238, 1243, + 1244, 1249, 1245, 1236, 1235, 1243, 1244, 1246, 1241, 1247, + 1239, 1246, 1248, 1242, 1260, 1249, 1255, 1248, 1247, 1250, + 1250, 1251, 1251, 1247, 1251, 1247, 1252, 1247, 1254, 1247, + + 1256, 1255, 1254, 1257, 1258, 1259, 1260, 1252, 1261, 1258, + 1258, 1262, 1257, 1261, 1259, 1263, 1264, 1265, 1256, 1266, + 1267, 1268, 1268, 1269, 1263, 1262, 1267, 1270, 1272, 1271, + 1273, 1269, 1275, 1266, 1271, 1264, 1265, 1274, 1276, 1273, + 1277, 1270, 1272, 1279, 1274, 1277, 1278, 1278, 1280, 1280, + 1275, 1283, 1284, 1285, 1283, 1286, 1288, 1284, 1279, 1287, + 1287, 1289, 1289, 1276, 1286, 1290, 1290, 1292, 1291, 1293, + 1294, 1294, 1285, 1291, 1295, 1296, 1288, 1297, 1298, 1299, + 1297, 1300, 1301, 1303, 1306, 1299, 1300, 1302, 1292, 1302, + 1293, 1301, 1296, 1305, 1295, 1307, 1305, 1308, 1298, 1306, + + 1307, 1303, 1309, 1311, 1310, 1313, 1312, 1309, 1311, 1312, + 1313, 1308, 1310, 1314, 1314, 1315, 1316, 1317, 1318, 1319, + 1315, 1321, 1322, 1317, 1323, 1318, 1324, 1321, 1322, 1323, + 1325, 1324, 1319, 1326, 1316, 1327, 1325, 1328, 1329, 1329, + 1330, 1332, 1326, 1333, 1335, 1334, 1332, 1336, 1328, 1337, + 1338, 1339, 1340, 1344, 1327, 1334, 1338, 1339, 1340, 1335, + 1330, 1333, 1342, 1343, 1345, 1347, 1346, 1336, 1342, 1348, + 1349, 1349, 1337, 1344, 1350, 1351, 1353, 1343, 1346, 1347, + 1352, 1353, 1355, 1343, 1345, 1354, 1354, 1348, 1356, 1358, + 1359, 1360, 1361, 1356, 1350, 1359, 1359, 1363, 1352, 1362, + + 1351, 1361, 1364, 1365, 1367, 1355, 1369, 1362, 1358, 1360, + 1368, 1363, 1368, 1367, 1366, 1373, 1375, 1364, 1365, 1366, + 1369, 1365, 1366, 1371, 1372, 1374, 1373, 1376, 1372, 1371, + 1374, 1374, 1377, 1378, 1379, 1375, 1380, 1381, 1378, 1379, + 1382, 1383, 1385, 68, 1386, 1382, 1387, 1388, 1388, 1390, + 1377, 1389, 1391, 1376, 1380, 1389, 1385, 1381, 1393, 1392, + 1394, 1383, 1386, 1395, 1387, 1392, 1396, 1390, 1397, 1398, + 1393, 1391, 1402, 1399, 1403, 1400, 1406, 1395, 1399, 1394, + 1401, 1396, 1400, 1397, 1404, 1401, 1405, 1405, 1398, 1407, + 1402, 1406, 1408, 1404, 1410, 1403, 1409, 1409, 1407, 1411, + + 1410, 1412, 1413, 1413, 1415, 1411, 1414, 1414, 1416, 1417, + 1415, 1418, 1408, 1419, 1420, 1412, 1418, 1421, 1428, 1419, + 1420, 1422, 1422, 1421, 1416, 1423, 1423, 1425, 1425, 1426, + 1417, 1427, 1429, 1426, 1430, 1431, 1428, 1434, 1432, 1435, + 1427, 1433, 1433, 1438, 1429, 1432, 1436, 1435, 1430, 1437, + 1431, 1436, 1441, 1439, 1443, 1440, 1444, 1434, 1439, 1439, + 1440, 1440, 1438, 1437, 1442, 1442, 1446, 1445, 1447, 1448, + 1449, 1446, 1441, 1443, 1450, 1444, 1445, 1451, 1452, 1453, + 1450, 1455, 1451, 1458, 1454, 1456, 1457, 1447, 1449, 1448, + 1454, 1456, 1457, 1459, 1460, 1461, 1462, 1463, 1452, 1469, + + 1455, 1464, 1458, 1465, 1465, 1453, 1466, 1467, 1468, 1466, + 1462, 1469, 1459, 1460, 1461, 1475, 1464, 1474, 1463, 1470, + 1470, 1471, 1471, 1472, 1475, 1473, 1467, 1468, 1472, 1473, + 1474, 1476, 1477, 1481, 1477, 1479, 1480, 1482, 1477, 1483, + 1485, 1480, 1484, 1484, 1476, 1485, 1486, 1487, 1481, 1489, + 1488, 1477, 1486, 1479, 1489, 1483, 1490, 1482, 1492, 1493, + 1490, 1491, 1487, 1488, 1494, 1491, 1495, 1499, 1496, 1497, + 1497, 1501, 63, 1494, 1496, 1502, 1505, 1493, 1492, 1516, + 1502, 1503, 1503, 1504, 1511, 1499, 1495, 1507, 1507, 1504, + 1509, 1512, 1501, 1509, 1510, 1510, 1505, 1515, 1514, 1516, + + 1511, 1514, 1517, 1518, 1519, 1519, 1520, 1512, 1521, 1522, + 1523, 1517, 1524, 1525, 1525, 1523, 1526, 1527, 1515, 1528, + 1529, 1520, 1530, 1518, 1532, 1526, 1524, 1540, 1522, 1521, + 1531, 1531, 1533, 1535, 1528, 1527, 1534, 1538, 1532, 1536, + 1536, 1534, 1530, 1537, 1541, 1529, 1544, 1537, 1535, 1540, + 1533, 1539, 1539, 1542, 1543, 1545, 1548, 1538, 1543, 1548, + 1545, 1547, 1547, 1541, 1542, 1544, 1549, 1550, 1551, 1552, + 1554, 1553, 1550, 1556, 1555, 1557, 1557, 1558, 1563, 1549, + 1559, 1560, 1558, 1563, 1551, 1553, 1562, 1552, 1555, 1554, + 1554, 1561, 1561, 1564, 1565, 1562, 1565, 1566, 1556, 1567, + + 1559, 1560, 1566, 1568, 1569, 1567, 1571, 1572, 1572, 1573, + 1569, 1574, 1577, 1564, 1576, 1578, 1578, 1574, 1580, 1576, + 1571, 1579, 1579, 1568, 1581, 1582, 1583, 1585, 1573, 1583, + 1584, 1584, 1580, 1587, 1586, 1595, 1577, 1589, 1588, 58, + 1582, 1588, 1581, 1589, 1588, 1585, 1586, 1590, 1591, 1593, + 1594, 1591, 1590, 1587, 1596, 1594, 1588, 1596, 1593, 1598, + 1595, 1597, 1597, 1599, 1603, 1598, 1600, 1591, 1606, 1599, + 1603, 1600, 1601, 1601, 1602, 1602, 1604, 1605, 1607, 1608, + 1609, 1604, 1610, 1609, 1612, 1611, 1606, 1613, 1610, 1612, + 1605, 1611, 1614, 1613, 1618, 1615, 1619, 1607, 1617, 1608, + + 1615, 1616, 1616, 1617, 1620, 1621, 1622, 1623, 1624, 1625, + 1626, 1629, 1618, 1627, 1636, 1614, 1619, 1627, 1638, 1632, + 1622, 1623, 1624, 1620, 1628, 1621, 1628, 1625, 1633, 1630, + 1629, 1632, 1634, 1635, 1636, 1626, 1630, 1637, 1638, 1635, + 1633, 1639, 1640, 1642, 1642, 1634, 1643, 1644, 1645, 1646, + 1646, 1648, 1644, 1637, 1647, 1639, 1649, 1650, 1651, 1652, + 1645, 1653, 1655, 1640, 1654, 1648, 1643, 1651, 1653, 1647, + 1657, 1659, 57, 1654, 1652, 1650, 1654, 1663, 1655, 1660, + 1649, 1664, 1660, 1661, 1661, 1657, 1662, 1662, 1665, 1663, + 1657, 1665, 1666, 1666, 1667, 1668, 1659, 1669, 1670, 1664, + + 1671, 1670, 1669, 1672, 1673, 1671, 1674, 1667, 1675, 1676, + 1677, 1678, 1679, 1679, 1668, 1674, 1680, 1678, 1676, 1677, + 1673, 1676, 1672, 1682, 1681, 1683, 1684, 1675, 1685, 1690, + 1686, 1687, 1691, 1685, 1685, 1686, 1680, 1681, 1694, 1683, + 1693, 1682, 1684, 1687, 1692, 1692, 1695, 1694, 1696, 1696, + 1691, 1695, 1697, 1698, 1690, 1699, 1693, 1700, 1698, 1701, + 1702, 1697, 1704, 1696, 1697, 1702, 1702, 1705, 1706, 1707, + 1709, 1710, 1710, 1699, 1707, 1708, 1704, 1701, 1700, 1711, + 1713, 1708, 1705, 1717, 1712, 1711, 1714, 1715, 1709, 1712, + 1706, 1718, 1714, 1715, 1713, 1719, 1720, 1721, 1722, 1724, + + 1721, 1719, 1726, 1717, 1722, 1718, 1721, 1724, 1727, 1720, + 1728, 1729, 1731, 1730, 1732, 1733, 1729, 1734, 1728, 1735, + 1737, 1726, 1730, 1732, 1739, 1731, 1737, 1727, 1733, 1736, + 1736, 1734, 1738, 1735, 1740, 1740, 1741, 1739, 1738, 1742, + 1743, 1744, 1744, 1746, 1747, 1745, 1748, 1749, 1752, 1746, + 1753, 1736, 1751, 1751, 1753, 1754, 1741, 1742, 1745, 1743, + 1754, 1755, 1748, 1759, 1756, 1749, 1747, 1757, 1752, 1756, + 1758, 1761, 1757, 1763, 1762, 1764, 1763, 1765, 1767, 1758, + 1769, 1755, 1761, 1762, 1766, 1766, 1759, 1764, 1768, 1770, + 1770, 1771, 1765, 1776, 1772, 1773, 1774, 1767, 1777, 1769, + + 1768, 1772, 1779, 1778, 1780, 1771, 1786, 1773, 1774, 1778, + 1781, 1786, 1776, 1791, 1779, 1791, 1781, 1793, 1777, 1782, + 1782, 1783, 1780, 1787, 1783, 1784, 1784, 1788, 1789, 1789, + 1790, 1792, 1787, 1788, 1792, 1794, 1795, 1793, 1796, 1797, + 1798, 1799, 1790, 1800, 1797, 1798, 1801, 1802, 1804, 1803, + 1799, 1807, 1802, 1810, 1795, 1800, 1796, 1794, 1803, 1806, + 1805, 1801, 1808, 1808, 1806, 1805, 1807, 1809, 1804, 1812, + 1813, 1803, 1805, 1809, 1810, 1814, 1815, 1816, 1817, 1816, + 1818, 1818, 1819, 1819, 1820, 1820, 1821, 1824, 1812, 1813, + 1825, 1814, 1817, 1835, 1817, 1838, 1815, 1822, 1822, 1823, + + 1823, 1826, 1826, 1827, 1828, 1832, 1821, 1827, 1824, 1829, + 1828, 1825, 1829, 1831, 1833, 1838, 1834, 1841, 1835, 1831, + 1833, 1834, 1836, 1832, 1839, 1836, 1837, 1837, 1842, 1839, + 1840, 1840, 1841, 1843, 1844, 1845, 1845, 1846, 1843, 1844, + 1847, 1848, 1846, 1849, 1850, 1851, 1847, 1853, 52, 1842, + 1852, 1857, 1855, 1848, 1848, 1848, 1852, 1855, 1855, 1856, + 1848, 1859, 1850, 1849, 1860, 1851, 1857, 1853, 1858, 1861, + 1858, 1862, 1859, 1856, 1863, 1861, 1864, 1865, 1865, 1860, + 1862, 1866, 1867, 1867, 1868, 1872, 1869, 1870, 1870, 1871, + 1871, 1875, 1875, 1876, 1863, 1880, 1881, 1864, 1882, 1884, + + 1877, 1879, 1881, 1888, 1868, 1872, 1885, 1866, 1869, 1877, + 1879, 1883, 1883, 1890, 1882, 1886, 1880, 1887, 1876, 1891, + 1884, 1885, 1886, 1889, 1889, 1893, 1887, 1894, 1895, 1888, + 1893, 1896, 1900, 1894, 1897, 1891, 1901, 1904, 1896, 1890, + 1897, 1898, 1901, 1898, 1902, 1902, 1904, 1903, 1895, 1905, + 1907, 1900, 1903, 1906, 1908, 1909, 1910, 1908, 1911, 1911, + 1912, 1913, 1907, 1914, 1915, 1918, 1912, 1913, 1922, 1905, + 1916, 1919, 1906, 1909, 1916, 1920, 1921, 1921, 1925, 1915, + 1920, 1923, 1910, 1914, 1926, 1918, 1934, 1922, 1926, 1928, + 1916, 1927, 1927, 1919, 1929, 1928, 1923, 1925, 1930, 1930, + + 1931, 1932, 1935, 1929, 1931, 1933, 1933, 1934, 1936, 1937, + 1938, 1939, 1932, 1940, 1937, 1941, 1935, 1932, 1943, 1940, + 1942, 1944, 1947, 1943, 1945, 1945, 1947, 1936, 1946, 1946, + 1938, 1939, 1949, 1941, 1944, 1942, 1950, 1951, 1952, 1952, + 1955, 1949, 1954, 1954, 1956, 1955, 1955, 1950, 1958, 1959, + 1956, 1960, 1950, 1961, 1958, 1962, 1960, 1951, 1964, 1965, + 1966, 1962, 1968, 1965, 1970, 1961, 1967, 1967, 1969, 1973, + 1964, 1971, 1966, 1974, 1969, 1959, 1975, 1971, 1972, 1972, + 1976, 1975, 1978, 1979, 1980, 1986, 1970, 1968, 1973, 1980, + 1983, 1983, 1976, 1974, 1978, 1982, 1984, 1984, 1982, 1985, + + 1985, 1987, 1979, 1988, 1990, 1986, 1989, 1987, 1991, 1988, + 1990, 1989, 1995, 1993, 1996, 1995, 1999, 1991, 1993, 1997, + 1997, 2000, 2001, 2002, 2002, 2003, 1996, 2001, 1999, 2006, + 2004, 2005, 2006, 2000, 2003, 2004, 2005, 2007, 2007, 2008, + 2009, 2012, 2010, 2011, 2014, 2012, 2013, 2015, 2016, 2009, + 2014, 2013, 2017, 2018, 2020, 2020, 2021, 2016, 2023, 2008, + 2010, 2027, 2011, 2022, 2025, 2015, 2020, 2018, 2024, 2024, + 2017, 2026, 2022, 2025, 2021, 2028, 2029, 2035, 2023, 2036, + 2028, 2038, 2027, 2026, 2032, 2032, 2039, 2034, 2040, 2029, + 2034, 2041, 2044, 2035, 2040, 2036, 2038, 2042, 2042, 2043, + + 2039, 2043, 2045, 2045, 2046, 2048, 2048, 2051, 2041, 2052, + 2044, 2053, 2046, 2049, 2049, 2052, 2055, 2053, 2054, 2056, + 2057, 2058, 2058, 2055, 2059, 2060, 2061, 2062, 2063, 2065, + 2051, 2067, 2054, 2059, 2066, 2064, 2069, 2067, 2061, 2062, + 2057, 2056, 2070, 2063, 2073, 2071, 2060, 2064, 2074, 2066, + 2067, 2072, 2072, 2077, 2076, 2065, 2069, 2071, 2075, 2076, + 2081, 2075, 2073, 2087, 2079, 2070, 2082, 2083, 2074, 2079, + 2080, 2082, 2080, 2077, 2083, 2085, 2088, 2089, 2081, 2091, + 2090, 2087, 2090, 2095, 2085, 2088, 2092, 2097, 2094, 2089, + 2094, 2098, 2092, 2096, 2096, 2100, 2098, 2095, 2091, 2099, + + 2100, 2099, 2101, 2102, 2103, 2104, 2106, 2101, 2107, 2105, + 2108, 2104, 2111, 2097, 2105, 2108, 2108, 2109, 2112, 2106, + 2107, 2102, 2113, 2113, 2103, 2109, 2114, 2114, 2115, 2116, + 2117, 2111, 2112, 2118, 2120, 2119, 2117, 2119, 2118, 2121, + 2122, 2122, 2123, 2115, 2124, 2124, 2128, 2121, 2126, 2116, + 2125, 2125, 2120, 2127, 2123, 2121, 2130, 2126, 2127, 2131, + 2132, 2131, 2134, 2136, 2128, 2130, 2133, 2135, 2130, 2143, + 2138, 2133, 2133, 2139, 2134, 2136, 2135, 2142, 2139, 2140, + 2146, 2132, 2138, 2144, 2140, 2145, 2145, 2147, 2148, 2143, + 2142, 2149, 2144, 2150, 2151, 2152, 2154, 2156, 2146, 2155, + + 2152, 2157, 2165, 2159, 2148, 2147, 2157, 2150, 2154, 2151, + 2158, 2155, 2159, 2162, 2164, 2158, 2149, 2156, 2166, 2162, + 2164, 2167, 2168, 2170, 2170, 2165, 2169, 2171, 2172, 2172, + 2173, 2174, 2162, 2166, 2175, 2169, 2171, 2176, 2175, 2167, + 2177, 2179, 2176, 2180, 2181, 2187, 2182, 2168, 2173, 2180, + 2174, 2182, 2182, 2177, 2185, 2183, 2184, 2185, 2196, 2186, + 2179, 2183, 2184, 2190, 2190, 2187, 2181, 2186, 2191, 2191, + 2192, 2193, 2193, 2194, 2194, 2195, 2196, 2198, 2197, 2192, + 2199, 2199, 2198, 2191, 2197, 2200, 2200, 2195, 2201, 2202, + 2205, 2207, 2204, 2201, 2191, 2202, 2204, 2206, 2209, 2210, + + 2212, 2206, 2211, 2213, 2210, 2215, 2214, 2216, 2213, 2217, + 2205, 2207, 2218, 2221, 2217, 2212, 2219, 2219, 2220, 2223, + 2224, 2215, 2220, 2209, 2214, 2211, 2222, 2216, 2221, 2225, + 2226, 2222, 2227, 2228, 2218, 2229, 2232, 2227, 2224, 2230, + 2230, 2225, 2233, 2234, 2232, 2223, 2228, 2235, 2236, 2226, + 2237, 2239, 2238, 2229, 2240, 2245, 2243, 2249, 2241, 2247, + 2246, 2233, 2234, 2239, 2241, 2247, 2250, 2250, 2245, 2237, + 2235, 2243, 2236, 2238, 2246, 2240, 2248, 2249, 2248, 2251, + 2252, 2253, 2254, 2252, 2251, 2255, 2256, 2256, 2257, 2257, + 2258, 2260, 2258, 47, 2253, 2261, 2254, 2269, 2255, 2259, + + 2259, 2262, 2262, 2263, 2264, 2264, 2260, 2270, 2261, 2265, + 2265, 2266, 2263, 2268, 2271, 2263, 2266, 2269, 2268, 2272, + 2272, 2273, 2273, 2274, 2275, 2275, 2271, 2270, 2276, 2277, + 2277, 2279, 2278, 2280, 2280, 2282, 2279, 2281, 2281, 2283, + 2284, 2285, 2274, 2286, 2290, 2288, 2276, 2278, 2283, 2282, + 2288, 2289, 2289, 2291, 2291, 2285, 2292, 2284, 2293, 2295, + 2295, 2297, 2286, 2290, 2293, 2294, 2296, 2296, 2294, 2298, + 2299, 2301, 2299, 2302, 2292, 2295, 2303, 2303, 2305, 2306, + 2297, 2307, 2310, 2308, 2298, 2311, 2301, 2308, 2309, 2309, + 2311, 2312, 2302, 2313, 2315, 2315, 2307, 2316, 2305, 2318, + + 2317, 2310, 2306, 2319, 2320, 2321, 2312, 2317, 2313, 2322, + 2322, 2323, 2324, 2318, 2324, 2325, 2328, 2316, 2325, 2327, + 2323, 2319, 2320, 2331, 2329, 2327, 2332, 2330, 2328, 2329, + 2333, 2321, 2330, 2325, 2335, 2325, 2334, 2337, 2338, 2332, + 2339, 2334, 2337, 2338, 2340, 2342, 2341, 2343, 2331, 2345, + 2340, 2333, 2341, 2344, 2345, 2339, 2346, 2347, 2348, 2344, + 2335, 2346, 2343, 2350, 2349, 2351, 2342, 2349, 2352, 2353, + 2354, 2348, 2350, 2355, 2351, 2356, 2357, 2352, 2353, 2355, + 2357, 2356, 2347, 2359, 2354, 2361, 2362, 2363, 2363, 2366, + 2364, 2365, 2365, 2367, 2367, 2362, 2364, 2368, 2366, 2369, + + 2365, 2371, 2368, 2359, 2372, 2361, 2373, 2373, 2374, 2375, + 2377, 2378, 2380, 2379, 2384, 2386, 2386, 2371, 2375, 2369, + 2372, 2369, 2377, 2374, 2380, 2383, 2382, 2378, 2379, 2382, + 2383, 2385, 2387, 2387, 2384, 2389, 2389, 2390, 2396, 2391, + 2390, 2392, 2393, 2385, 2391, 2394, 2398, 2392, 2393, 2395, + 2395, 2399, 2396, 2400, 2394, 2397, 2397, 2402, 2398, 2401, + 2401, 2403, 2404, 2402, 2406, 2399, 2407, 2404, 2406, 2407, + 2408, 2408, 2400, 2409, 2410, 2403, 2411, 2412, 2409, 2415, + 2413, 2414, 2414, 2410, 2413, 2411, 2417, 2418, 2419, 2420, + 2421, 2417, 2415, 2422, 2421, 2423, 2424, 2412, 2425, 2427, + + 2423, 2428, 2424, 2420, 2425, 2426, 2426, 2418, 2419, 2429, + 2430, 2431, 2434, 2422, 2435, 2430, 2436, 2427, 2432, 2432, + 2428, 2436, 2441, 2437, 2434, 2438, 2443, 2446, 2429, 2437, + 2435, 2441, 2431, 2438, 2439, 2452, 2439, 2444, 2444, 2445, + 2443, 2450, 2445, 2447, 2447, 2450, 2451, 2452, 2453, 2453, + 2454, 2459, 2451, 2446, 2457, 2457, 2461, 2462, 2465, 2454, + 2466, 2467, 2468, 2465, 2470, 2470, 2469, 2468, 2476, 2459, + 2461, 2469, 2474, 2462, 2472, 2472, 2475, 2475, 2474, 2477, + 2478, 2480, 2467, 2482, 2476, 2478, 2466, 2481, 2484, 2484, + 2481, 2483, 2487, 2486, 2488, 2482, 2489, 2493, 2487, 2494, + + 2480, 2477, 2486, 2483, 2491, 2491, 2492, 2496, 2496, 2492, + 2498, 2489, 2488, 2497, 2497, 2498, 2493, 2494, 2499, 2500, + 2501, 2502, 2505, 2502, 2503, 2501, 2504, 2506, 2500, 2507, + 2508, 2546, 2506, 2546, 2505, 18, 2499, 2509, 2503, 2515, + 2504, 2514, 2509, 2510, 2510, 2511, 2511, 2512, 2512, 2507, + 2508, 2513, 2513, 2514, 2516, 2517, 2517, 2515, 2519, 2516, + 2518, 2518, 2520, 2521, 2522, 2523, 2526, 2524, 2525, 2525, + 2519, 2527, 2527, 2528, 2528, 2521, 2529, 2530, 2532, 2533, + 2535, 2531, 2520, 2524, 2522, 2526, 2523, 2529, 2531, 2530, + 2532, 2534, 2536, 2537, 2537, 2538, 2534, 2539, 2539, 2533, + + 2535, 2540, 2541, 2542, 2538, 2543, 2544, 2547, 2545, 2548, + 2548, 2550, 2536, 2551, 2549, 2553, 2542, 2554, 2555, 2547, + 2544, 2556, 2541, 2549, 2556, 2576, 2550, 2540, 2551, 2543, + 2545, 2557, 2558, 2553, 2576, 2559, 2567, 2558, 2569, 2554, + 2559, 2555, 2560, 2560, 2568, 2557, 2561, 2561, 2562, 2562, + 2564, 2564, 2566, 2566, 2567, 2568, 2570, 2569, 2572, 2573, + 2574, 2575, 2578, 2577, 2578, 2579, 2580, 2586, 2581, 2582, + 2582, 2570, 2584, 2584, 2585, 2588, 2588, 2573, 2572, 2591, + 2591, 2575, 2574, 2577, 2580, 2579, 2581, 2587, 2585, 2586, + 2590, 2592, 2593, 2594, 2603, 2596, 2587, 2595, 2597, 2590, + + 2594, 2598, 2599, 17, 2600, 2601, 2601, 2602, 2602, 2592, + 2593, 2600, 2595, 2596, 2603, 2604, 2597, 2598, 2605, 2607, + 2607, 2599, 2608, 2608, 2605, 2609, 2610, 2611, 2612, 2613, + 2614, 2609, 2615, 2604, 2616, 2614, 2617, 2618, 2620, 2618, + 2620, 2617, 2611, 2613, 2610, 2619, 2619, 2612, 2621, 2621, + 2623, 2625, 2615, 2626, 2616, 2627, 2628, 2629, 2630, 2631, + 2625, 2632, 2629, 2630, 2635, 2636, 2638, 2627, 2636, 2623, + 2637, 2637, 2626, 2639, 2640, 2640, 2628, 2641, 2642, 2631, + 2632, 2638, 2643, 2645, 2635, 2646, 2643, 2648, 2641, 2646, + 2650, 2639, 2651, 2642, 2647, 2647, 2652, 2655, 2645, 2656, + + 2648, 2653, 2653, 2657, 2659, 2650, 2663, 2657, 2656, 2655, + 2658, 2658, 2651, 2660, 2660, 2661, 2652, 2662, 2664, 2665, + 2661, 2672, 2663, 2659, 2666, 2666, 2662, 2671, 2671, 2674, + 2664, 2673, 2673, 2675, 2680, 2676, 2677, 2681, 2678, 2665, + 2679, 2679, 2674, 2672, 2676, 2677, 2675, 2678, 2683, 2683, + 2686, 2687, 2681, 2688, 2680, 2686, 2687, 2689, 2690, 2691, + 2692, 2695, 2689, 2693, 2699, 2697, 2690, 2688, 2698, 2692, + 2697, 2693, 2702, 2698, 2700, 2700, 2695, 2702, 2691, 2699, + 2701, 2701, 2703, 2704, 2704, 2705, 2706, 2707, 2708, 2709, + 0, 2706, 2705, 2710, 2712, 2709, 2711, 2711, 2710, 2713, + + 2718, 2703, 2714, 2714, 2713, 2707, 2708, 2715, 2715, 2712, + 2719, 2719, 2720, 2718, 2721, 2720, 2722, 2723, 2724, 2721, + 2721, 2722, 2723, 2725, 2726, 2727, 2728, 2729, 2726, 2725, + 2727, 2730, 2724, 2731, 2732, 2728, 2734, 2733, 2735, 2730, + 2732, 2734, 2729, 2733, 2737, 2739, 2741, 2738, 2739, 2745, + 2735, 2737, 2738, 2746, 2731, 2743, 2744, 2759, 2741, 2747, + 2743, 2744, 2748, 2749, 2749, 2750, 2746, 2745, 2747, 2754, + 2751, 2748, 2755, 2756, 2750, 2751, 2759, 2760, 2755, 2756, + 2761, 2762, 2762, 2763, 2764, 2765, 2766, 2754, 2767, 2767, + 2763, 2768, 2770, 2772, 2765, 2775, 2773, 2760, 2778, 2761, + + 2773, 2766, 2776, 2764, 2774, 2774, 2777, 2770, 2776, 2779, + 2768, 2781, 2777, 2772, 2784, 2779, 2778, 2780, 2780, 2781, + 2775, 2782, 2785, 2784, 2787, 2788, 2782, 2789, 2788, 2790, + 2787, 2789, 2791, 2793, 2793, 2785, 2794, 2795, 2795, 2796, + 2796, 2798, 2798, 2790, 2799, 2800, 2804, 2791, 2799, 2806, + 2800, 2802, 2802, 2805, 2794, 2808, 2810, 2807, 2805, 2811, + 2811, 2806, 2807, 2807, 2813, 2813, 2804, 2808, 2814, 2814, + 2815, 2816, 2817, 2815, 2819, 2819, 2810, 2820, 2822, 2823, + 2823, 2824, 2824, 2828, 2816, 2817, 2825, 2825, 2826, 2827, + 2827, 2829, 2830, 2831, 2840, 2820, 2828, 2837, 2822, 2831, + + 2832, 2832, 2837, 2826, 2833, 2836, 2830, 2839, 2833, 2829, + 2841, 2836, 2839, 2839, 2842, 2843, 2844, 2840, 2845, 2846, + 2852, 2843, 2844, 2846, 2847, 2847, 2850, 2855, 2852, 2853, + 2841, 2850, 2853, 2856, 2842, 2859, 2856, 2857, 2857, 2858, + 2859, 2860, 2861, 2845, 2862, 2863, 2863, 2864, 2867, 2869, + 2866, 2871, 2855, 2911, 2869, 2869, 2858, 2858, 2862, 2860, + 2865, 2864, 2861, 2865, 2866, 2868, 2880, 2867, 2911, 2870, + 2871, 2865, 2877, 2868, 2870, 2870, 2872, 2872, 2873, 2873, + 2874, 2874, 2875, 2875, 2876, 2876, 2878, 2879, 2877, 2881, + 2882, 2878, 2880, 2883, 2884, 2882, 2885, 2886, 2887, 2884, + + 2889, 2889, 2892, 2881, 2895, 2885, 0, 2879, 2890, 2890, + 2891, 2895, 2883, 2891, 2894, 2894, 2905, 2886, 2887, 2897, + 2892, 2896, 2896, 2900, 2897, 2899, 2899, 2901, 2902, 2903, + 2906, 2906, 2900, 2908, 2905, 2907, 2901, 2902, 2903, 2907, + 2909, 2910, 2908, 2912, 2913, 2914, 2915, 2924, 2912, 2912, + 2915, 2919, 2910, 2923, 2914, 2925, 2919, 2913, 2929, 2909, + 2920, 2920, 2922, 2922, 2927, 2927, 2928, 2923, 2932, 2933, + 2929, 2934, 2924, 2925, 2933, 2928, 2936, 2937, 2939, 2941, + 2934, 2943, 2944, 2937, 2945, 2945, 2943, 2944, 2946, 2948, + 2939, 2949, 2950, 2932, 2948, 2957, 2936, 2946, 2951, 2951, + + 2941, 2958, 2951, 0, 2949, 2956, 2950, 2953, 2953, 2954, + 2954, 2955, 2955, 2959, 2956, 2957, 2961, 2965, 2959, 2962, + 2958, 2963, 2961, 2967, 2962, 2966, 2963, 2964, 2964, 2968, + 2969, 2971, 2970, 2978, 2968, 2965, 0, 2966, 2970, 2972, + 2972, 2974, 2975, 2979, 2967, 2974, 2976, 2975, 2969, 2977, + 2977, 2976, 2978, 2980, 2982, 2989, 2971, 2986, 2979, 2984, + 2984, 2988, 2987, 2990, 2989, 2988, 2991, 2993, 2980, 2992, + 2986, 2994, 2993, 2996, 2982, 2987, 2997, 2992, 2998, 2990, + 2995, 2995, 2996, 2999, 2999, 2991, 3000, 3003, 3003, 3004, + 3004, 2994, 3006, 3010, 2997, 3008, 3008, 3012, 3011, 3013, + + 3017, 3014, 3012, 3018, 2998, 3000, 3014, 3016, 3016, 3010, + 3019, 3020, 3018, 3006, 3011, 3013, 3019, 3021, 3023, 3023, + 3017, 3024, 3025, 3026, 3026, 3029, 3030, 3033, 3031, 3034, + 3034, 3036, 3030, 3031, 3020, 3024, 3021, 3035, 3035, 3037, + 3039, 3025, 3038, 3038, 3040, 3029, 3036, 3041, 3042, 3033, + 3043, 3039, 3044, 3040, 3042, 3045, 3046, 3046, 3047, 3037, + 3048, 3055, 3038, 3048, 3044, 3049, 3054, 3041, 3049, 3043, + 3050, 3050, 3060, 3047, 3056, 3045, 3057, 3057, 3054, 3058, + 3056, 3055, 3058, 3059, 3063, 3063, 3062, 3064, 3065, 3059, + 3060, 3062, 3064, 3066, 3067, 3068, 3068, 3070, 3071, 3066, + + 3072, 3073, 3074, 3074, 3075, 3076, 3077, 3065, 3081, 3070, + 3082, 3067, 3067, 3081, 3073, 3077, 3071, 3079, 3079, 3080, + 3080, 3076, 3083, 3075, 3082, 3072, 3088, 3083, 3084, 3084, + 3085, 3085, 3086, 3086, 3087, 3087, 3089, 3090, 3096, 3088, + 3091, 3093, 3093, 3090, 3098, 3091, 3099, 3101, 3100, 3102, + 3102, 3104, 3104, 3105, 3106, 3108, 3107, 3096, 3110, 3110, + 3111, 3111, 3089, 3109, 3114, 3113, 3098, 3100, 3099, 3101, + 3107, 3113, 3109, 3106, 3115, 3108, 3116, 3119, 3126, 3105, + 3124, 3116, 3120, 3120, 3114, 3122, 3122, 3123, 3127, 3125, + 3126, 3133, 3123, 3115, 3124, 3125, 3127, 3129, 3119, 3128, + + 3128, 3131, 3129, 3132, 3134, 3131, 3136, 3135, 3132, 3137, + 3140, 3133, 3135, 3139, 3141, 3137, 3142, 3144, 3136, 3151, + 0, 3139, 3145, 3146, 3134, 3147, 3148, 3150, 3153, 3140, + 3155, 3148, 3150, 3153, 3141, 3144, 3142, 3152, 3145, 3151, + 3146, 3146, 3156, 3152, 3157, 3156, 3147, 3160, 3160, 3162, + 3155, 3161, 3161, 3162, 3167, 3167, 3168, 3157, 3169, 3170, + 3170, 3168, 3172, 3172, 3173, 3173, 3177, 3173, 3174, 3174, + 3177, 3174, 3175, 3175, 3179, 3176, 3176, 3169, 3176, 3179, + 3180, 3181, 3181, 3182, 3183, 3186, 3187, 3188, 3190, 3180, + 3189, 3189, 3188, 3193, 3196, 3194, 3195, 3197, 3183, 3199, + + 3195, 3182, 3194, 3196, 3200, 3186, 3187, 3202, 3190, 3200, + 3201, 3201, 3197, 3203, 3203, 3206, 3202, 3199, 3193, 3204, + 3204, 3205, 3205, 3207, 3208, 3211, 3209, 3212, 3207, 3210, + 3206, 3209, 3209, 3208, 3213, 3210, 3208, 3216, 3214, 3215, + 3217, 3217, 3212, 3214, 3215, 3218, 3219, 3220, 3220, 3222, + 3211, 3218, 3219, 3221, 3221, 3213, 3216, 3223, 3226, 3226, + 3228, 3228, 3223, 3229, 3222, 3232, 3232, 3233, 3233, 3234, + 3234, 3241, 3229, 3235, 3235, 3237, 3237, 3238, 3238, 3239, + 3239, 3240, 3240, 3243, 3244, 3244, 3245, 3246, 3247, 3249, + 3249, 3250, 3243, 3251, 3251, 3245, 3252, 3241, 3264, 3246, + + 3253, 3258, 3254, 3255, 3255, 3256, 3256, 3262, 3247, 3263, + 3250, 3252, 3263, 3253, 3254, 3266, 3258, 3259, 3259, 3265, + 3265, 3269, 3270, 3268, 3264, 3262, 3268, 3269, 3272, 3271, + 3273, 3276, 3277, 3266, 3271, 3274, 3270, 3276, 3280, 3281, + 3284, 3277, 3280, 3294, 3293, 3296, 3294, 3272, 3273, 3293, + 3302, 3274, 3297, 3297, 3281, 3298, 3298, 3305, 3296, 3300, + 3300, 3303, 3307, 3304, 3309, 3316, 3284, 3304, 3310, 3311, + 3303, 3313, 3315, 3302, 3311, 3317, 3307, 3305, 3312, 3310, + 3312, 3314, 3314, 3318, 3316, 3315, 3313, 3309, 3319, 3320, + 3322, 3321, 3323, 3317, 3324, 3332, 3325, 3323, 3327, 3318, + + 3321, 3325, 3322, 3328, 3320, 3326, 3326, 3333, 3328, 3332, + 3334, 3334, 3335, 3319, 3340, 3324, 3336, 3336, 3327, 3337, + 3337, 3335, 3338, 3338, 3339, 3339, 3341, 3333, 3342, 3343, + 3344, 3342, 3345, 3340, 3343, 3344, 3346, 3347, 3348, 3350, + 3352, 3349, 3357, 3347, 3350, 3362, 3341, 3351, 3351, 3353, + 3353, 3346, 3348, 3349, 3355, 3355, 3356, 3345, 3358, 3358, + 3352, 3357, 3360, 3362, 3365, 3365, 3366, 3366, 3367, 3368, + 3371, 3356, 3369, 3370, 3372, 3373, 3367, 3360, 3369, 3370, + 3374, 3375, 3375, 3380, 3371, 3374, 3381, 3372, 3368, 3377, + 3377, 3383, 3384, 3386, 3373, 3387, 3384, 3388, 3389, 3390, + + 3387, 3391, 3392, 3393, 3380, 3383, 3381, 3392, 3393, 3394, + 3394, 3389, 3390, 3386, 3397, 3398, 3388, 3399, 3400, 3400, + 3391, 3401, 3402, 3403, 3403, 3404, 3401, 3405, 3402, 3407, + 3404, 3408, 3405, 3398, 3397, 3406, 3399, 3408, 3410, 3410, + 3406, 3411, 3412, 3412, 3415, 3414, 3411, 3416, 3407, 3414, + 3417, 3418, 3419, 3420, 3416, 3421, 3423, 3423, 3419, 3425, + 3425, 3427, 3426, 3415, 3428, 3429, 3427, 3430, 3421, 3417, + 3418, 3426, 3420, 3432, 3426, 3431, 3431, 3433, 3432, 3435, + 3430, 3436, 3436, 3428, 3429, 3437, 3438, 3438, 3439, 3439, + 3433, 3440, 3441, 3442, 3443, 3443, 3440, 3444, 3445, 3441, + + 3445, 3447, 3444, 3448, 3437, 3435, 3446, 3446, 3447, 3449, + 3448, 3450, 3442, 3451, 3453, 3453, 3450, 3454, 3456, 3457, + 3458, 3459, 3463, 3456, 3457, 3460, 3460, 3464, 3449, 3462, + 3462, 0, 3451, 3465, 3465, 3467, 3454, 3466, 3466, 3458, + 3459, 3463, 3467, 3469, 3469, 3471, 3464, 3470, 3470, 3473, + 3476, 3477, 3471, 3478, 3473, 3476, 3479, 3479, 3480, 3480, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3477, 0, 3478, 3484, 3484, 3484, 3484, 3484, 3484, 3484, + 3485, 3485, 3485, 3485, 3485, 3485, 3485, 3486, 3486, 3486, + 3486, 3486, 3486, 3486, 3487, 3487, 3487, 3487, 3487, 3487, + + 3487, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3489, 3489, + 3489, 3489, 3489, 3489, 3489, 3490, 3490, 3490, 3490, 3490, + 3490, 3490, 3492, 3492, 0, 3492, 3492, 3492, 3492, 3493, + 3493, 0, 0, 0, 3493, 3493, 3494, 3494, 0, 0, + 3494, 0, 3494, 3495, 0, 0, 0, 0, 0, 3495, + 3496, 3496, 0, 0, 0, 3496, 3496, 3497, 0, 0, + 0, 0, 0, 3497, 3498, 3498, 0, 3498, 3498, 3498, + 3498, 3499, 0, 0, 0, 0, 0, 3499, 3500, 3500, + 0, 0, 0, 3500, 3500, 3501, 3501, 0, 3501, 3501, + 3501, 3501, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, + + 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, + 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, + 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, + 3483, 3483, 3483 } ; static yy_state_type yy_last_accepting_state; @@ -3208,7 +3308,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 3210 "<stdout>" +#line 3310 "<stdout>" #define INITIAL 0 #define quotedstring 1 @@ -3426,7 +3526,7 @@ YY_DECL { #line 211 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -#line 3428 "<stdout>" +#line 3528 "<stdout>" while ( 1 ) /* loops until end-of-file is reached */ { @@ -3459,13 +3559,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 >= 3354 ) + if ( yy_current_state >= 3484 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 6547 ); + while ( yy_base[yy_current_state] != 6793 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -3610,82 +3710,82 @@ YY_RULE_SETUP case 24: YY_RULE_SETUP #line 238 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } +{ YDVAR(1, VAR_MAX_REUSE_TCP_QUERIES) } YY_BREAK case 25: YY_RULE_SETUP #line 239 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } +{ YDVAR(1, VAR_TCP_REUSE_TIMEOUT) } YY_BREAK case 26: YY_RULE_SETUP #line 240 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SSL_UPSTREAM) } +{ YDVAR(1, VAR_TCP_AUTH_QUERY_TIMEOUT) } YY_BREAK case 27: YY_RULE_SETUP #line 241 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SSL_UPSTREAM) } +{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } YY_BREAK case 28: YY_RULE_SETUP #line 242 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_KEY) } +{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } YY_BREAK case 29: YY_RULE_SETUP #line 243 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_KEY) } +{ YDVAR(1, VAR_SSL_UPSTREAM) } YY_BREAK case 30: YY_RULE_SETUP #line 244 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_PEM) } +{ YDVAR(1, VAR_SSL_UPSTREAM) } YY_BREAK case 31: YY_RULE_SETUP #line 245 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_PEM) } +{ YDVAR(1, VAR_SSL_SERVICE_KEY) } YY_BREAK case 32: YY_RULE_SETUP #line 246 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SSL_PORT) } +{ YDVAR(1, VAR_SSL_SERVICE_KEY) } YY_BREAK case 33: YY_RULE_SETUP #line 247 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SSL_PORT) } +{ YDVAR(1, VAR_SSL_SERVICE_PEM) } YY_BREAK case 34: YY_RULE_SETUP #line 248 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } +{ YDVAR(1, VAR_SSL_SERVICE_PEM) } YY_BREAK case 35: YY_RULE_SETUP #line 249 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } +{ YDVAR(1, VAR_SSL_PORT) } YY_BREAK case 36: YY_RULE_SETUP #line 250 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TLS_WIN_CERT) } +{ YDVAR(1, VAR_SSL_PORT) } YY_BREAK case 37: YY_RULE_SETUP #line 251 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } +{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } YY_BREAK case 38: YY_RULE_SETUP #line 252 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } +{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } YY_BREAK case 39: YY_RULE_SETUP #line 253 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } +{ YDVAR(1, VAR_TLS_WIN_CERT) } YY_BREAK case 40: YY_RULE_SETUP @@ -3695,1419 +3795,1464 @@ YY_RULE_SETUP case 41: YY_RULE_SETUP #line 255 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TLS_SESSION_TICKET_KEYS) } +{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } YY_BREAK case 42: YY_RULE_SETUP #line 256 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CIPHERS) } +{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } YY_BREAK case 43: YY_RULE_SETUP #line 257 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CIPHERSUITES) } +{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } YY_BREAK case 44: YY_RULE_SETUP #line 258 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TLS_USE_SNI) } +{ YDVAR(1, VAR_TLS_SESSION_TICKET_KEYS) } YY_BREAK case 45: YY_RULE_SETUP #line 259 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HTTPS_PORT) } +{ YDVAR(1, VAR_TLS_CIPHERS) } YY_BREAK case 46: YY_RULE_SETUP #line 260 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_ENDPOINT) } +{ YDVAR(1, VAR_TLS_CIPHERSUITES) } YY_BREAK case 47: YY_RULE_SETUP #line 261 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_MAX_STREAMS) } +{ YDVAR(1, VAR_TLS_USE_SNI) } YY_BREAK case 48: YY_RULE_SETUP #line 262 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_QUERY_BUFFER_SIZE) } +{ YDVAR(1, VAR_HTTPS_PORT) } YY_BREAK case 49: YY_RULE_SETUP #line 263 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_RESPONSE_BUFFER_SIZE) } +{ YDVAR(1, VAR_HTTP_ENDPOINT) } YY_BREAK case 50: YY_RULE_SETUP #line 264 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_NODELAY) } +{ YDVAR(1, VAR_HTTP_MAX_STREAMS) } YY_BREAK case 51: YY_RULE_SETUP #line 265 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_NOTLS_DOWNSTREAM) } +{ YDVAR(1, VAR_HTTP_QUERY_BUFFER_SIZE) } YY_BREAK case 52: YY_RULE_SETUP #line 266 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSTEMD) } +{ YDVAR(1, VAR_HTTP_RESPONSE_BUFFER_SIZE) } YY_BREAK case 53: YY_RULE_SETUP #line 267 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DO_DAEMONIZE) } +{ YDVAR(1, VAR_HTTP_NODELAY) } YY_BREAK case 54: YY_RULE_SETUP #line 268 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE) } +{ YDVAR(1, VAR_HTTP_NOTLS_DOWNSTREAM) } YY_BREAK case 55: YY_RULE_SETUP #line 269 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE) } +{ YDVAR(1, VAR_USE_SYSTEMD) } YY_BREAK case 56: YY_RULE_SETUP #line 270 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_OUTGOING_INTERFACE) } +{ YDVAR(1, VAR_DO_DAEMONIZE) } YY_BREAK case 57: YY_RULE_SETUP #line 271 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } +{ YDVAR(1, VAR_INTERFACE) } YY_BREAK case 58: YY_RULE_SETUP #line 272 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SO_RCVBUF) } +{ YDVAR(1, VAR_INTERFACE) } YY_BREAK case 59: YY_RULE_SETUP #line 273 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SO_SNDBUF) } +{ YDVAR(1, VAR_OUTGOING_INTERFACE) } YY_BREAK case 60: YY_RULE_SETUP #line 274 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SO_REUSEPORT) } +{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } YY_BREAK case 61: YY_RULE_SETUP #line 275 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IP_TRANSPARENT) } +{ YDVAR(1, VAR_SO_RCVBUF) } YY_BREAK case 62: YY_RULE_SETUP #line 276 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IP_FREEBIND) } +{ YDVAR(1, VAR_SO_SNDBUF) } YY_BREAK case 63: YY_RULE_SETUP #line 277 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IP_DSCP) } +{ YDVAR(1, VAR_SO_REUSEPORT) } YY_BREAK case 64: YY_RULE_SETUP #line 278 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CHROOT) } +{ YDVAR(1, VAR_IP_TRANSPARENT) } YY_BREAK case 65: YY_RULE_SETUP #line 279 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_USERNAME) } +{ YDVAR(1, VAR_IP_FREEBIND) } YY_BREAK case 66: YY_RULE_SETUP #line 280 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DIRECTORY) } +{ YDVAR(1, VAR_IP_DSCP) } YY_BREAK case 67: YY_RULE_SETUP #line 281 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_LOGFILE) } +{ YDVAR(1, VAR_CHROOT) } YY_BREAK case 68: YY_RULE_SETUP #line 282 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_PIDFILE) } +{ YDVAR(1, VAR_USERNAME) } YY_BREAK case 69: YY_RULE_SETUP #line 283 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_HINTS) } +{ YDVAR(1, VAR_DIRECTORY) } YY_BREAK case 70: YY_RULE_SETUP #line 284 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_STREAM_WAIT_SIZE) } +{ YDVAR(1, VAR_LOGFILE) } YY_BREAK case 71: YY_RULE_SETUP #line 285 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } +{ YDVAR(1, VAR_PIDFILE) } YY_BREAK case 72: YY_RULE_SETUP #line 286 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } +{ YDVAR(1, VAR_ROOT_HINTS) } YY_BREAK case 73: YY_RULE_SETUP #line 287 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SIZE) } +{ YDVAR(1, VAR_STREAM_WAIT_SIZE) } YY_BREAK case 74: YY_RULE_SETUP #line 288 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SLABS) } +{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } YY_BREAK case 75: YY_RULE_SETUP #line 289 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } +{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } YY_BREAK case 76: YY_RULE_SETUP #line 290 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } +{ YDVAR(1, VAR_MSG_CACHE_SIZE) } YY_BREAK case 77: YY_RULE_SETUP #line 291 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_TTL) } +{ YDVAR(1, VAR_MSG_CACHE_SLABS) } YY_BREAK case 78: YY_RULE_SETUP #line 292 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } +{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } YY_BREAK case 79: YY_RULE_SETUP #line 293 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MIN_TTL) } +{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } YY_BREAK case 80: YY_RULE_SETUP #line 294 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_HOST_TTL) } +{ YDVAR(1, VAR_CACHE_MAX_TTL) } YY_BREAK case 81: YY_RULE_SETUP #line 295 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_LAME_TTL) } +{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } YY_BREAK case 82: YY_RULE_SETUP #line 296 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } +{ YDVAR(1, VAR_CACHE_MIN_TTL) } YY_BREAK case 83: YY_RULE_SETUP #line 297 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } +{ YDVAR(1, VAR_INFRA_HOST_TTL) } YY_BREAK case 84: YY_RULE_SETUP #line 298 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } +{ YDVAR(1, VAR_INFRA_LAME_TTL) } YY_BREAK case 85: YY_RULE_SETUP #line 299 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } +{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } YY_BREAK case 86: YY_RULE_SETUP #line 300 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_KEEP_PROBING) } +{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } YY_BREAK case 87: YY_RULE_SETUP #line 301 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } +{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } YY_BREAK case 88: YY_RULE_SETUP #line 302 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } +{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } YY_BREAK case 89: YY_RULE_SETUP #line 303 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DELAY_CLOSE) } +{ YDVAR(1, VAR_INFRA_KEEP_PROBING) } YY_BREAK case 90: YY_RULE_SETUP #line 304 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_UDP_CONNECT) } +{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } YY_BREAK case 91: YY_RULE_SETUP #line 305 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } +{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } YY_BREAK case 92: YY_RULE_SETUP #line 306 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } +{ YDVAR(1, VAR_DELAY_CLOSE) } YY_BREAK case 93: YY_RULE_SETUP #line 307 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } +{ YDVAR(1, VAR_UDP_CONNECT) } YY_BREAK case 94: YY_RULE_SETUP #line 308 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_GLUE) } +{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } YY_BREAK case 95: YY_RULE_SETUP #line 309 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } +{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } YY_BREAK case 96: YY_RULE_SETUP #line 310 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } +{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } YY_BREAK case 97: YY_RULE_SETUP #line 311 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } +{ YDVAR(1, VAR_HARDEN_GLUE) } YY_BREAK case 98: YY_RULE_SETUP #line 312 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } +{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } YY_BREAK case 99: YY_RULE_SETUP #line 313 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } +{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } YY_BREAK case 100: YY_RULE_SETUP #line 314 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CAPS_WHITELIST) } +{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } YY_BREAK case 101: YY_RULE_SETUP #line 315 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CAPS_WHITELIST) } +{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } YY_BREAK case 102: YY_RULE_SETUP #line 316 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } +{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } YY_BREAK case 103: YY_RULE_SETUP #line 317 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_ADDRESS) } +{ YDVAR(1, VAR_CAPS_WHITELIST) } YY_BREAK case 104: YY_RULE_SETUP #line 318 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_DOMAIN) } +{ YDVAR(1, VAR_CAPS_WHITELIST) } YY_BREAK case 105: YY_RULE_SETUP #line 319 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH_KEY) } +{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } YY_BREAK case 106: YY_RULE_SETUP #line 320 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH) } +{ YDVAR(1, VAR_PRIVATE_ADDRESS) } YY_BREAK case 107: YY_RULE_SETUP #line 321 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DENY_ANY) } +{ YDVAR(1, VAR_PRIVATE_DOMAIN) } YY_BREAK case 108: YY_RULE_SETUP #line 322 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(0, VAR_STUB_ZONE) } +{ YDVAR(1, VAR_PREFETCH_KEY) } YY_BREAK case 109: YY_RULE_SETUP #line 323 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_NAME) } +{ YDVAR(1, VAR_PREFETCH) } YY_BREAK case 110: YY_RULE_SETUP #line 324 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_STUB_ADDR) } +{ YDVAR(1, VAR_DENY_ANY) } YY_BREAK case 111: YY_RULE_SETUP #line 325 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_STUB_HOST) } +{ YDVAR(0, VAR_STUB_ZONE) } YY_BREAK case 112: YY_RULE_SETUP #line 326 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_STUB_PRIME) } +{ YDVAR(1, VAR_NAME) } YY_BREAK case 113: YY_RULE_SETUP #line 327 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_STUB_FIRST) } +{ YDVAR(1, VAR_STUB_ADDR) } YY_BREAK case 114: YY_RULE_SETUP #line 328 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_STUB_NO_CACHE) } +{ YDVAR(1, VAR_STUB_HOST) } YY_BREAK case 115: YY_RULE_SETUP #line 329 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } +{ YDVAR(1, VAR_STUB_PRIME) } YY_BREAK case 116: YY_RULE_SETUP #line 330 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } +{ YDVAR(1, VAR_STUB_FIRST) } YY_BREAK case 117: YY_RULE_SETUP #line 331 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(0, VAR_FORWARD_ZONE) } +{ YDVAR(1, VAR_STUB_NO_CACHE) } YY_BREAK case 118: YY_RULE_SETUP #line 332 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_ADDR) } +{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } YY_BREAK case 119: YY_RULE_SETUP #line 333 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_HOST) } +{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } YY_BREAK case 120: YY_RULE_SETUP #line 334 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_FIRST) } +{ YDVAR(0, VAR_FORWARD_ZONE) } YY_BREAK case 121: YY_RULE_SETUP #line 335 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_NO_CACHE) } +{ YDVAR(1, VAR_FORWARD_ADDR) } YY_BREAK case 122: YY_RULE_SETUP #line 336 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } +{ YDVAR(1, VAR_FORWARD_HOST) } YY_BREAK case 123: YY_RULE_SETUP #line 337 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } +{ YDVAR(1, VAR_FORWARD_FIRST) } YY_BREAK case 124: YY_RULE_SETUP #line 338 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(0, VAR_AUTH_ZONE) } +{ YDVAR(1, VAR_FORWARD_NO_CACHE) } YY_BREAK case 125: YY_RULE_SETUP #line 339 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(0, VAR_RPZ) } +{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } YY_BREAK case 126: YY_RULE_SETUP #line 340 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TAGS) } +{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } YY_BREAK case 127: YY_RULE_SETUP #line 341 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) } +{ YDVAR(0, VAR_AUTH_ZONE) } YY_BREAK case 128: YY_RULE_SETUP #line 342 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) } +{ YDVAR(0, VAR_RPZ) } YY_BREAK case 129: YY_RULE_SETUP #line 343 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_LOG) } +{ YDVAR(1, VAR_TAGS) } YY_BREAK case 130: YY_RULE_SETUP #line 344 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_LOG_NAME) } +{ YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) } YY_BREAK case 131: YY_RULE_SETUP #line 345 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_ZONEFILE) } +{ YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) } YY_BREAK case 132: YY_RULE_SETUP #line 346 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_MASTER) } +{ YDVAR(1, VAR_RPZ_LOG) } YY_BREAK case 133: YY_RULE_SETUP #line 347 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_MASTER) } +{ YDVAR(1, VAR_RPZ_LOG_NAME) } YY_BREAK case 134: YY_RULE_SETUP #line 348 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_URL) } +{ YDVAR(1, VAR_ZONEFILE) } YY_BREAK case 135: YY_RULE_SETUP #line 349 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_ALLOW_NOTIFY) } +{ YDVAR(1, VAR_MASTER) } YY_BREAK case 136: YY_RULE_SETUP #line 350 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FOR_DOWNSTREAM) } +{ YDVAR(1, VAR_MASTER) } YY_BREAK case 137: YY_RULE_SETUP #line 351 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FOR_UPSTREAM) } +{ YDVAR(1, VAR_URL) } YY_BREAK case 138: YY_RULE_SETUP #line 352 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FALLBACK_ENABLED) } +{ YDVAR(1, VAR_ALLOW_NOTIFY) } YY_BREAK case 139: YY_RULE_SETUP #line 353 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(0, VAR_VIEW) } +{ YDVAR(1, VAR_FOR_DOWNSTREAM) } YY_BREAK case 140: YY_RULE_SETUP #line 354 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_VIEW_FIRST) } +{ YDVAR(1, VAR_FOR_UPSTREAM) } YY_BREAK case 141: YY_RULE_SETUP #line 355 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } +{ YDVAR(1, VAR_FALLBACK_ENABLED) } YY_BREAK case 142: YY_RULE_SETUP #line 356 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } +{ YDVAR(0, VAR_VIEW) } YY_BREAK case 143: YY_RULE_SETUP #line 357 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL) } +{ YDVAR(1, VAR_VIEW_FIRST) } YY_BREAK case 144: YY_RULE_SETUP #line 358 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } +{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } YY_BREAK case 145: YY_RULE_SETUP #line 359 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } +{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } YY_BREAK case 146: YY_RULE_SETUP #line 360 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } +{ YDVAR(2, VAR_ACCESS_CONTROL) } YY_BREAK case 147: YY_RULE_SETUP #line 361 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } +{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } YY_BREAK case 148: YY_RULE_SETUP #line 362 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } YY_BREAK case 149: YY_RULE_SETUP #line 363 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } YY_BREAK case 150: YY_RULE_SETUP #line 364 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } +{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } YY_BREAK case 151: YY_RULE_SETUP #line 365 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } YY_BREAK case 152: YY_RULE_SETUP #line 366 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } YY_BREAK case 153: YY_RULE_SETUP #line 367 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } +{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } YY_BREAK case 154: YY_RULE_SETUP #line 368 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } +{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } YY_BREAK case 155: YY_RULE_SETUP #line 369 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } +{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } YY_BREAK case 156: YY_RULE_SETUP #line 370 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } +{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } YY_BREAK case 157: YY_RULE_SETUP #line 371 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 158: YY_RULE_SETUP #line 372 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 159: YY_RULE_SETUP #line 373 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } +{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } YY_BREAK case 160: YY_RULE_SETUP #line 374 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } +{ YDVAR(1, VAR_HIDE_HTTP_USER_AGENT) } YY_BREAK case 161: YY_RULE_SETUP #line 375 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 162: YY_RULE_SETUP #line 376 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 163: YY_RULE_SETUP #line 377 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_HTTP_USER_AGENT) } YY_BREAK case 164: YY_RULE_SETUP #line 378 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 165: YY_RULE_SETUP #line 379 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 166: YY_RULE_SETUP #line 380 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 167: YY_RULE_SETUP #line 381 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 168: YY_RULE_SETUP #line 382 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 169: YY_RULE_SETUP #line 383 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 170: YY_RULE_SETUP #line 384 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 171: YY_RULE_SETUP #line 385 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } YY_BREAK case 172: YY_RULE_SETUP #line 386 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } YY_BREAK case 173: YY_RULE_SETUP #line 387 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 174: YY_RULE_SETUP #line 388 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 175: YY_RULE_SETUP #line 389 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 176: YY_RULE_SETUP #line 390 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED) } +{ YDVAR(1, VAR_VAL_MAX_RESTART) } YY_BREAK case 177: YY_RULE_SETUP #line 391 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 178: YY_RULE_SETUP #line 392 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 179: YY_RULE_SETUP #line 393 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 180: YY_RULE_SETUP #line 394 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } +{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } YY_BREAK case 181: YY_RULE_SETUP #line 395 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 182: YY_RULE_SETUP #line 396 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_DSA) } +{ YDVAR(1, VAR_SERVE_EXPIRED) } YY_BREAK case 183: YY_RULE_SETUP #line 397 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_SHA1) } +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } YY_BREAK case 184: YY_RULE_SETUP #line 398 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } YY_BREAK case 185: YY_RULE_SETUP #line 399 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } YY_BREAK case 186: YY_RULE_SETUP #line 400 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } YY_BREAK case 187: YY_RULE_SETUP #line 401 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } YY_BREAK case 188: YY_RULE_SETUP #line 402 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_FAKE_DSA) } YY_BREAK case 189: YY_RULE_SETUP -#line 404 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +#line 403 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_FAKE_SHA1) } YY_BREAK case 190: YY_RULE_SETUP -#line 405 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +#line 404 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 191: YY_RULE_SETUP -#line 406 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +#line 405 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 192: YY_RULE_SETUP -#line 407 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } +#line 406 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 193: YY_RULE_SETUP -#line 408 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +#line 407 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 194: YY_RULE_SETUP -#line 409 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } +#line 408 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 195: YY_RULE_SETUP #line 410 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } YY_BREAK case 196: YY_RULE_SETUP #line 411 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_ZONEMD_CHECK) } YY_BREAK case 197: YY_RULE_SETUP #line 412 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_LOG_REPLIES) } +{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } YY_BREAK case 198: YY_RULE_SETUP #line 413 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 199: YY_RULE_SETUP #line 414 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 200: YY_RULE_SETUP #line 415 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_LOG_SERVFAIL) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 201: YY_RULE_SETUP #line 416 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 202: YY_RULE_SETUP #line 417 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 203: YY_RULE_SETUP #line 418 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOG_IDENTITY) } YY_BREAK case 204: YY_RULE_SETUP #line 419 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 205: YY_RULE_SETUP #line 420 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 206: YY_RULE_SETUP #line 421 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_LOG_REPLIES) } YY_BREAK case 207: YY_RULE_SETUP #line 422 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } YY_BREAK case 208: YY_RULE_SETUP #line 423 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } YY_BREAK case 209: YY_RULE_SETUP #line 424 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } +{ YDVAR(1, VAR_LOG_SERVFAIL) } YY_BREAK case 210: YY_RULE_SETUP #line 425 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 211: YY_RULE_SETUP #line 426 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 212: YY_RULE_SETUP #line 427 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 213: YY_RULE_SETUP #line 428 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 214: YY_RULE_SETUP #line 429 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 215: YY_RULE_SETUP #line 430 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 216: YY_RULE_SETUP #line 431 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 217: YY_RULE_SETUP #line 432 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 218: YY_RULE_SETUP #line 433 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SHM_ENABLE) } YY_BREAK case 219: YY_RULE_SETUP #line 434 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_SHM_KEY) } YY_BREAK case 220: YY_RULE_SETUP #line 435 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 221: YY_RULE_SETUP #line 436 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 222: YY_RULE_SETUP #line 437 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DYNLIB_FILE) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 223: YY_RULE_SETUP #line 438 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(0, VAR_DYNLIB) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 224: YY_RULE_SETUP #line 439 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 225: YY_RULE_SETUP #line 440 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 226: YY_RULE_SETUP #line 441 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 227: YY_RULE_SETUP #line 442 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 228: YY_RULE_SETUP #line 443 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 229: YY_RULE_SETUP #line 444 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 230: YY_RULE_SETUP #line 445 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 231: YY_RULE_SETUP #line 446 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } +{ YDVAR(1, VAR_DYNLIB_FILE) } YY_BREAK case 232: YY_RULE_SETUP #line 447 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(0, VAR_DYNLIB) } YY_BREAK case 233: YY_RULE_SETUP #line 448 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 234: YY_RULE_SETUP #line 449 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 235: YY_RULE_SETUP #line 450 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 236: YY_RULE_SETUP #line 451 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } YY_BREAK case 237: YY_RULE_SETUP #line 452 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 238: YY_RULE_SETUP #line 453 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 239: YY_RULE_SETUP #line 454 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 240: YY_RULE_SETUP #line 455 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } YY_BREAK case 241: YY_RULE_SETUP #line 456 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 242: YY_RULE_SETUP #line 457 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 243: YY_RULE_SETUP #line 458 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IP) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 244: YY_RULE_SETUP #line 459 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 245: YY_RULE_SETUP #line 460 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 246: YY_RULE_SETUP #line 461 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 247: YY_RULE_SETUP #line 462 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 248: YY_RULE_SETUP -#line 464 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } +#line 463 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 249: YY_RULE_SETUP -#line 466 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +#line 464 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 250: YY_RULE_SETUP -#line 467 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +#line 465 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } YY_BREAK case 251: YY_RULE_SETUP -#line 468 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +#line 466 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 252: YY_RULE_SETUP -#line 469 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +#line 467 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_IP) } YY_BREAK case 253: YY_RULE_SETUP -#line 470 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +#line 468 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_TLS) } YY_BREAK case 254: YY_RULE_SETUP -#line 472 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } +#line 469 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } YY_BREAK case 255: YY_RULE_SETUP -#line 474 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } +#line 470 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } YY_BREAK case 256: YY_RULE_SETUP -#line 476 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 471 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } YY_BREAK case 257: YY_RULE_SETUP -#line 478 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 473 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } YY_BREAK case 258: YY_RULE_SETUP -#line 480 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } +#line 475 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 259: YY_RULE_SETUP -#line 482 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 476 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 260: YY_RULE_SETUP -#line 483 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +#line 477 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 261: YY_RULE_SETUP -#line 484 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +#line 478 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 262: YY_RULE_SETUP -#line 485 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +#line 479 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 263: YY_RULE_SETUP -#line 486 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +#line 481 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 264: YY_RULE_SETUP -#line 487 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +#line 483 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 265: YY_RULE_SETUP -#line 488 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +#line 485 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 266: YY_RULE_SETUP -#line 489 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +#line 487 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 267: YY_RULE_SETUP -#line 490 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +#line 489 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 268: YY_RULE_SETUP #line 491 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 269: YY_RULE_SETUP #line 492 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 270: YY_RULE_SETUP #line 493 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 271: YY_RULE_SETUP #line 494 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_NUM) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 272: YY_RULE_SETUP #line 495 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 273: YY_RULE_SETUP #line 496 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 274: YY_RULE_SETUP #line 497 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 275: YY_RULE_SETUP #line 498 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 276: YY_RULE_SETUP #line 499 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 277: YY_RULE_SETUP #line 500 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 278: YY_RULE_SETUP #line 501 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 279: YY_RULE_SETUP #line 502 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(1, VAR_LOW_RTT) } YY_BREAK case 280: YY_RULE_SETUP #line 503 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(1, VAR_FAST_SERVER_NUM) } YY_BREAK case 281: YY_RULE_SETUP #line 504 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 282: YY_RULE_SETUP #line 505 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 283: YY_RULE_SETUP #line 506 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 284: YY_RULE_SETUP #line 507 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 285: YY_RULE_SETUP #line 508 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 286: YY_RULE_SETUP -#line 510 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } +#line 509 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 287: YY_RULE_SETUP -#line 512 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 510 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 288: YY_RULE_SETUP -#line 513 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +#line 511 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 289: YY_RULE_SETUP -#line 514 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES) } +#line 512 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 290: YY_RULE_SETUP -#line 515 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } +#line 513 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 291: YY_RULE_SETUP -#line 516 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES) } +#line 514 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 292: YY_RULE_SETUP -#line 517 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } +#line 515 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 293: YY_RULE_SETUP -#line 518 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +#line 516 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 294: YY_RULE_SETUP -#line 519 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +#line 517 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 295: YY_RULE_SETUP -#line 520 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +#line 519 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 296: YY_RULE_SETUP #line 521 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 297: YY_RULE_SETUP #line 522 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 298: YY_RULE_SETUP #line 523 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_PAD_RESPONSES) } YY_BREAK case 299: YY_RULE_SETUP #line 524 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } YY_BREAK case 300: YY_RULE_SETUP #line 525 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_PAD_QUERIES) } YY_BREAK case 301: YY_RULE_SETUP #line 526 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } YY_BREAK case 302: YY_RULE_SETUP #line 527 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 303: YY_RULE_SETUP #line 528 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 304: YY_RULE_SETUP #line 529 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 305: YY_RULE_SETUP #line 530 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 306: YY_RULE_SETUP #line 531 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 307: YY_RULE_SETUP #line 532 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(0, VAR_IPSET) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 308: YY_RULE_SETUP #line 533 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V4) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 309: YY_RULE_SETUP #line 534 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V6) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 310: YY_RULE_SETUP #line 535 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 311: YY_RULE_SETUP #line 536 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 312: YY_RULE_SETUP #line 537 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK case 313: YY_RULE_SETUP #line 538 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK case 314: YY_RULE_SETUP #line 539 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ YDVAR(1, VAR_NSID ) } +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK case 315: -/* rule 315 can match eol */ YY_RULE_SETUP #line 540 "/usr/src/usr.sbin/unbound/util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++; } +{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } YY_BREAK -/* Quoted strings. Strip leading and ending quotes */ case 316: YY_RULE_SETUP +#line 541 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(0, VAR_IPSET) } + YY_BREAK +case 317: +YY_RULE_SETUP +#line 542 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_IPSET_NAME_V4) } + YY_BREAK +case 318: +YY_RULE_SETUP #line 543 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_IPSET_NAME_V6) } + YY_BREAK +case 319: +YY_RULE_SETUP +#line 544 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } + YY_BREAK +case 320: +YY_RULE_SETUP +#line 545 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } + YY_BREAK +case 321: +YY_RULE_SETUP +#line 546 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } + YY_BREAK +case 322: +YY_RULE_SETUP +#line 547 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } + YY_BREAK +case 323: +YY_RULE_SETUP +#line 548 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ YDVAR(1, VAR_NSID ) } + YY_BREAK +case 324: +/* rule 324 can match eol */ +YY_RULE_SETUP +#line 549 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +{ LEXOUT(("NL\n")); cfg_parser->line++; } + YY_BREAK +/* Quoted strings. Strip leading and ending quotes */ +case 325: +YY_RULE_SETUP +#line 552 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 544 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 553 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 317: +case 326: YY_RULE_SETUP -#line 549 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 558 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 318: -/* rule 318 can match eol */ +case 327: +/* rule 327 can match eol */ YY_RULE_SETUP -#line 550 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 559 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 319: +case 328: YY_RULE_SETUP -#line 552 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 561 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5120,34 +5265,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 320: +case 329: YY_RULE_SETUP -#line 564 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 573 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 565 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 574 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 321: +case 330: YY_RULE_SETUP -#line 570 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 579 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 322: -/* rule 322 can match eol */ +case 331: +/* rule 331 can match eol */ YY_RULE_SETUP -#line 571 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 580 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 323: +case 332: YY_RULE_SETUP -#line 573 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 582 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5160,38 +5305,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 324: +case 333: YY_RULE_SETUP -#line 585 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 594 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 587 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 596 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 325: +case 334: YY_RULE_SETUP -#line 591 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 600 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("ISP ")); /* ignore */ } YY_BREAK -case 326: -/* rule 326 can match eol */ +case 335: +/* rule 335 can match eol */ YY_RULE_SETUP -#line 592 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 601 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK -case 327: +case 336: YY_RULE_SETUP -#line 593 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 602 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("IQS ")); BEGIN(include_quoted); } YY_BREAK -case 328: +case 337: YY_RULE_SETUP -#line 594 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 603 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 0); @@ -5199,27 +5344,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 599 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 608 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 329: +case 338: YY_RULE_SETUP -#line 603 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 612 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 330: -/* rule 330 can match eol */ +case 339: +/* rule 339 can match eol */ YY_RULE_SETUP -#line 604 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 613 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 331: +case 340: YY_RULE_SETUP -#line 606 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 615 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -5229,7 +5374,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 612 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 621 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -5244,39 +5389,39 @@ case YY_STATE_EOF(val): } YY_BREAK /* include-toplevel: directive */ -case 332: +case 341: YY_RULE_SETUP -#line 626 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 635 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); } YY_BREAK case YY_STATE_EOF(include_toplevel): -#line 629 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 638 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { yyerror("EOF inside include_toplevel directive"); BEGIN(inc_prev); } YY_BREAK -case 333: +case 342: YY_RULE_SETUP -#line 633 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 642 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("ITSP ")); /* ignore */ } YY_BREAK -case 334: -/* rule 334 can match eol */ +case 343: +/* rule 343 can match eol */ YY_RULE_SETUP -#line 634 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 643 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK -case 335: +case 344: YY_RULE_SETUP -#line 635 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 644 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } YY_BREAK -case 336: +case 345: YY_RULE_SETUP -#line 636 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 645 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("ITunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 1); @@ -5285,29 +5430,29 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_toplevel_quoted): -#line 642 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 651 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 337: +case 346: YY_RULE_SETUP -#line 646 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 655 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } YY_BREAK -case 338: -/* rule 338 can match eol */ +case 347: +/* rule 347 can match eol */ YY_RULE_SETUP -#line 647 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 656 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 339: +case 348: YY_RULE_SETUP -#line 651 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 660 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("ITQE ")); yytext[yyleng - 1] = '\0'; @@ -5316,33 +5461,33 @@ YY_RULE_SETUP return (VAR_FORCE_TOPLEVEL); } YY_BREAK -case 340: +case 349: YY_RULE_SETUP -#line 659 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 668 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 341: +case 350: YY_RULE_SETUP -#line 663 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 672 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 342: +case 351: YY_RULE_SETUP -#line 667 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 676 "/usr/src/usr.sbin/unbound/util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 343: +case 352: YY_RULE_SETUP -#line 671 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 680 "/usr/src/usr.sbin/unbound/util/configlexer.lex" ECHO; YY_BREAK -#line 5344 "<stdout>" +#line 5489 "<stdout>" case YY_END_OF_BUFFER: { @@ -5635,7 +5780,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 3354 ) + if ( yy_current_state >= 3484 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -5663,11 +5808,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 >= 3354 ) + if ( yy_current_state >= 3484 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 3353); + yy_is_jam = (yy_current_state == 3483); return yy_is_jam ? 0 : yy_current_state; } @@ -6300,7 +6445,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 671 "/usr/src/usr.sbin/unbound/util/configlexer.lex" +#line 680 "/usr/src/usr.sbin/unbound/util/configlexer.lex" diff --git a/sbin/unwind/libunbound/util/configlexer.lex b/sbin/unwind/libunbound/util/configlexer.lex index bc4e92c7f11..dbfc17d499f 100644 --- a/sbin/unwind/libunbound/util/configlexer.lex +++ b/sbin/unwind/libunbound/util/configlexer.lex @@ -235,6 +235,9 @@ tcp-upstream{COLON} { YDVAR(1, VAR_TCP_UPSTREAM) } tcp-mss{COLON} { YDVAR(1, VAR_TCP_MSS) } outgoing-tcp-mss{COLON} { YDVAR(1, VAR_OUTGOING_TCP_MSS) } tcp-idle-timeout{COLON} { YDVAR(1, VAR_TCP_IDLE_TIMEOUT) } +max-reuse-tcp-queries{COLON} { YDVAR(1, VAR_MAX_REUSE_TCP_QUERIES) } +tcp-reuse-timeout{COLON} { YDVAR(1, VAR_TCP_REUSE_TIMEOUT) } +tcp-auth-query-timeout{COLON} { YDVAR(1, VAR_TCP_AUTH_QUERY_TIMEOUT) } edns-tcp-keepalive{COLON} { YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } edns-tcp-keepalive-timeout{COLON} { YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } ssl-upstream{COLON} { YDVAR(1, VAR_SSL_UPSTREAM) } @@ -368,8 +371,10 @@ max-ecs-tree-size-ipv6{COLON} { YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } hide-identity{COLON} { YDVAR(1, VAR_HIDE_IDENTITY) } hide-version{COLON} { YDVAR(1, VAR_HIDE_VERSION) } hide-trustanchor{COLON} { YDVAR(1, VAR_HIDE_TRUSTANCHOR) } +hide-http-user-agent{COLON} { YDVAR(1, VAR_HIDE_HTTP_USER_AGENT) } identity{COLON} { YDVAR(1, VAR_IDENTITY) } version{COLON} { YDVAR(1, VAR_VERSION) } +http-user-agent{COLON} { YDVAR(1, VAR_HTTP_USER_AGENT) } module-config{COLON} { YDVAR(1, VAR_MODULE_CONF) } dlv-anchor{COLON} { YDVAR(1, VAR_DLV_ANCHOR) } dlv-anchor-file{COLON} { YDVAR(1, VAR_DLV_ANCHOR_FILE) } @@ -382,6 +387,7 @@ root-key-sentinel{COLON} { YDVAR(1, VAR_ROOT_KEY_SENTINEL) } val-override-date{COLON} { YDVAR(1, VAR_VAL_OVERRIDE_DATE) } val-sig-skew-min{COLON} { YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } val-sig-skew-max{COLON} { YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +val-max-restart{COLON} { YDVAR(1, VAR_VAL_MAX_RESTART) } val-bogus-ttl{COLON} { YDVAR(1, VAR_BOGUS_TTL) } val-clean-additional{COLON} { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } val-permissive-mode{COLON} { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } @@ -401,6 +407,9 @@ key-cache-slabs{COLON} { YDVAR(1, VAR_KEY_CACHE_SLABS) } neg-cache-size{COLON} { YDVAR(1, VAR_NEG_CACHE_SIZE) } val-nsec3-keysize-iterations{COLON} { YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +zonemd-permissive-mode{COLON} { YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } +zonemd-check{COLON} { YDVAR(1, VAR_ZONEMD_CHECK) } +zonemd-reject-absence{COLON} { YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } add-holddown{COLON} { YDVAR(1, VAR_ADD_HOLDDOWN) } del-holddown{COLON} { YDVAR(1, VAR_DEL_HOLDDOWN) } keep-missing{COLON} { YDVAR(1, VAR_KEEP_MISSING) } diff --git a/sbin/unwind/libunbound/util/configparser.h b/sbin/unwind/libunbound/util/configparser.h index d9c4cbc6b1d..57603343d51 100644 --- a/sbin/unwind/libunbound/util/configparser.h +++ b/sbin/unwind/libunbound/util/configparser.h @@ -100,210 +100,219 @@ #define VAR_CONTROL_KEY_FILE 356 #define VAR_CONTROL_CERT_FILE 357 #define VAR_CONTROL_USE_CERT 358 -#define VAR_EXTENDED_STATISTICS 359 -#define VAR_LOCAL_DATA_PTR 360 -#define VAR_JOSTLE_TIMEOUT 361 -#define VAR_STUB_PRIME 362 -#define VAR_UNWANTED_REPLY_THRESHOLD 363 -#define VAR_LOG_TIME_ASCII 364 -#define VAR_DOMAIN_INSECURE 365 -#define VAR_PYTHON 366 -#define VAR_PYTHON_SCRIPT 367 -#define VAR_VAL_SIG_SKEW_MIN 368 -#define VAR_VAL_SIG_SKEW_MAX 369 -#define VAR_CACHE_MIN_TTL 370 -#define VAR_VAL_LOG_LEVEL 371 -#define VAR_AUTO_TRUST_ANCHOR_FILE 372 -#define VAR_KEEP_MISSING 373 -#define VAR_ADD_HOLDDOWN 374 -#define VAR_DEL_HOLDDOWN 375 -#define VAR_SO_RCVBUF 376 -#define VAR_EDNS_BUFFER_SIZE 377 -#define VAR_PREFETCH 378 -#define VAR_PREFETCH_KEY 379 -#define VAR_SO_SNDBUF 380 -#define VAR_SO_REUSEPORT 381 -#define VAR_HARDEN_BELOW_NXDOMAIN 382 -#define VAR_IGNORE_CD_FLAG 383 -#define VAR_LOG_QUERIES 384 -#define VAR_LOG_REPLIES 385 -#define VAR_LOG_LOCAL_ACTIONS 386 -#define VAR_TCP_UPSTREAM 387 -#define VAR_SSL_UPSTREAM 388 -#define VAR_SSL_SERVICE_KEY 389 -#define VAR_SSL_SERVICE_PEM 390 -#define VAR_SSL_PORT 391 -#define VAR_FORWARD_FIRST 392 -#define VAR_STUB_SSL_UPSTREAM 393 -#define VAR_FORWARD_SSL_UPSTREAM 394 -#define VAR_TLS_CERT_BUNDLE 395 -#define VAR_HTTPS_PORT 396 -#define VAR_HTTP_ENDPOINT 397 -#define VAR_HTTP_MAX_STREAMS 398 -#define VAR_HTTP_QUERY_BUFFER_SIZE 399 -#define VAR_HTTP_RESPONSE_BUFFER_SIZE 400 -#define VAR_HTTP_NODELAY 401 -#define VAR_HTTP_NOTLS_DOWNSTREAM 402 -#define VAR_STUB_FIRST 403 -#define VAR_MINIMAL_RESPONSES 404 -#define VAR_RRSET_ROUNDROBIN 405 -#define VAR_MAX_UDP_SIZE 406 -#define VAR_DELAY_CLOSE 407 -#define VAR_UDP_CONNECT 408 -#define VAR_UNBLOCK_LAN_ZONES 409 -#define VAR_INSECURE_LAN_ZONES 410 -#define VAR_INFRA_CACHE_MIN_RTT 411 -#define VAR_INFRA_KEEP_PROBING 412 -#define VAR_DNS64_PREFIX 413 -#define VAR_DNS64_SYNTHALL 414 -#define VAR_DNS64_IGNORE_AAAA 415 -#define VAR_DNSTAP 416 -#define VAR_DNSTAP_ENABLE 417 -#define VAR_DNSTAP_SOCKET_PATH 418 -#define VAR_DNSTAP_IP 419 -#define VAR_DNSTAP_TLS 420 -#define VAR_DNSTAP_TLS_SERVER_NAME 421 -#define VAR_DNSTAP_TLS_CERT_BUNDLE 422 -#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 423 -#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 424 -#define VAR_DNSTAP_SEND_IDENTITY 425 -#define VAR_DNSTAP_SEND_VERSION 426 -#define VAR_DNSTAP_BIDIRECTIONAL 427 -#define VAR_DNSTAP_IDENTITY 428 -#define VAR_DNSTAP_VERSION 429 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 430 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 431 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 432 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 433 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 434 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 435 -#define VAR_RESPONSE_IP_TAG 436 -#define VAR_RESPONSE_IP 437 -#define VAR_RESPONSE_IP_DATA 438 -#define VAR_HARDEN_ALGO_DOWNGRADE 439 -#define VAR_IP_TRANSPARENT 440 -#define VAR_IP_DSCP 441 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 442 -#define VAR_IP_RATELIMIT 443 -#define VAR_IP_RATELIMIT_SLABS 444 -#define VAR_IP_RATELIMIT_SIZE 445 -#define VAR_RATELIMIT 446 -#define VAR_RATELIMIT_SLABS 447 -#define VAR_RATELIMIT_SIZE 448 -#define VAR_RATELIMIT_FOR_DOMAIN 449 -#define VAR_RATELIMIT_BELOW_DOMAIN 450 -#define VAR_IP_RATELIMIT_FACTOR 451 -#define VAR_RATELIMIT_FACTOR 452 -#define VAR_SEND_CLIENT_SUBNET 453 -#define VAR_CLIENT_SUBNET_ZONE 454 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 455 -#define VAR_CLIENT_SUBNET_OPCODE 456 -#define VAR_MAX_CLIENT_SUBNET_IPV4 457 -#define VAR_MAX_CLIENT_SUBNET_IPV6 458 -#define VAR_MIN_CLIENT_SUBNET_IPV4 459 -#define VAR_MIN_CLIENT_SUBNET_IPV6 460 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 461 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 462 -#define VAR_CAPS_WHITELIST 463 -#define VAR_CACHE_MAX_NEGATIVE_TTL 464 -#define VAR_PERMIT_SMALL_HOLDDOWN 465 -#define VAR_QNAME_MINIMISATION 466 -#define VAR_QNAME_MINIMISATION_STRICT 467 -#define VAR_IP_FREEBIND 468 -#define VAR_DEFINE_TAG 469 -#define VAR_LOCAL_ZONE_TAG 470 -#define VAR_ACCESS_CONTROL_TAG 471 -#define VAR_LOCAL_ZONE_OVERRIDE 472 -#define VAR_ACCESS_CONTROL_TAG_ACTION 473 -#define VAR_ACCESS_CONTROL_TAG_DATA 474 -#define VAR_VIEW 475 -#define VAR_ACCESS_CONTROL_VIEW 476 -#define VAR_VIEW_FIRST 477 -#define VAR_SERVE_EXPIRED 478 -#define VAR_SERVE_EXPIRED_TTL 479 -#define VAR_SERVE_EXPIRED_TTL_RESET 480 -#define VAR_SERVE_EXPIRED_REPLY_TTL 481 -#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 482 -#define VAR_SERVE_ORIGINAL_TTL 483 -#define VAR_FAKE_DSA 484 -#define VAR_FAKE_SHA1 485 -#define VAR_LOG_IDENTITY 486 -#define VAR_HIDE_TRUSTANCHOR 487 -#define VAR_TRUST_ANCHOR_SIGNALING 488 -#define VAR_AGGRESSIVE_NSEC 489 -#define VAR_USE_SYSTEMD 490 -#define VAR_SHM_ENABLE 491 -#define VAR_SHM_KEY 492 -#define VAR_ROOT_KEY_SENTINEL 493 -#define VAR_DNSCRYPT 494 -#define VAR_DNSCRYPT_ENABLE 495 -#define VAR_DNSCRYPT_PORT 496 -#define VAR_DNSCRYPT_PROVIDER 497 -#define VAR_DNSCRYPT_SECRET_KEY 498 -#define VAR_DNSCRYPT_PROVIDER_CERT 499 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 500 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 501 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 502 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 503 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 504 -#define VAR_PAD_RESPONSES 505 -#define VAR_PAD_RESPONSES_BLOCK_SIZE 506 -#define VAR_PAD_QUERIES 507 -#define VAR_PAD_QUERIES_BLOCK_SIZE 508 -#define VAR_IPSECMOD_ENABLED 509 -#define VAR_IPSECMOD_HOOK 510 -#define VAR_IPSECMOD_IGNORE_BOGUS 511 -#define VAR_IPSECMOD_MAX_TTL 512 -#define VAR_IPSECMOD_WHITELIST 513 -#define VAR_IPSECMOD_STRICT 514 -#define VAR_CACHEDB 515 -#define VAR_CACHEDB_BACKEND 516 -#define VAR_CACHEDB_SECRETSEED 517 -#define VAR_CACHEDB_REDISHOST 518 -#define VAR_CACHEDB_REDISPORT 519 -#define VAR_CACHEDB_REDISTIMEOUT 520 -#define VAR_CACHEDB_REDISEXPIRERECORDS 521 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 522 -#define VAR_FOR_UPSTREAM 523 -#define VAR_AUTH_ZONE 524 -#define VAR_ZONEFILE 525 -#define VAR_MASTER 526 -#define VAR_URL 527 -#define VAR_FOR_DOWNSTREAM 528 -#define VAR_FALLBACK_ENABLED 529 -#define VAR_TLS_ADDITIONAL_PORT 530 -#define VAR_LOW_RTT 531 -#define VAR_LOW_RTT_PERMIL 532 -#define VAR_FAST_SERVER_PERMIL 533 -#define VAR_FAST_SERVER_NUM 534 -#define VAR_ALLOW_NOTIFY 535 -#define VAR_TLS_WIN_CERT 536 -#define VAR_TCP_CONNECTION_LIMIT 537 -#define VAR_FORWARD_NO_CACHE 538 -#define VAR_STUB_NO_CACHE 539 -#define VAR_LOG_SERVFAIL 540 -#define VAR_DENY_ANY 541 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 542 -#define VAR_LOG_TAG_QUERYREPLY 543 -#define VAR_STREAM_WAIT_SIZE 544 -#define VAR_TLS_CIPHERS 545 -#define VAR_TLS_CIPHERSUITES 546 -#define VAR_TLS_USE_SNI 547 -#define VAR_IPSET 548 -#define VAR_IPSET_NAME_V4 549 -#define VAR_IPSET_NAME_V6 550 -#define VAR_TLS_SESSION_TICKET_KEYS 551 -#define VAR_RPZ 552 -#define VAR_TAGS 553 -#define VAR_RPZ_ACTION_OVERRIDE 554 -#define VAR_RPZ_CNAME_OVERRIDE 555 -#define VAR_RPZ_LOG 556 -#define VAR_RPZ_LOG_NAME 557 -#define VAR_DYNLIB 558 -#define VAR_DYNLIB_FILE 559 -#define VAR_EDNS_CLIENT_STRING 560 -#define VAR_EDNS_CLIENT_STRING_OPCODE 561 -#define VAR_NSID 562 +#define VAR_TCP_REUSE_TIMEOUT 359 +#define VAR_MAX_REUSE_TCP_QUERIES 360 +#define VAR_EXTENDED_STATISTICS 361 +#define VAR_LOCAL_DATA_PTR 362 +#define VAR_JOSTLE_TIMEOUT 363 +#define VAR_STUB_PRIME 364 +#define VAR_UNWANTED_REPLY_THRESHOLD 365 +#define VAR_LOG_TIME_ASCII 366 +#define VAR_DOMAIN_INSECURE 367 +#define VAR_PYTHON 368 +#define VAR_PYTHON_SCRIPT 369 +#define VAR_VAL_SIG_SKEW_MIN 370 +#define VAR_VAL_SIG_SKEW_MAX 371 +#define VAR_VAL_MAX_RESTART 372 +#define VAR_CACHE_MIN_TTL 373 +#define VAR_VAL_LOG_LEVEL 374 +#define VAR_AUTO_TRUST_ANCHOR_FILE 375 +#define VAR_KEEP_MISSING 376 +#define VAR_ADD_HOLDDOWN 377 +#define VAR_DEL_HOLDDOWN 378 +#define VAR_SO_RCVBUF 379 +#define VAR_EDNS_BUFFER_SIZE 380 +#define VAR_PREFETCH 381 +#define VAR_PREFETCH_KEY 382 +#define VAR_SO_SNDBUF 383 +#define VAR_SO_REUSEPORT 384 +#define VAR_HARDEN_BELOW_NXDOMAIN 385 +#define VAR_IGNORE_CD_FLAG 386 +#define VAR_LOG_QUERIES 387 +#define VAR_LOG_REPLIES 388 +#define VAR_LOG_LOCAL_ACTIONS 389 +#define VAR_TCP_UPSTREAM 390 +#define VAR_SSL_UPSTREAM 391 +#define VAR_TCP_AUTH_QUERY_TIMEOUT 392 +#define VAR_SSL_SERVICE_KEY 393 +#define VAR_SSL_SERVICE_PEM 394 +#define VAR_SSL_PORT 395 +#define VAR_FORWARD_FIRST 396 +#define VAR_STUB_SSL_UPSTREAM 397 +#define VAR_FORWARD_SSL_UPSTREAM 398 +#define VAR_TLS_CERT_BUNDLE 399 +#define VAR_HTTPS_PORT 400 +#define VAR_HTTP_ENDPOINT 401 +#define VAR_HTTP_MAX_STREAMS 402 +#define VAR_HTTP_QUERY_BUFFER_SIZE 403 +#define VAR_HTTP_RESPONSE_BUFFER_SIZE 404 +#define VAR_HTTP_NODELAY 405 +#define VAR_HTTP_NOTLS_DOWNSTREAM 406 +#define VAR_STUB_FIRST 407 +#define VAR_MINIMAL_RESPONSES 408 +#define VAR_RRSET_ROUNDROBIN 409 +#define VAR_MAX_UDP_SIZE 410 +#define VAR_DELAY_CLOSE 411 +#define VAR_UDP_CONNECT 412 +#define VAR_UNBLOCK_LAN_ZONES 413 +#define VAR_INSECURE_LAN_ZONES 414 +#define VAR_INFRA_CACHE_MIN_RTT 415 +#define VAR_INFRA_KEEP_PROBING 416 +#define VAR_DNS64_PREFIX 417 +#define VAR_DNS64_SYNTHALL 418 +#define VAR_DNS64_IGNORE_AAAA 419 +#define VAR_DNSTAP 420 +#define VAR_DNSTAP_ENABLE 421 +#define VAR_DNSTAP_SOCKET_PATH 422 +#define VAR_DNSTAP_IP 423 +#define VAR_DNSTAP_TLS 424 +#define VAR_DNSTAP_TLS_SERVER_NAME 425 +#define VAR_DNSTAP_TLS_CERT_BUNDLE 426 +#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 427 +#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 428 +#define VAR_DNSTAP_SEND_IDENTITY 429 +#define VAR_DNSTAP_SEND_VERSION 430 +#define VAR_DNSTAP_BIDIRECTIONAL 431 +#define VAR_DNSTAP_IDENTITY 432 +#define VAR_DNSTAP_VERSION 433 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 434 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 435 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 436 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 437 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 438 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 439 +#define VAR_RESPONSE_IP_TAG 440 +#define VAR_RESPONSE_IP 441 +#define VAR_RESPONSE_IP_DATA 442 +#define VAR_HARDEN_ALGO_DOWNGRADE 443 +#define VAR_IP_TRANSPARENT 444 +#define VAR_IP_DSCP 445 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 446 +#define VAR_IP_RATELIMIT 447 +#define VAR_IP_RATELIMIT_SLABS 448 +#define VAR_IP_RATELIMIT_SIZE 449 +#define VAR_RATELIMIT 450 +#define VAR_RATELIMIT_SLABS 451 +#define VAR_RATELIMIT_SIZE 452 +#define VAR_RATELIMIT_FOR_DOMAIN 453 +#define VAR_RATELIMIT_BELOW_DOMAIN 454 +#define VAR_IP_RATELIMIT_FACTOR 455 +#define VAR_RATELIMIT_FACTOR 456 +#define VAR_SEND_CLIENT_SUBNET 457 +#define VAR_CLIENT_SUBNET_ZONE 458 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 459 +#define VAR_CLIENT_SUBNET_OPCODE 460 +#define VAR_MAX_CLIENT_SUBNET_IPV4 461 +#define VAR_MAX_CLIENT_SUBNET_IPV6 462 +#define VAR_MIN_CLIENT_SUBNET_IPV4 463 +#define VAR_MIN_CLIENT_SUBNET_IPV6 464 +#define VAR_MAX_ECS_TREE_SIZE_IPV4 465 +#define VAR_MAX_ECS_TREE_SIZE_IPV6 466 +#define VAR_CAPS_WHITELIST 467 +#define VAR_CACHE_MAX_NEGATIVE_TTL 468 +#define VAR_PERMIT_SMALL_HOLDDOWN 469 +#define VAR_QNAME_MINIMISATION 470 +#define VAR_QNAME_MINIMISATION_STRICT 471 +#define VAR_IP_FREEBIND 472 +#define VAR_DEFINE_TAG 473 +#define VAR_LOCAL_ZONE_TAG 474 +#define VAR_ACCESS_CONTROL_TAG 475 +#define VAR_LOCAL_ZONE_OVERRIDE 476 +#define VAR_ACCESS_CONTROL_TAG_ACTION 477 +#define VAR_ACCESS_CONTROL_TAG_DATA 478 +#define VAR_VIEW 479 +#define VAR_ACCESS_CONTROL_VIEW 480 +#define VAR_VIEW_FIRST 481 +#define VAR_SERVE_EXPIRED 482 +#define VAR_SERVE_EXPIRED_TTL 483 +#define VAR_SERVE_EXPIRED_TTL_RESET 484 +#define VAR_SERVE_EXPIRED_REPLY_TTL 485 +#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 486 +#define VAR_SERVE_ORIGINAL_TTL 487 +#define VAR_FAKE_DSA 488 +#define VAR_FAKE_SHA1 489 +#define VAR_LOG_IDENTITY 490 +#define VAR_HIDE_TRUSTANCHOR 491 +#define VAR_HIDE_HTTP_USER_AGENT 492 +#define VAR_HTTP_USER_AGENT 493 +#define VAR_TRUST_ANCHOR_SIGNALING 494 +#define VAR_AGGRESSIVE_NSEC 495 +#define VAR_USE_SYSTEMD 496 +#define VAR_SHM_ENABLE 497 +#define VAR_SHM_KEY 498 +#define VAR_ROOT_KEY_SENTINEL 499 +#define VAR_DNSCRYPT 500 +#define VAR_DNSCRYPT_ENABLE 501 +#define VAR_DNSCRYPT_PORT 502 +#define VAR_DNSCRYPT_PROVIDER 503 +#define VAR_DNSCRYPT_SECRET_KEY 504 +#define VAR_DNSCRYPT_PROVIDER_CERT 505 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 506 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 507 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 508 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 509 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 510 +#define VAR_PAD_RESPONSES 511 +#define VAR_PAD_RESPONSES_BLOCK_SIZE 512 +#define VAR_PAD_QUERIES 513 +#define VAR_PAD_QUERIES_BLOCK_SIZE 514 +#define VAR_IPSECMOD_ENABLED 515 +#define VAR_IPSECMOD_HOOK 516 +#define VAR_IPSECMOD_IGNORE_BOGUS 517 +#define VAR_IPSECMOD_MAX_TTL 518 +#define VAR_IPSECMOD_WHITELIST 519 +#define VAR_IPSECMOD_STRICT 520 +#define VAR_CACHEDB 521 +#define VAR_CACHEDB_BACKEND 522 +#define VAR_CACHEDB_SECRETSEED 523 +#define VAR_CACHEDB_REDISHOST 524 +#define VAR_CACHEDB_REDISPORT 525 +#define VAR_CACHEDB_REDISTIMEOUT 526 +#define VAR_CACHEDB_REDISEXPIRERECORDS 527 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 528 +#define VAR_FOR_UPSTREAM 529 +#define VAR_AUTH_ZONE 530 +#define VAR_ZONEFILE 531 +#define VAR_MASTER 532 +#define VAR_URL 533 +#define VAR_FOR_DOWNSTREAM 534 +#define VAR_FALLBACK_ENABLED 535 +#define VAR_TLS_ADDITIONAL_PORT 536 +#define VAR_LOW_RTT 537 +#define VAR_LOW_RTT_PERMIL 538 +#define VAR_FAST_SERVER_PERMIL 539 +#define VAR_FAST_SERVER_NUM 540 +#define VAR_ALLOW_NOTIFY 541 +#define VAR_TLS_WIN_CERT 542 +#define VAR_TCP_CONNECTION_LIMIT 543 +#define VAR_FORWARD_NO_CACHE 544 +#define VAR_STUB_NO_CACHE 545 +#define VAR_LOG_SERVFAIL 546 +#define VAR_DENY_ANY 547 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 548 +#define VAR_LOG_TAG_QUERYREPLY 549 +#define VAR_STREAM_WAIT_SIZE 550 +#define VAR_TLS_CIPHERS 551 +#define VAR_TLS_CIPHERSUITES 552 +#define VAR_TLS_USE_SNI 553 +#define VAR_IPSET 554 +#define VAR_IPSET_NAME_V4 555 +#define VAR_IPSET_NAME_V6 556 +#define VAR_TLS_SESSION_TICKET_KEYS 557 +#define VAR_RPZ 558 +#define VAR_TAGS 559 +#define VAR_RPZ_ACTION_OVERRIDE 560 +#define VAR_RPZ_CNAME_OVERRIDE 561 +#define VAR_RPZ_LOG 562 +#define VAR_RPZ_LOG_NAME 563 +#define VAR_DYNLIB 564 +#define VAR_DYNLIB_FILE 565 +#define VAR_EDNS_CLIENT_STRING 566 +#define VAR_EDNS_CLIENT_STRING_OPCODE 567 +#define VAR_NSID 568 +#define VAR_ZONEMD_PERMISSIVE_MODE 569 +#define VAR_ZONEMD_CHECK 570 +#define VAR_ZONEMD_REJECT_ABSENCE 571 #ifndef YYSTYPE_DEFINED #define YYSTYPE_DEFINED typedef union { diff --git a/sbin/unwind/libunbound/util/configparser.y b/sbin/unwind/libunbound/util/configparser.y index 272a9796939..e22d48d4105 100644 --- a/sbin/unwind/libunbound/util/configparser.y +++ b/sbin/unwind/libunbound/util/configparser.y @@ -100,17 +100,18 @@ extern struct config_parser_state* cfg_parser; %token VAR_PRIVATE_DOMAIN VAR_REMOTE_CONTROL VAR_CONTROL_ENABLE %token VAR_CONTROL_INTERFACE VAR_CONTROL_PORT VAR_SERVER_KEY_FILE %token VAR_SERVER_CERT_FILE VAR_CONTROL_KEY_FILE VAR_CONTROL_CERT_FILE -%token VAR_CONTROL_USE_CERT +%token VAR_CONTROL_USE_CERT VAR_TCP_REUSE_TIMEOUT VAR_MAX_REUSE_TCP_QUERIES %token VAR_EXTENDED_STATISTICS VAR_LOCAL_DATA_PTR VAR_JOSTLE_TIMEOUT %token VAR_STUB_PRIME VAR_UNWANTED_REPLY_THRESHOLD VAR_LOG_TIME_ASCII %token VAR_DOMAIN_INSECURE VAR_PYTHON VAR_PYTHON_SCRIPT VAR_VAL_SIG_SKEW_MIN -%token VAR_VAL_SIG_SKEW_MAX VAR_CACHE_MIN_TTL VAR_VAL_LOG_LEVEL -%token VAR_AUTO_TRUST_ANCHOR_FILE VAR_KEEP_MISSING VAR_ADD_HOLDDOWN -%token VAR_DEL_HOLDDOWN VAR_SO_RCVBUF VAR_EDNS_BUFFER_SIZE VAR_PREFETCH -%token VAR_PREFETCH_KEY VAR_SO_SNDBUF VAR_SO_REUSEPORT VAR_HARDEN_BELOW_NXDOMAIN -%token VAR_IGNORE_CD_FLAG VAR_LOG_QUERIES VAR_LOG_REPLIES VAR_LOG_LOCAL_ACTIONS -%token VAR_TCP_UPSTREAM VAR_SSL_UPSTREAM -%token VAR_SSL_SERVICE_KEY VAR_SSL_SERVICE_PEM VAR_SSL_PORT VAR_FORWARD_FIRST +%token VAR_VAL_SIG_SKEW_MAX VAR_VAL_MAX_RESTART VAR_CACHE_MIN_TTL +%token VAR_VAL_LOG_LEVEL VAR_AUTO_TRUST_ANCHOR_FILE VAR_KEEP_MISSING +%token VAR_ADD_HOLDDOWN VAR_DEL_HOLDDOWN VAR_SO_RCVBUF VAR_EDNS_BUFFER_SIZE +%token VAR_PREFETCH VAR_PREFETCH_KEY VAR_SO_SNDBUF VAR_SO_REUSEPORT +%token VAR_HARDEN_BELOW_NXDOMAIN VAR_IGNORE_CD_FLAG VAR_LOG_QUERIES +%token VAR_LOG_REPLIES VAR_LOG_LOCAL_ACTIONS VAR_TCP_UPSTREAM +%token VAR_SSL_UPSTREAM VAR_TCP_AUTH_QUERY_TIMEOUT VAR_SSL_SERVICE_KEY +%token VAR_SSL_SERVICE_PEM VAR_SSL_PORT VAR_FORWARD_FIRST %token VAR_STUB_SSL_UPSTREAM VAR_FORWARD_SSL_UPSTREAM VAR_TLS_CERT_BUNDLE %token VAR_HTTPS_PORT VAR_HTTP_ENDPOINT VAR_HTTP_MAX_STREAMS %token VAR_HTTP_QUERY_BUFFER_SIZE VAR_HTTP_RESPONSE_BUFFER_SIZE @@ -153,6 +154,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_SERVE_EXPIRED_TTL_RESET VAR_SERVE_EXPIRED_REPLY_TTL %token VAR_SERVE_EXPIRED_CLIENT_TIMEOUT VAR_SERVE_ORIGINAL_TTL VAR_FAKE_DSA %token VAR_FAKE_SHA1 VAR_LOG_IDENTITY VAR_HIDE_TRUSTANCHOR +%token VAR_HIDE_HTTP_USER_AGENT VAR_HTTP_USER_AGENT %token VAR_TRUST_ANCHOR_SIGNALING VAR_AGGRESSIVE_NSEC VAR_USE_SYSTEMD %token VAR_SHM_ENABLE VAR_SHM_KEY VAR_ROOT_KEY_SENTINEL %token VAR_DNSCRYPT VAR_DNSCRYPT_ENABLE VAR_DNSCRYPT_PORT VAR_DNSCRYPT_PROVIDER @@ -182,6 +184,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_RPZ_CNAME_OVERRIDE VAR_RPZ_LOG VAR_RPZ_LOG_NAME %token VAR_DYNLIB VAR_DYNLIB_FILE VAR_EDNS_CLIENT_STRING %token VAR_EDNS_CLIENT_STRING_OPCODE VAR_NSID +%token VAR_ZONEMD_PERMISSIVE_MODE VAR_ZONEMD_CHECK VAR_ZONEMD_REJECT_ABSENCE %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -223,6 +226,7 @@ content_server: server_num_threads | server_verbosity | server_port | server_harden_short_bufsize | server_harden_large_queries | server_do_not_query_address | server_hide_identity | server_hide_version | server_identity | server_version | + server_hide_http_user_agent | server_http_user_agent | server_harden_glue | server_module_conf | server_trust_anchor_file | server_trust_anchor | server_val_override_date | server_bogus_ttl | server_val_clean_additional | server_val_permissive_mode | @@ -242,8 +246,9 @@ content_server: server_num_threads | server_verbosity | server_port | server_local_data_ptr | server_jostle_timeout | server_unwanted_reply_threshold | server_log_time_ascii | server_domain_insecure | server_val_sig_skew_min | - server_val_sig_skew_max | server_cache_min_ttl | server_val_log_level | - server_auto_trust_anchor_file | server_add_holddown | + server_val_sig_skew_max | server_val_max_restart | + server_cache_min_ttl | server_val_log_level | + server_auto_trust_anchor_file | server_add_holddown | server_del_holddown | server_keep_missing | server_so_rcvbuf | server_edns_buffer_size | server_prefetch | server_prefetch_key | server_so_sndbuf | server_harden_below_nxdomain | server_ignore_cd_flag | @@ -299,7 +304,10 @@ content_server: server_num_threads | server_verbosity | server_port | server_stream_wait_size | server_tls_ciphers | server_tls_ciphersuites | server_tls_session_ticket_keys | server_tls_use_sni | server_edns_client_string | - server_edns_client_string_opcode | server_nsid + server_edns_client_string_opcode | server_nsid | + server_zonemd_permissive_mode | server_max_reuse_tcp_queries | + server_tcp_reuse_timeout | server_tcp_auth_query_timeout + ; stubstart: VAR_STUB_ZONE { @@ -366,6 +374,8 @@ authstart: VAR_AUTH_ZONE s->for_downstream = 1; s->for_upstream = 1; s->fallback_enabled = 0; + s->zonemd_check = 0; + s->zonemd_reject_absence = 0; s->isrpz = 0; } else yyerror("out of memory"); @@ -375,7 +385,7 @@ contents_auth: contents_auth content_auth | ; content_auth: auth_name | auth_zonefile | auth_master | auth_url | auth_for_downstream | auth_for_upstream | auth_fallback_enabled | - auth_allow_notify + auth_allow_notify | auth_zonemd_check | auth_zonemd_reject_absence ; rpz_tag: VAR_TAGS STRING_ARG @@ -856,6 +866,39 @@ server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG free($2); } ; +server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG + { + OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("number expected"); + else if (atoi($2) < 1) + cfg_parser->cfg->max_reuse_tcp_queries = 0; + else cfg_parser->cfg->max_reuse_tcp_queries = atoi($2); + free($2); + } + ; +server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG + { + OUTYY(("P(server_tcp_reuse_timeout:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("number expected"); + else if (atoi($2) < 1) + cfg_parser->cfg->tcp_reuse_timeout = 0; + else cfg_parser->cfg->tcp_reuse_timeout = atoi($2); + free($2); + } + ; +server_tcp_auth_query_timeout: VAR_TCP_AUTH_QUERY_TIMEOUT STRING_ARG + { + OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("number expected"); + else if (atoi($2) < 1) + cfg_parser->cfg->tcp_auth_query_timeout = 0; + else cfg_parser->cfg->tcp_auth_query_timeout = atoi($2); + free($2); + } + ; server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG { OUTYY(("P(server_tcp_keepalive:%s)\n", $2)); @@ -1296,6 +1339,15 @@ server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG free($2); } ; +server_hide_http_user_agent: VAR_HIDE_HTTP_USER_AGENT STRING_ARG + { + OUTYY(("P(server_hide_user_agent:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->hide_http_user_agent = (strcmp($2, "yes")==0); + free($2); + } + ; server_identity: VAR_IDENTITY STRING_ARG { OUTYY(("P(server_identity:%s)\n", $2)); @@ -1310,6 +1362,13 @@ server_version: VAR_VERSION STRING_ARG cfg_parser->cfg->version = $2; } ; +server_http_user_agent: VAR_HTTP_USER_AGENT STRING_ARG + { + OUTYY(("P(server_http_user_agent:%s)\n", $2)); + free(cfg_parser->cfg->http_user_agent); + cfg_parser->cfg->http_user_agent = $2; + } + ; server_nsid: VAR_NSID STRING_ARG { OUTYY(("P(server_nsid:%s)\n", $2)); @@ -1814,6 +1873,19 @@ server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG free($2); } ; +server_val_max_restart: VAR_VAL_MAX_RESTART STRING_ARG + { + OUTYY(("P(server_val_max_restart:%s)\n", $2)); + if(*$2 == '\0' || strcmp($2, "0") == 0) { + cfg_parser->cfg->val_max_restart = 0; + } else { + cfg_parser->cfg->val_max_restart = atoi($2); + if(!cfg_parser->cfg->val_max_restart) + yyerror("number expected"); + } + free($2); + } + ; server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG { OUTYY(("P(server_cache_max_ttl:%s)\n", $2)); @@ -1986,6 +2058,15 @@ server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG cfg_parser->cfg->val_nsec3_key_iterations = $2; } ; +server_zonemd_permissive_mode: VAR_ZONEMD_PERMISSIVE_MODE STRING_ARG + { + OUTYY(("P(server_zonemd_permissive_mode:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->zonemd_permissive_mode = (strcmp($2, "yes")==0); + free($2); + } + ; server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG { OUTYY(("P(server_add_holddown:%s)\n", $2)); @@ -2741,6 +2822,26 @@ auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG yyerror("out of memory"); } ; +auth_zonemd_check: VAR_ZONEMD_CHECK STRING_ARG + { + OUTYY(("P(zonemd-check:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->auths->zonemd_check = + (strcmp($2, "yes")==0); + free($2); + } + ; +auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG + { + OUTYY(("P(zonemd-reject-absence:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->auths->zonemd_reject_absence = + (strcmp($2, "yes")==0); + free($2); + } + ; auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG { OUTYY(("P(for-downstream:%s)\n", $2)); @@ -2791,13 +2892,20 @@ view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG && strcmp($3, "always_transparent")!=0 && strcmp($3, "always_refuse")!=0 && strcmp($3, "always_nxdomain")!=0 + && strcmp($3, "always_nodata")!=0 + && strcmp($3, "always_deny")!=0 + && strcmp($3, "always_null")!=0 && strcmp($3, "noview")!=0 - && strcmp($3, "inform")!=0 && strcmp($3, "inform_deny")!=0) { + && strcmp($3, "inform")!=0 && strcmp($3, "inform_deny")!=0 + && strcmp($3, "inform_redirect") != 0 + && strcmp($3, "ipset") != 0) { yyerror("local-zone type: expected static, deny, " "refuse, redirect, transparent, " "typetransparent, inform, inform_deny, " - "always_transparent, always_refuse, " - "always_nxdomain, noview or nodefault"); + "inform_redirect, always_transparent, " + "always_refuse, always_nxdomain, " + "always_nodata, always_deny, always_null, " + "noview, nodefault or ipset"); free($2); free($3); } else if(strcmp($3, "nodefault")==0) { diff --git a/sbin/unwind/libunbound/util/data/dname.h b/sbin/unwind/libunbound/util/data/dname.h index e37c11822b3..cb0f6735d92 100644 --- a/sbin/unwind/libunbound/util/data/dname.h +++ b/sbin/unwind/libunbound/util/data/dname.h @@ -261,7 +261,7 @@ int dname_is_root(uint8_t* dname); * Snip off first label from a dname, returning the parent zone. * @param dname: from what to strip off. uncompressed wireformat. * @param len: length, adjusted to become less. - * @return stripped off, or "." if input was ".". + * return stripped off, or "." if input was ".". */ void dname_remove_label(uint8_t** dname, size_t* len); @@ -271,7 +271,7 @@ void dname_remove_label(uint8_t** dname, size_t* len); * @param len: length, adjusted to become less. * @param n: number of labels to strip off (from the left). * if 0, nothing happens. - * @return stripped off, or "." if input was ".". + * return stripped off, or "." if input was ".". */ void dname_remove_labels(uint8_t** dname, size_t* len, int n); diff --git a/sbin/unwind/libunbound/util/data/msgreply.c b/sbin/unwind/libunbound/util/data/msgreply.c index 4830b343f0f..00272fd1c64 100644 --- a/sbin/unwind/libunbound/util/data/msgreply.c +++ b/sbin/unwind/libunbound/util/data/msgreply.c @@ -329,7 +329,10 @@ parse_create_rrset(sldns_buffer* pkt, struct rrset_parse* pset, return 0; /* copy & decompress */ if(!parse_rr_copy(pkt, pset, *data)) { - if(!region) free(*data); + if(!region) { + free(*data); + *data = NULL; + } return 0; } return 1; @@ -394,8 +397,13 @@ parse_copy_decompress_rrset(sldns_buffer* pkt, struct msg_parse* msg, pk->rk.type = htons(pset->type); pk->rk.rrset_class = pset->rrset_class; /** read data part. */ - if(!parse_create_rrset(pkt, pset, &data, region)) + if(!parse_create_rrset(pkt, pset, &data, region)) { + if(!region) { + free(pk->rk.dname); + pk->rk.dname = NULL; + } return 0; + } pk->entry.data = (void*)data; pk->entry.key = (void*)pk; pk->entry.hash = pset->hash; @@ -825,9 +833,15 @@ log_dns_msg(const char* str, struct query_info* qinfo, struct reply_info* rep) /* not particularly fast but flexible, make wireformat and print */ sldns_buffer* buf = sldns_buffer_new(65535); struct regional* region = regional_create(); - if(!reply_info_encode(qinfo, rep, 0, rep->flags, buf, 0, + if(!(buf && region)) { + log_err("%s: log_dns_msg: out of memory", str); + sldns_buffer_free(buf); + regional_destroy(region); + return; + } + if(!reply_info_encode(qinfo, rep, 0, rep->flags, buf, 0, region, 65535, 1, 0)) { - log_info("%s: log_dns_msg: out of memory", str); + log_err("%s: log_dns_msg: out of memory", str); } else { char* s = sldns_wire2str_pkt(sldns_buffer_begin(buf), sldns_buffer_limit(buf)); diff --git a/sbin/unwind/libunbound/util/fptr_wlist.c b/sbin/unwind/libunbound/util/fptr_wlist.c index a9e9d3a0323..de6dbd02a37 100644 --- a/sbin/unwind/libunbound/util/fptr_wlist.c +++ b/sbin/unwind/libunbound/util/fptr_wlist.c @@ -196,8 +196,6 @@ int fptr_whitelist_pending_udp(comm_point_callback_type *fptr) { if(fptr == &serviced_udp_callback) return 1; - else if(fptr == &worker_handle_reply) return 1; - else if(fptr == &libworker_handle_reply) return 1; return 0; } @@ -205,8 +203,6 @@ int fptr_whitelist_pending_tcp(comm_point_callback_type *fptr) { if(fptr == &serviced_tcp_callback) return 1; - else if(fptr == &worker_handle_reply) return 1; - else if(fptr == &libworker_handle_reply) return 1; return 0; } @@ -583,6 +579,7 @@ int fptr_whitelist_mesh_cb(mesh_cb_func_type fptr) else if(fptr == &probe_answer_cb) return 1; else if(fptr == &auth_xfer_probe_lookup_callback) return 1; else if(fptr == &auth_xfer_transfer_lookup_callback) return 1; + else if(fptr == &auth_zonemd_dnskey_lookup_callback) return 1; return 0; } diff --git a/sbin/unwind/libunbound/util/iana_ports.inc b/sbin/unwind/libunbound/util/iana_ports.inc index 875851e6ac6..b93af015da6 100644 --- a/sbin/unwind/libunbound/util/iana_ports.inc +++ b/sbin/unwind/libunbound/util/iana_ports.inc @@ -118,7 +118,6 @@ 140, 141, 142, -143, 144, 145, 146, @@ -679,7 +678,6 @@ 990, 991, 992, -993, 995, 996, 997, @@ -4246,6 +4244,7 @@ 5504, 5505, 5506, +5540, 5553, 5554, 5555, @@ -4738,6 +4737,7 @@ 8006, 8007, 8008, +8017, 8019, 8020, 8021, @@ -5378,6 +5378,7 @@ 30999, 31016, 31029, +31337, 31416, 31457, 31620, diff --git a/sbin/unwind/libunbound/util/net_help.c b/sbin/unwind/libunbound/util/net_help.c index 3b5527adf43..06bc1f5dd7e 100644 --- a/sbin/unwind/libunbound/util/net_help.c +++ b/sbin/unwind/libunbound/util/net_help.c @@ -887,7 +887,7 @@ log_cert(unsigned level, const char* str, void* cert) } #endif /* HAVE_SSL */ -#if defined(HAVE_SSL) && defined(HAVE_NGHTTP2) +#if defined(HAVE_SSL) && defined(HAVE_NGHTTP2) && defined(HAVE_SSL_CTX_SET_ALPN_SELECT_CB) static int alpn_select_cb(SSL* ATTR_UNUSED(ssl), const unsigned char** out, unsigned char* outlen, const unsigned char* in, unsigned int inlen, void* ATTR_UNUSED(arg)) @@ -1609,5 +1609,4 @@ sock_close(int socket) { closesocket(socket); } - # endif /* USE_WINSOCK */ diff --git a/sbin/unwind/libunbound/util/net_help.h b/sbin/unwind/libunbound/util/net_help.h index 45b607a430d..79835270c47 100644 --- a/sbin/unwind/libunbound/util/net_help.h +++ b/sbin/unwind/libunbound/util/net_help.h @@ -42,6 +42,7 @@ #ifndef NET_HELP_H #define NET_HELP_H #include "util/log.h" +#include "util/random.h" struct sock_list; struct regional; struct config_strlist; @@ -76,8 +77,6 @@ struct config_strlist; /** timeout in milliseconds for UDP queries to auth servers. */ #define UDP_AUTH_QUERY_TIMEOUT 3000 -/** timeout in milliseconds for TCP queries to auth servers. */ -#define TCP_AUTH_QUERY_TIMEOUT 3000 /** Advertised version of EDNS capabilities */ #define EDNS_ADVERTISED_VERSION 0 /** Advertised size of EDNS capabilities */ @@ -94,6 +93,9 @@ extern uint16_t EDNS_ADVERTISED_SIZE; /** DNSKEY secure entry point, KSK flag */ #define DNSKEY_BIT_SEP 0x0001 +/** return a random 16-bit number given a random source */ +#define GET_RANDOM_ID(rnd) (((unsigned)ub_random(rnd)>>8) & 0xffff) + /** minimal responses when positive answer */ extern int MINIMAL_RESPONSES; diff --git a/sbin/unwind/libunbound/util/netevent.c b/sbin/unwind/libunbound/util/netevent.c index a2c0e6073e3..11c642a2bc3 100644 --- a/sbin/unwind/libunbound/util/netevent.c +++ b/sbin/unwind/libunbound/util/netevent.c @@ -51,6 +51,16 @@ #include "dnstap/dnstap.h" #include "dnscrypt/dnscrypt.h" #include "services/listen_dnsport.h" +#ifdef HAVE_SYS_TYPES_H +#include <sys/types.h> +#endif +#ifdef HAVE_SYS_SOCKET_H +#include <sys/socket.h> +#endif +#ifdef HAVE_NETDB_H +#include <netdb.h> +#endif + #ifdef HAVE_OPENSSL_SSL_H #include <openssl/ssl.h> #endif @@ -152,7 +162,7 @@ struct internal_signal { static struct comm_point* comm_point_create_tcp_handler( struct comm_base *base, struct comm_point* parent, size_t bufsize, struct sldns_buffer* spoolbuf, comm_point_callback_type* callback, - void* callback_arg); + void* callback_arg, struct unbound_socket* socket); /* -------- End of local definitions -------- */ @@ -289,6 +299,7 @@ udp_send_errno_needs_log(struct sockaddr* addr, socklen_t addrlen) # ifdef ENETDOWN case ENETDOWN: # endif + case EPERM: if(verbosity < VERB_ALGO) return 0; default: @@ -302,7 +313,7 @@ udp_send_errno_needs_log(struct sockaddr* addr, socklen_t addrlen) /* 'Cannot assign requested address' also when disconnected */ || (errno == EADDRNOTAVAIL) # endif - ) && verbosity < VERB_DETAIL) + ) && verbosity < VERB_ALGO) return 0; # ifdef EADDRINUSE /* If SO_REUSEADDR is set, we could try to connect to the same server @@ -408,7 +419,9 @@ static void p_ancil(const char* str, struct comm_reply* r) log_info("%s: unknown srctype %d", str, r->srctype); return; } + if(r->srctype == 6) { +#ifdef IPV6_PKTINFO char buf[1024]; if(inet_ntop(AF_INET6, &r->pktinfo.v6info.ipi6_addr, buf, (socklen_t)sizeof(buf)) == 0) { @@ -416,6 +429,7 @@ static void p_ancil(const char* str, struct comm_reply* r) } buf[sizeof(buf)-1]=0; log_info("%s: %s %d", str, buf, r->pktinfo.v6info.ipi6_ifindex); +#endif } else if(r->srctype == 4) { #ifdef IP_PKTINFO char buf1[1024], buf2[1024]; @@ -1200,7 +1214,7 @@ ssl_handshake(struct comm_point* c) int r; if(c->ssl_shake_state == comm_ssl_shake_hs_read) { /* read condition satisfied back to writing */ - comm_point_listen_for_rw(c, 1, 1); + comm_point_listen_for_rw(c, 0, 1); c->ssl_shake_state = comm_ssl_shake_none; return 1; } @@ -1257,7 +1271,11 @@ ssl_handshake(struct comm_point* c) if((SSL_get_verify_mode(c->ssl)&SSL_VERIFY_PEER)) { /* verification */ if(SSL_get_verify_result(c->ssl) == X509_V_OK) { +#ifdef HAVE_SSL_GET1_PEER_CERTIFICATE + X509* x = SSL_get1_peer_certificate(c->ssl); +#else X509* x = SSL_get_peer_certificate(c->ssl); +#endif if(!x) { log_addr(VERB_ALGO, "SSL connection failed: " "no certificate", @@ -1283,7 +1301,11 @@ ssl_handshake(struct comm_point* c) #endif X509_free(x); } else { +#ifdef HAVE_SSL_GET1_PEER_CERTIFICATE + X509* x = SSL_get1_peer_certificate(c->ssl); +#else X509* x = SSL_get_peer_certificate(c->ssl); +#endif if(x) { log_cert(VERB_ALGO, "peer certificate", x); X509_free(x); @@ -1300,6 +1322,7 @@ ssl_handshake(struct comm_point* c) c->repinfo.addrlen); } +#ifdef HAVE_SSL_GET0_ALPN_SELECTED /* check if http2 use is negotiated */ if(c->type == comm_http && c->h2_session) { const unsigned char *alpn; @@ -1311,13 +1334,14 @@ ssl_handshake(struct comm_point* c) c->use_h2 = 1; } } +#endif /* setup listen rw correctly */ if(c->tcp_is_reading) { if(c->ssl_shake_state != comm_ssl_shake_read) comm_point_listen_for_rw(c, 1, 0); } else { - comm_point_listen_for_rw(c, 1, 1); + comm_point_listen_for_rw(c, 0, 1); } c->ssl_shake_state = comm_ssl_shake_none; return 1; @@ -1348,7 +1372,9 @@ ssl_handle_read(struct comm_point* c) return tcp_req_info_handle_read_close(c->tcp_req_info); return 0; /* shutdown, closed */ } else if(want == SSL_ERROR_WANT_READ) { +#ifdef USE_WINSOCK ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_READ); +#endif return 1; /* read more later */ } else if(want == SSL_ERROR_WANT_WRITE) { c->ssl_shake_state = comm_ssl_shake_hs_write; @@ -1396,7 +1422,9 @@ ssl_handle_read(struct comm_point* c) return tcp_req_info_handle_read_close(c->tcp_req_info); return 0; /* shutdown, closed */ } else if(want == SSL_ERROR_WANT_READ) { +#ifdef USE_WINSOCK ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_READ); +#endif return 1; /* read more later */ } else if(want == SSL_ERROR_WANT_WRITE) { c->ssl_shake_state = comm_ssl_shake_hs_write; @@ -1489,7 +1517,9 @@ ssl_handle_write(struct comm_point* c) comm_point_listen_for_rw(c, 1, 0); return 1; /* wait for read condition */ } else if(want == SSL_ERROR_WANT_WRITE) { +#ifdef USE_WINSOCK ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_WRITE); +#endif return 1; /* write more later */ } else if(want == SSL_ERROR_SYSCALL) { #ifdef EPIPE @@ -1539,7 +1569,9 @@ ssl_handle_write(struct comm_point* c) comm_point_listen_for_rw(c, 1, 0); return 1; /* wait for read condition */ } else if(want == SSL_ERROR_WANT_WRITE) { +#ifdef USE_WINSOCK ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_WRITE); +#endif return 1; /* write more later */ } else if(want == SSL_ERROR_SYSCALL) { #ifdef EPIPE @@ -1620,6 +1652,10 @@ comm_point_tcp_handle_read(int fd, struct comm_point* c, int short_ok) if(errno == ECONNRESET && verbosity < 2) return 0; /* silence reset by peer */ #endif +#ifdef ECONNREFUSED + if(errno == ECONNREFUSED && verbosity < 2) + return 0; /* silence reset by peer */ +#endif #ifdef ENETUNREACH if(errno == ENETUNREACH && verbosity < 2) return 0; /* silence it */ @@ -1648,6 +1684,16 @@ comm_point_tcp_handle_read(int fd, struct comm_point* c, int short_ok) } #endif #else /* USE_WINSOCK */ + if(WSAGetLastError() == WSAECONNREFUSED && verbosity < 2) + return 0; + if(WSAGetLastError() == WSAEHOSTDOWN && verbosity < 2) + return 0; + if(WSAGetLastError() == WSAEHOSTUNREACH && verbosity < 2) + return 0; + if(WSAGetLastError() == WSAENETDOWN && verbosity < 2) + return 0; + if(WSAGetLastError() == WSAENETUNREACH && verbosity < 2) + return 0; if(WSAGetLastError() == WSAECONNRESET) return 0; if(WSAGetLastError() == WSAEINPROGRESS) @@ -1681,7 +1727,8 @@ comm_point_tcp_handle_read(int fd, struct comm_point* c, int short_ok) (int)sldns_buffer_limit(c->buffer)); } - log_assert(sldns_buffer_remaining(c->buffer) > 0); + if(sldns_buffer_remaining(c->buffer) == 0) + log_err("in comm_point_tcp_handle_read buffer_remaining is not > 0 as expected, continuing with (harmless) 0 length recv"); r = recv(fd, (void*)sldns_buffer_current(c->buffer), sldns_buffer_remaining(c->buffer), 0); if(r == 0) { @@ -2197,6 +2244,8 @@ ssl_http_read_more(struct comm_point* c) log_crypto_err("could not SSL_read"); return 0; } + verbose(VERB_ALGO, "ssl http read more skip to %d + %d", + (int)sldns_buffer_position(c->buffer), (int)r); sldns_buffer_skip(c->buffer, (ssize_t)r); return 1; #else @@ -2233,6 +2282,8 @@ http_read_more(int fd, struct comm_point* c) &c->repinfo.addr, c->repinfo.addrlen); return 0; } + verbose(VERB_ALGO, "http read more skip to %d + %d", + (int)sldns_buffer_position(c->buffer), (int)r); sldns_buffer_skip(c->buffer, r); return 1; } @@ -2370,7 +2421,7 @@ http_process_chunk_header(struct comm_point* c) return 1; } -/** handle nonchunked data segment */ +/** handle nonchunked data segment, 0=fail, 1=wait */ static int http_nonchunk_segment(struct comm_point* c) { @@ -2379,7 +2430,7 @@ http_nonchunk_segment(struct comm_point* c) * we are looking to read tcp_byte_count more data * and then the transfer is done. */ size_t remainbufferlen; - size_t got_now = sldns_buffer_limit(c->buffer) - c->http_stored; + size_t got_now = sldns_buffer_limit(c->buffer); if(c->tcp_byte_count <= got_now) { /* done, this is the last data fragment */ c->http_stored = 0; @@ -2388,13 +2439,12 @@ http_nonchunk_segment(struct comm_point* c) (void)(*c->callback)(c, c->cb_arg, NETEVENT_DONE, NULL); return 1; } - c->tcp_byte_count -= got_now; /* if we have the buffer space, * read more data collected into the buffer */ remainbufferlen = sldns_buffer_capacity(c->buffer) - sldns_buffer_limit(c->buffer); - if(remainbufferlen >= c->tcp_byte_count || - remainbufferlen >= 2048) { + if(remainbufferlen+got_now >= c->tcp_byte_count || + remainbufferlen >= (c->ssl?16384:2048)) { size_t total = sldns_buffer_limit(c->buffer); sldns_buffer_clear(c->buffer); sldns_buffer_set_position(c->buffer, total); @@ -2404,6 +2454,7 @@ http_nonchunk_segment(struct comm_point* c) } /* call callback with this data amount, then * wait for more */ + c->tcp_byte_count -= got_now; c->http_stored = 0; sldns_buffer_set_position(c->buffer, 0); fptr_ok(fptr_whitelist_comm_point(c->callback)); @@ -2762,6 +2813,11 @@ comm_point_http_handle_read(int fd, struct comm_point* c) return 0; } + if(c->http_stored >= sldns_buffer_position(c->buffer)) { + /* read did not work but we wanted more data, there is + * no bytes to process now. */ + return 1; + } sldns_buffer_flip(c->buffer); /* if we are partway in a segment of data, position us at the point * where we left off previously */ @@ -3184,7 +3240,7 @@ void comm_point_raw_handle_callback(int ATTR_UNUSED(fd), struct comm_point* comm_point_create_udp(struct comm_base *base, int fd, sldns_buffer* buffer, - comm_point_callback_type* callback, void* callback_arg) + comm_point_callback_type* callback, void* callback_arg, struct unbound_socket* socket) { struct comm_point* c = (struct comm_point*)calloc(1, sizeof(struct comm_point)); @@ -3223,6 +3279,7 @@ comm_point_create_udp(struct comm_base *base, int fd, sldns_buffer* buffer, c->inuse = 0; c->callback = callback; c->cb_arg = callback_arg; + c->socket = socket; evbits = UB_EV_READ | UB_EV_PERSIST; /* ub_event stuff */ c->ev->ev = ub_event_new(base->eb->base, c->fd, evbits, @@ -3244,7 +3301,7 @@ comm_point_create_udp(struct comm_base *base, int fd, sldns_buffer* buffer, struct comm_point* comm_point_create_udp_ancil(struct comm_base *base, int fd, sldns_buffer* buffer, - comm_point_callback_type* callback, void* callback_arg) + comm_point_callback_type* callback, void* callback_arg, struct unbound_socket* socket) { struct comm_point* c = (struct comm_point*)calloc(1, sizeof(struct comm_point)); @@ -3283,6 +3340,7 @@ comm_point_create_udp_ancil(struct comm_base *base, int fd, #endif c->callback = callback; c->cb_arg = callback_arg; + c->socket = socket; evbits = UB_EV_READ | UB_EV_PERSIST; /* ub_event stuff */ c->ev->ev = ub_event_new(base->eb->base, c->fd, evbits, @@ -3305,7 +3363,7 @@ static struct comm_point* comm_point_create_tcp_handler(struct comm_base *base, struct comm_point* parent, size_t bufsize, struct sldns_buffer* spoolbuf, comm_point_callback_type* callback, - void* callback_arg) + void* callback_arg, struct unbound_socket* socket) { struct comm_point* c = (struct comm_point*)calloc(1, sizeof(struct comm_point)); @@ -3361,6 +3419,7 @@ comm_point_create_tcp_handler(struct comm_base *base, c->repinfo.c = c; c->callback = callback; c->cb_arg = callback_arg; + c->socket = socket; if(spoolbuf) { c->tcp_req_info = tcp_req_info_create(spoolbuf); if(!c->tcp_req_info) { @@ -3400,7 +3459,8 @@ static struct comm_point* comm_point_create_http_handler(struct comm_base *base, struct comm_point* parent, size_t bufsize, int harden_large_queries, uint32_t http_max_streams, char* http_endpoint, - comm_point_callback_type* callback, void* callback_arg) + comm_point_callback_type* callback, void* callback_arg, + struct unbound_socket* socket) { struct comm_point* c = (struct comm_point*)calloc(1, sizeof(struct comm_point)); @@ -3454,6 +3514,7 @@ comm_point_create_http_handler(struct comm_base *base, c->repinfo.c = c; c->callback = callback; c->cb_arg = callback_arg; + c->socket = socket; c->http_min_version = http_version_2; c->http2_stream_max_qbuffer_size = bufsize; @@ -3518,7 +3579,7 @@ comm_point_create_tcp(struct comm_base *base, int fd, int num, uint32_t http_max_streams, char* http_endpoint, struct tcl_list* tcp_conn_limit, size_t bufsize, struct sldns_buffer* spoolbuf, enum listen_type port_type, - comm_point_callback_type* callback, void* callback_arg) + comm_point_callback_type* callback, void* callback_arg, struct unbound_socket* socket) { struct comm_point* c = (struct comm_point*)calloc(1, sizeof(struct comm_point)); @@ -3568,6 +3629,7 @@ comm_point_create_tcp(struct comm_base *base, int fd, int num, #endif c->callback = NULL; c->cb_arg = NULL; + c->socket = socket; evbits = UB_EV_READ | UB_EV_PERSIST; /* ub_event stuff */ c->ev->ev = ub_event_new(base->eb->base, c->fd, evbits, @@ -3589,12 +3651,12 @@ comm_point_create_tcp(struct comm_base *base, int fd, int num, port_type == listen_type_ssl || port_type == listen_type_tcp_dnscrypt) { c->tcp_handlers[i] = comm_point_create_tcp_handler(base, - c, bufsize, spoolbuf, callback, callback_arg); + c, bufsize, spoolbuf, callback, callback_arg, socket); } else if(port_type == listen_type_http) { c->tcp_handlers[i] = comm_point_create_http_handler( base, c, bufsize, harden_large_queries, http_max_streams, http_endpoint, - callback, callback_arg); + callback, callback_arg, socket); } else { log_err("could not create tcp handler, unknown listen " @@ -3895,11 +3957,13 @@ comm_point_close(struct comm_point* c) /* close fd after removing from event lists, or epoll.. is messed up */ if(c->fd != -1 && !c->do_not_close) { +#ifdef USE_WINSOCK if(c->type == comm_tcp || c->type == comm_http) { /* delete sticky events for the fd, it gets closed */ ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_READ); ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_WRITE); } +#endif verbose(VERB_ALGO, "close fd %d", c->fd); sock_close(c->fd); } @@ -3970,20 +4034,26 @@ comm_point_send_reply(struct comm_reply *repinfo) comm_point_send_udp_msg(repinfo->c, buffer, (struct sockaddr*)&repinfo->addr, repinfo->addrlen, 0); #ifdef USE_DNSTAP - if(repinfo->c->dtenv != NULL && - repinfo->c->dtenv->log_client_response_messages) - dt_msg_send_client_response(repinfo->c->dtenv, - &repinfo->addr, repinfo->c->type, repinfo->c->buffer); + /* + * sending src (client)/dst (local service) addresses over DNSTAP from udp callback + */ + if(repinfo->c->dtenv != NULL && repinfo->c->dtenv->log_client_response_messages) { + log_addr(VERB_ALGO, "from local addr", (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->socket->addr->ai_addrlen); + log_addr(VERB_ALGO, "response to client", &repinfo->addr, repinfo->addrlen); + dt_msg_send_client_response(repinfo->c->dtenv, &repinfo->addr, (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->type, repinfo->c->buffer); + } #endif } else { #ifdef USE_DNSTAP - if(repinfo->c->tcp_parent->dtenv != NULL && - repinfo->c->tcp_parent->dtenv->log_client_response_messages) - dt_msg_send_client_response(repinfo->c->tcp_parent->dtenv, - &repinfo->addr, repinfo->c->type, - ( repinfo->c->tcp_req_info - ? repinfo->c->tcp_req_info->spool_buffer - : repinfo->c->buffer )); + /* + * sending src (client)/dst (local service) addresses over DNSTAP from TCP callback + */ + if(repinfo->c->tcp_parent->dtenv != NULL && repinfo->c->tcp_parent->dtenv->log_client_response_messages) { + log_addr(VERB_ALGO, "from local addr", (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->socket->addr->ai_addrlen); + log_addr(VERB_ALGO, "response to client", &repinfo->addr, repinfo->addrlen); + dt_msg_send_client_response(repinfo->c->tcp_parent->dtenv, &repinfo->addr, (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->type, + ( repinfo->c->tcp_req_info? repinfo->c->tcp_req_info->spool_buffer: repinfo->c->buffer )); + } #endif if(repinfo->c->tcp_req_info) { tcp_req_info_send_reply(repinfo->c->tcp_req_info); diff --git a/sbin/unwind/libunbound/util/netevent.h b/sbin/unwind/libunbound/util/netevent.h index 4a2aa1677c0..c79f99b3eb6 100644 --- a/sbin/unwind/libunbound/util/netevent.h +++ b/sbin/unwind/libunbound/util/netevent.h @@ -70,6 +70,7 @@ struct comm_point; struct comm_reply; struct tcl_list; struct ub_event_base; +struct unbound_socket; struct mesh_state; struct mesh_area; @@ -169,6 +170,8 @@ struct comm_point { /** if the event is added or not */ int event_added; + struct unbound_socket* socket; + /** file descriptor for communication point */ int fd; @@ -495,12 +498,13 @@ struct ub_event_base* comm_base_internal(struct comm_base* b); * @param buffer: shared buffer by UDP sockets from this thread. * @param callback: callback function pointer. * @param callback_arg: will be passed to your callback function. + * @param socket: and opened socket properties will be passed to your callback function. * @return: returns the allocated communication point. NULL on error. * Sets timeout to NULL. Turns off TCP options. */ struct comm_point* comm_point_create_udp(struct comm_base* base, int fd, struct sldns_buffer* buffer, - comm_point_callback_type* callback, void* callback_arg); + comm_point_callback_type* callback, void* callback_arg, struct unbound_socket* socket); /** * Create an UDP with ancillary data comm point. Calls malloc. @@ -511,12 +515,13 @@ struct comm_point* comm_point_create_udp(struct comm_base* base, * @param buffer: shared buffer by UDP sockets from this thread. * @param callback: callback function pointer. * @param callback_arg: will be passed to your callback function. + * @param socket: and opened socket properties will be passed to your callback function. * @return: returns the allocated communication point. NULL on error. * Sets timeout to NULL. Turns off TCP options. */ struct comm_point* comm_point_create_udp_ancil(struct comm_base* base, int fd, struct sldns_buffer* buffer, - comm_point_callback_type* callback, void* callback_arg); + comm_point_callback_type* callback, void* callback_arg, struct unbound_socket* socket); /** * Create a TCP listener comm point. Calls malloc. @@ -539,6 +544,7 @@ struct comm_point* comm_point_create_udp_ancil(struct comm_base* base, * to select handler type to use. * @param callback: callback function pointer for TCP handlers. * @param callback_arg: will be passed to your callback function. + * @param socket: and opened socket properties will be passed to your callback function. * @return: returns the TCP listener commpoint. You can find the * TCP handlers in the array inside the listener commpoint. * returns NULL on error. @@ -550,7 +556,7 @@ struct comm_point* comm_point_create_tcp(struct comm_base* base, struct tcl_list* tcp_conn_limit, size_t bufsize, struct sldns_buffer* spoolbuf, enum listen_type port_type, - comm_point_callback_type* callback, void* callback_arg); + comm_point_callback_type* callback, void* callback_arg, struct unbound_socket* socket); /** * Create an outgoing TCP commpoint. No file descriptor is opened, left at -1. diff --git a/sbin/unwind/libunbound/util/shm_side/shm_main.c b/sbin/unwind/libunbound/util/shm_side/shm_main.c index af8c5bcf370..51039abf3ed 100644 --- a/sbin/unwind/libunbound/util/shm_side/shm_main.c +++ b/sbin/unwind/libunbound/util/shm_side/shm_main.c @@ -130,6 +130,7 @@ int shm_main_init(struct daemon* daemon) /* Just release memory unused */ free(daemon->shm_info); + daemon->shm_info = NULL; return 0; } @@ -143,6 +144,7 @@ int shm_main_init(struct daemon* daemon) /* Just release memory unused */ free(daemon->shm_info); + daemon->shm_info = NULL; return 0; } @@ -156,6 +158,7 @@ int shm_main_init(struct daemon* daemon) /* Just release memory unused */ free(daemon->shm_info); + daemon->shm_info = NULL; return 0; } @@ -170,6 +173,7 @@ int shm_main_init(struct daemon* daemon) /* Just release memory unused */ free(daemon->shm_info); + daemon->shm_info = NULL; return 0; } @@ -210,6 +214,8 @@ void shm_main_shutdown(struct daemon* daemon) if (daemon->shm_info->ptr_arr) shmdt(daemon->shm_info->ptr_arr); + free(daemon->shm_info); + daemon->shm_info = NULL; #else (void)daemon; #endif /* HAVE_SHMGET */ diff --git a/sbin/unwind/libunbound/util/storage/lookup3.c b/sbin/unwind/libunbound/util/storage/lookup3.c index bb25eb433c9..c4026626c6d 100644 --- a/sbin/unwind/libunbound/util/storage/lookup3.c +++ b/sbin/unwind/libunbound/util/storage/lookup3.c @@ -53,21 +53,69 @@ on 1 byte), but shoehorning those bytes into integers efficiently is messy. #include "util/storage/lookup3.h" #include <stdio.h> /* defines printf for tests */ #include <time.h> /* defines time_t for timings in the test */ -/*#include <stdint.h> defines uint32_t etc (from config.h) */ -#include <sys/param.h> /* attempt to define endianness */ -#ifdef HAVE_SYS_TYPES_H -# include <sys/types.h> /* attempt to define endianness (solaris) */ -#endif -#if defined(linux) || defined(__OpenBSD__) + +/* + * If our build system provides endianness info, signalled by + * HAVE_TARGET_ENDIANNESS and the presence or absence of TARGET_IS_BIG_ENDIAN, + * use that. Otherwise try to work out the endianness. + */ +#if defined(HAVE_TARGET_ENDIANNESS) +# if defined(TARGET_IS_BIG_ENDIAN) +# define HASH_LITTLE_ENDIAN 0 +# define HASH_BIG_ENDIAN 1 +# else +# define HASH_LITTLE_ENDIAN 1 +# define HASH_BIG_ENDIAN 0 +# endif +#else +# include <sys/param.h> /* attempt to define endianness */ +# ifdef HAVE_SYS_TYPES_H +# include <sys/types.h> /* attempt to define endianness (solaris) */ +# endif +# if defined(linux) || defined(__OpenBSD__) # ifdef HAVE_ENDIAN_H # include <endian.h> /* attempt to define endianness */ # else # include <machine/endian.h> /* on older OpenBSD */ # endif -#endif -#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) -#include <sys/endian.h> /* attempt to define endianness */ -#endif +# endif +# if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) +# include <sys/endian.h> /* attempt to define endianness */ +# endif + /* + * My best guess at if you are big-endian or little-endian. This may + * need adjustment. + */ +# if (defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && \ + __BYTE_ORDER == __LITTLE_ENDIAN) || \ + (defined(i386) || defined(__i386__) || defined(__i486__) || \ + defined(__i586__) || defined(__i686__) || defined(vax) || defined(MIPSEL) || defined(__x86)) +# define HASH_LITTLE_ENDIAN 1 +# define HASH_BIG_ENDIAN 0 +# elif (defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && \ + __BYTE_ORDER == __BIG_ENDIAN) || \ + (defined(sparc) || defined(__sparc) || defined(__sparc__) || defined(POWERPC) || defined(mc68000) || defined(sel)) +# define HASH_LITTLE_ENDIAN 0 +# define HASH_BIG_ENDIAN 1 +# elif defined(_MACHINE_ENDIAN_H_) + /* test for machine_endian_h protects failure if some are empty strings */ +# if defined(_BYTE_ORDER) && defined(_BIG_ENDIAN) && _BYTE_ORDER == _BIG_ENDIAN +# define HASH_LITTLE_ENDIAN 0 +# define HASH_BIG_ENDIAN 1 +# endif +# if defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN) && _BYTE_ORDER == _LITTLE_ENDIAN +# define HASH_LITTLE_ENDIAN 1 +# define HASH_BIG_ENDIAN 0 +# endif /* _MACHINE_ENDIAN_H_ */ +# else +# define HASH_LITTLE_ENDIAN 0 +# define HASH_BIG_ENDIAN 0 +# endif +#endif /* defined(HAVE_TARGET_ENDIANNESS) */ + +#define hashsize(n) ((uint32_t)1<<(n)) +#define hashmask(n) (hashsize(n)-1) +#define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k)))) /* random initial value */ static uint32_t raninit = (uint32_t)0xdeadbeef; @@ -79,40 +127,6 @@ hash_set_raninit(uint32_t v) } /* - * My best guess at if you are big-endian or little-endian. This may - * need adjustment. - */ -#if (defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && \ - __BYTE_ORDER == __LITTLE_ENDIAN) || \ - (defined(i386) || defined(__i386__) || defined(__i486__) || \ - defined(__i586__) || defined(__i686__) || defined(vax) || defined(MIPSEL) || defined(__x86)) -# define HASH_LITTLE_ENDIAN 1 -# define HASH_BIG_ENDIAN 0 -#elif (defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && \ - __BYTE_ORDER == __BIG_ENDIAN) || \ - (defined(sparc) || defined(__sparc) || defined(__sparc__) || defined(POWERPC) || defined(mc68000) || defined(sel)) -# define HASH_LITTLE_ENDIAN 0 -# define HASH_BIG_ENDIAN 1 -#elif defined(_MACHINE_ENDIAN_H_) -/* test for machine_endian_h protects failure if some are empty strings */ -# if defined(_BYTE_ORDER) && defined(_BIG_ENDIAN) && _BYTE_ORDER == _BIG_ENDIAN -# define HASH_LITTLE_ENDIAN 0 -# define HASH_BIG_ENDIAN 1 -# endif -# if defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN) && _BYTE_ORDER == _LITTLE_ENDIAN -# define HASH_LITTLE_ENDIAN 1 -# define HASH_BIG_ENDIAN 0 -# endif /* _MACHINE_ENDIAN_H_ */ -#else -# define HASH_LITTLE_ENDIAN 0 -# define HASH_BIG_ENDIAN 0 -#endif - -#define hashsize(n) ((uint32_t)1<<(n)) -#define hashmask(n) (hashsize(n)-1) -#define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k)))) - -/* ------------------------------------------------------------------------------- mix -- mix 3 32-bit values reversibly. diff --git a/sbin/unwind/libunbound/util/ub_event_pluggable.c b/sbin/unwind/libunbound/util/ub_event_pluggable.c index 235bba6ba79..4280d4db1a3 100644 --- a/sbin/unwind/libunbound/util/ub_event_pluggable.c +++ b/sbin/unwind/libunbound/util/ub_event_pluggable.c @@ -666,7 +666,8 @@ ub_winsock_tcp_wouldblock(struct ub_event* ev, int eventbits) fptr_ok(ev->vmt != &default_event_vmt || ev->vmt->winsock_tcp_wouldblock == my_winsock_tcp_wouldblock); - (*ev->vmt->winsock_tcp_wouldblock)(ev, eventbits); + if (ev->vmt->winsock_tcp_wouldblock) + (*ev->vmt->winsock_tcp_wouldblock)(ev, eventbits); } } |