diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2021-03-05 10:08:22 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2021-03-05 10:08:22 +0900 |
commit | dfd19f19c019e044f97e46081a6960614c0cf3f9 (patch) | |
tree | 51235119408ad6039f4a12286aba64e25176254b /src | |
parent | be7885cb38b145fc4361200b3351fc2c79e35f3c (diff) | |
download | wget-dfd19f19c019e044f97e46081a6960614c0cf3f9.tar.gz wget-dfd19f19c019e044f97e46081a6960614c0cf3f9.tar.bz2 wget-dfd19f19c019e044f97e46081a6960614c0cf3f9.zip |
Imported Upstream version 1.19.5upstream/1.19.5
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/Makefile.in | 26 | ||||
-rw-r--r-- | src/config.h.in | 16 | ||||
-rw-r--r-- | src/css-tokens.h | 58 | ||||
-rw-r--r-- | src/css-url.c | 20 | ||||
-rw-r--r-- | src/css.c | 6443 | ||||
-rw-r--r-- | src/css.l | 184 | ||||
-rw-r--r-- | src/css_.c | 6443 | ||||
-rw-r--r-- | src/ftp-basic.c | 11 | ||||
-rw-r--r-- | src/ftp-ls.c | 124 | ||||
-rw-r--r-- | src/ftp.c | 13 | ||||
-rw-r--r-- | src/ftp.h | 5 | ||||
-rw-r--r-- | src/gnutls.c | 78 | ||||
-rw-r--r-- | src/host.c | 2 | ||||
-rw-r--r-- | src/hsts.c | 19 | ||||
-rw-r--r-- | src/html-url.c | 36 | ||||
-rw-r--r-- | src/html-url.h | 6 | ||||
-rw-r--r-- | src/http.c | 30 | ||||
-rw-r--r-- | src/init.c | 173 | ||||
-rw-r--r-- | src/init.h | 2 | ||||
-rw-r--r-- | src/iri.c | 4 | ||||
-rw-r--r-- | src/iri.h | 2 | ||||
-rw-r--r-- | src/log.c | 13 | ||||
-rw-r--r-- | src/main.c | 75 | ||||
-rw-r--r-- | src/metalink.c | 16 | ||||
-rw-r--r-- | src/mswindows.c | 3 | ||||
-rw-r--r-- | src/netrc.c | 89 | ||||
-rw-r--r-- | src/netrc.h | 14 | ||||
-rw-r--r-- | src/openssl.c | 56 | ||||
-rw-r--r-- | src/options.h | 6 | ||||
-rw-r--r-- | src/recur.c | 5 | ||||
-rw-r--r-- | src/res.c | 4 | ||||
-rw-r--r-- | src/test.c | 111 | ||||
-rw-r--r-- | src/test.h | 68 | ||||
-rw-r--r-- | src/url.c | 106 | ||||
-rw-r--r-- | src/utils.c | 51 | ||||
-rw-r--r-- | src/utils.h | 5 | ||||
-rw-r--r-- | src/warc.c | 8 | ||||
-rw-r--r-- | src/wget.h | 16 |
39 files changed, 4918 insertions, 9425 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index d26b014..825a156 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -101,7 +101,7 @@ distclean-local: rm -f css.c css_.c check_LIBRARIES = libunittest.a -libunittest_a_SOURCES = $(wget_SOURCES) test.c build_info.c test.h +libunittest_a_SOURCES = $(wget_SOURCES) build_info.c nodist_libunittest_a_SOURCES = version.c libunittest_a_CPPFLAGS = -DTESTING "-I$(top_builddir)/lib" "-I$(top_srcdir)/lib" libunittest_a_LIBADD = $(LIBOBJS) diff --git a/src/Makefile.in b/src/Makefile.in index d7a66b7..ce06a96 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -216,8 +216,9 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strpbrk.m4 \ $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtok_r.m4 \ - $(top_srcdir)/m4/strtoll.m4 $(top_srcdir)/m4/symlink.m4 \ - $(top_srcdir)/m4/sys_file_h.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \ + $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \ + $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_file_h.m4 \ + $(top_srcdir)/m4/sys_ioctl_h.m4 \ $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ @@ -263,7 +264,7 @@ am__libunittest_a_SOURCES_DIST = connect.c convert.c cookies.c ftp.c \ http-ntlm.h init.h log.h mswindows.h netrc.h options.h \ progress.h ptimer.h recur.h res.h retr.h spider.h ssl.h \ sysdep.h url.h warc.h utils.h wget.h iri.h exits.h version.h \ - metalink.h xattr.h test.c test.h + metalink.h xattr.h @WITH_XATTR_TRUE@am__objects_1 = libunittest_a-xattr.$(OBJEXT) @IRI_IS_ENABLED_TRUE@am__objects_2 = libunittest_a-iri.$(OBJEXT) @METALINK_IS_ENABLED_TRUE@am__objects_3 = \ @@ -288,7 +289,6 @@ am__objects_4 = libunittest_a-connect.$(OBJEXT) \ libunittest_a-build_info.$(OBJEXT) $(am__objects_2) \ $(am__objects_3) am_libunittest_a_OBJECTS = $(am__objects_4) \ - libunittest_a-test.$(OBJEXT) \ libunittest_a-build_info.$(OBJEXT) nodist_libunittest_a_OBJECTS = libunittest_a-version.$(OBJEXT) libunittest_a_OBJECTS = $(am_libunittest_a_OBJECTS) \ @@ -1080,6 +1080,7 @@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ LIB_CRYPTO = @LIB_CRYPTO@ +LIB_FUZZING_ENGINE = @LIB_FUZZING_ENGINE@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POSIX_SPAWN = @LIB_POSIX_SPAWN@ LIB_SELECT = @LIB_SELECT@ @@ -1495,7 +1496,7 @@ LDADD = $(LIBOBJS) ../lib/libgnu.a $(GETADDRINFO_LIB) $(HOSTENT_LIB)\ AM_CPPFLAGS = -I$(top_builddir)/lib -I$(top_srcdir)/lib ESCAPEQUOTE = sed -e 's/[\\"]/\\&/g' -e 's/\\"/"/' -e 's/\\";$$/";/' check_LIBRARIES = libunittest.a -libunittest_a_SOURCES = $(wget_SOURCES) test.c build_info.c test.h +libunittest_a_SOURCES = $(wget_SOURCES) build_info.c nodist_libunittest_a_SOURCES = version.c libunittest_a_CPPFLAGS = -DTESTING "-I$(top_builddir)/lib" "-I$(top_srcdir)/lib" libunittest_a_LIBADD = $(LIBOBJS) @@ -1661,7 +1662,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libunittest_a-res.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libunittest_a-retr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libunittest_a-spider.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libunittest_a-test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libunittest_a-url.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libunittest_a-utils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libunittest_a-version.Po@am__quote@ @@ -2145,20 +2145,6 @@ libunittest_a-metalink.obj: metalink.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libunittest_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libunittest_a-metalink.obj `if test -f 'metalink.c'; then $(CYGPATH_W) 'metalink.c'; else $(CYGPATH_W) '$(srcdir)/metalink.c'; fi` -libunittest_a-test.o: test.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libunittest_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libunittest_a-test.o -MD -MP -MF $(DEPDIR)/libunittest_a-test.Tpo -c -o libunittest_a-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libunittest_a-test.Tpo $(DEPDIR)/libunittest_a-test.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test.c' object='libunittest_a-test.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libunittest_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libunittest_a-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c - -libunittest_a-test.obj: test.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libunittest_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libunittest_a-test.obj -MD -MP -MF $(DEPDIR)/libunittest_a-test.Tpo -c -o libunittest_a-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libunittest_a-test.Tpo $(DEPDIR)/libunittest_a-test.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test.c' object='libunittest_a-test.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libunittest_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libunittest_a-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi` - libunittest_a-version.o: version.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libunittest_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libunittest_a-version.o -MD -MP -MF $(DEPDIR)/libunittest_a-version.Tpo -c -o libunittest_a-version.o `test -f 'version.c' || echo '$(srcdir)/'`version.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libunittest_a-version.Tpo $(DEPDIR)/libunittest_a-version.Po diff --git a/src/config.h.in b/src/config.h.in index 5a51490..3179044 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -168,6 +168,9 @@ /* Define to 1 if futimesat mishandles a NULL file name. */ #undef FUTIMESAT_NULL_BUG +/* Define to 1 if this is a fuzzing build */ +#undef FUZZING + /* Define to the type of elements in the array set by `getgroups'. Usually this is either `int' or `gid_t'. */ #undef GETGROUPS_T @@ -553,11 +556,11 @@ /* Define to 1 if you have the `catgets' function. */ #undef HAVE_CATGETS -/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the +/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT -/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in +/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE @@ -785,6 +788,9 @@ don't. */ #undef HAVE_DECL___FSETLOCKING +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + /* Define to 1 if you have the `drand48' function. */ #undef HAVE_DRAND48 @@ -806,6 +812,9 @@ /* Define to 1 if you have the `flockfile' function. */ #undef HAVE_FLOCKFILE +/* Define to 1 if you have the `fmemopen' function. */ +#undef HAVE_FMEMOPEN + /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ #undef HAVE_FSEEKO @@ -2002,6 +2011,9 @@ /* Define to 1 if you have the `strtok_r' function. */ #undef HAVE_STRTOK_R +/* Define to 1 if you have the `strtol' function. */ +#undef HAVE_STRTOL + /* Define to 1 if you have the `strtoll' function. */ #undef HAVE_STRTOLL diff --git a/src/css-tokens.h b/src/css-tokens.h index 381dbd9..109ac29 100644 --- a/src/css-tokens.h +++ b/src/css-tokens.h @@ -32,36 +32,34 @@ as that of the covered work. */ #define CSS_TOKENS_H enum { - CSSEOF, - S, - CDO, - CDC, - INCLUDES, - DASHMATCH, - LBRACE, - PLUS, - GREATER, - COMMA, - STRING, - INVALID, - IDENT, - HASH, - IMPORT_SYM, - PAGE_SYM, - MEDIA_SYM, - CHARSET_SYM, - IMPORTANT_SYM, - EMS, - EXS, - LENGTH, - ANGLE, - TIME, - FREQ, - DIMENSION, - PERCENTAGE, - NUMBER, - URI, - FUNCTION + CSSEOF = 0, + S = 1, + CDO = 2, + CDC = 3, + INCLUDES = 4, + DASHMATCH = 5, + STRING = 6, + BAD_STRING = 7, + IDENT = 8, + HASH = 9, + IMPORT_SYM = 10, + PAGE_SYM = 11, + MEDIA_SYM = 12, + CHARSET_SYM = 13, + IMPORTANT_SYM = 14, + EMS = 15, + EXS = 16, + LENGTH = 17, + ANGLE = 18, + TIME = 19, + FREQ = 20, + DIMENSION = 21, + PERCENTAGE = 22, + NUMBER = 23, + URI = 24, + BAD_URI = 25, + FUNCTION = 26, + COMMENT = 27 }; #endif /* CSS_TOKENS_H */ diff --git a/src/css-url.c b/src/css-url.c index 1d973a0..c4f7761 100644 --- a/src/css-url.c +++ b/src/css-url.c @@ -61,6 +61,7 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; extern YY_BUFFER_STATE yy_scan_bytes (const char *bytes,int len ); extern void yy_delete_buffer (YY_BUFFER_STATE b); extern int yylex (void); +extern void yylex_destroy(void); /* Given a detected URI token, get only the URI specified within. @@ -74,13 +75,17 @@ extern int yylex (void); static char * get_uri_string (const char *at, int *pos, int *length) { + if (*length < 4) + return NULL; + if (0 != strncasecmp (at + *pos, "url(", 4)) return NULL; *pos += 4; *length -= 5; /* url() */ + /* skip leading space */ - while (isspace (at[*pos])) + while (*length > 0 && isspace (at[*pos])) { (*pos)++; if (--(*length) == 0) @@ -88,17 +93,21 @@ get_uri_string (const char *at, int *pos, int *length) } /* skip trailing space */ - while (isspace (at[*pos + *length - 1])) + while (*length > 0 && isspace (at[*pos + *length - 1])) { (*length)--; } + /* trim off quotes */ - if (at[*pos] == '\'' || at[*pos] == '"') + if (*length >= 2 && (at[*pos] == '\'' || at[*pos] == '"')) { (*pos)++; *length -= 2; } + if (*length <= 0) + return NULL; + return xstrndup (at + *pos, *length); } @@ -139,7 +148,7 @@ get_urls_css (struct map_context *ctx, int offset, int buf_length) { uri = get_uri_string (ctx->text, &pos, &length); } - else + else if (length >= 2) { /* cut out quote characters */ pos++; @@ -148,6 +157,8 @@ get_urls_css (struct map_context *ctx, int offset, int buf_length) memcpy (uri, yytext + 1, length); uri[length] = '\0'; } + else + uri = NULL; if (uri) { @@ -192,6 +203,7 @@ get_urls_css (struct map_context *ctx, int offset, int buf_length) } yy_delete_buffer(b); + yylex_destroy(); DEBUGP (("\n")); } @@ -1,6 +1,9 @@ -#line 1 "css.c" +#line 2 "css.c" +/* config.h must precede flex's inclusion of <stdio.h> + in order for its _GNU_SOURCE definition to take effect. */ +#include <config.h> -#line 3 "css.c" +#line 7 "css.c" #define YY_INT_ALIGNED short int @@ -355,8 +358,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 42 -#define YY_END_OF_BUFFER 43 +#define YY_NUM_RULES 41 +#define YY_END_OF_BUFFER 42 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -364,134 +367,129 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[1153] = +static const flex_int16_t yy_accept[1103] = { 0, - 0, 0, 43, 41, 1, 1, 41, 12, 41, 12, - 8, 10, 41, 41, 41, 37, 41, 9, 41, 13, - 13, 41, 7, 41, 41, 0, 8, 10, 0, 9, - 7, 0, 0, 0, 12, 11, 0, 14, 0, 12, - 0, 0, 13, 0, 37, 0, 36, 0, 0, 37, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 32, 0, 0, 0, 0, 0, 0, 40, 13, - 0, 13, 13, 13, 6, 5, 0, 0, 0, 12, - 12, 12, 14, 14, 12, 12, 12, 4, 0, 0, - 0, 35, 0, 23, 0, 35, 0, 20, 21, 0, - - 35, 0, 33, 0, 25, 0, 35, 0, 24, 31, - 0, 27, 26, 22, 0, 35, 0, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 32, 0, 0, 0, 0, 0, 13, 13, 13, - 13, 13, 0, 0, 0, 0, 0, 12, 12, 12, - 14, 14, 12, 12, 12, 0, 2, 35, 35, 35, - 35, 35, 23, 28, 0, 35, 35, 35, 35, 35, - 35, 35, 35, 20, 21, 35, 0, 35, 35, 35, - 35, 35, 35, 35, 33, 35, 35, 35, 25, 34, - 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, - - 24, 31, 35, 35, 35, 35, 35, 26, 22, 29, - 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 32, 35, 35, 3, 0, 0, 0, 0, 13, - 13, 40, 13, 0, 0, 0, 12, 14, 12, 0, - 0, 35, 35, 35, 35, 35, 23, 23, 35, 35, - 35, 28, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 20, 21, 20, 30, 0, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 33, 33, 35, 35, - 35, 25, 25, 35, 35, 35, 34, 35, 35, 35, - - 35, 35, 35, 35, 35, 35, 24, 31, 24, 35, - 35, 35, 35, 35, 27, 26, 22, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 32, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 27, 35, 35, 35, 32, 32, 0, 0, - 0, 16, 13, 0, 0, 0, 0, 39, 0, 0, - 13, 0, 0, 0, 0, 0, 12, 14, 12, 35, - 35, 35, 35, 23, 23, 23, 23, 35, 35, 35, - - 28, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 20, 21, 20, 20, 20, 21, 21, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 33, 33, 33, 33, - 35, 35, 35, 25, 25, 25, 25, 35, 35, 35, - 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 24, 31, 24, 24, 24, 31, 31, - 35, 35, 35, 35, 35, 27, 26, 22, 27, 27, - 26, 26, 22, 22, 35, 35, 35, 29, 35, 35, - 35, 35, 35, 35, 29, 35, 35, 35, 35, 35, - - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 32, 35, 35, 35, 27, 35, 29, 0, 0, - 17, 13, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 39, 0, 0, 0, 13, 0, 12, - 14, 12, 35, 35, 35, 35, 23, 23, 35, 35, - 35, 28, 28, 28, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 20, 21, 20, 35, 35, 35, 30, - 35, 35, 35, 35, 35, 35, 30, 35, 35, 35, - 35, 35, 30, 35, 35, 35, 33, 33, 35, 35, - 35, 25, 25, 35, 35, 35, 34, 34, 34, 34, - - 35, 35, 35, 35, 35, 35, 35, 35, 35, 24, - 31, 24, 35, 35, 35, 35, 35, 27, 26, 22, - 35, 35, 35, 29, 29, 29, 35, 35, 35, 35, - 29, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 32, 35, 35, 35, - 27, 35, 29, 0, 15, 13, 0, 0, 0, 38, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 39, 0, 0, 0, 0, 0, 13, 0, 12, 14, - 12, 35, 35, 35, 23, 23, 35, 35, 35, 28, - 35, 35, 35, 35, 35, 35, 35, 20, 21, 20, - - 35, 35, 35, 30, 30, 30, 35, 35, 35, 35, - 35, 35, 35, 35, 30, 35, 35, 33, 33, 35, - 35, 25, 25, 35, 35, 35, 34, 34, 35, 35, - 35, 35, 35, 35, 35, 24, 31, 24, 35, 35, - 35, 35, 27, 26, 22, 35, 35, 35, 29, 35, - 35, 35, 29, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 32, 35, 35, 35, 27, 35, - 29, 0, 13, 0, 0, 0, 0, 39, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, - - 39, 0, 0, 0, 0, 0, 0, 35, 23, 23, - 35, 35, 28, 35, 20, 21, 20, 35, 35, 35, - 30, 35, 35, 35, 35, 35, 30, 33, 33, 25, - 25, 35, 35, 34, 34, 35, 24, 31, 24, 27, - 26, 22, 35, 35, 29, 35, 29, 18, 0, 0, - 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, - 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, - 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, - 39, 0, 0, 0, 0, 0, 19, 28, 35, 35, - - 30, 35, 34, 34, 29, 0, 0, 0, 0, 39, - 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, - 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, - 0, 30, 0, 0, 0, 0, 0, 0, 0, 39, - 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 42, 40, 1, 1, 40, 10, 40, 10, + 40, 40, 40, 35, 40, 40, 11, 11, 40, 40, + 40, 1, 0, 0, 0, 0, 10, 9, 10, 12, + 0, 0, 10, 10, 0, 11, 0, 35, 4, 34, + 0, 0, 35, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 30, 0, 0, 0, 0, 0, + 0, 0, 39, 11, 0, 11, 11, 11, 8, 7, + 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, + 0, 12, 12, 10, 10, 10, 6, 4, 4, 0, + 33, 0, 21, 0, 33, 0, 18, 19, 0, 33, + + 0, 31, 0, 23, 0, 33, 0, 22, 29, 0, + 25, 24, 20, 0, 33, 0, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, + 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10, 10, 10, 0, 0, 12, 12, 10, + 10, 10, 4, 2, 33, 33, 33, 33, 33, 21, + 26, 0, 33, 33, 33, 33, 33, 33, 33, 33, + 18, 19, 33, 0, 33, 33, 33, 33, 33, 33, + + 33, 31, 33, 33, 33, 23, 32, 0, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 22, 29, 33, + 33, 33, 33, 33, 24, 20, 27, 0, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 30, 33, + 33, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 11, 38, 11, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10, 0, 3, 12, 10, 4, 4, 33, + + 33, 33, 33, 33, 21, 21, 33, 33, 33, 26, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 18, + 19, 18, 28, 0, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 31, 31, 33, 33, 33, 23, + 23, 33, 33, 33, 32, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 22, 29, 22, 33, 33, 33, + 33, 33, 25, 24, 20, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 30, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 25, 33, 33, 33, 30, 30, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 11, 38, + 38, 38, 38, 37, 0, 11, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 12, 10, 33, 33, 33, 33, 21, + 21, 21, 21, 33, 33, 33, 26, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 18, 19, + + 18, 18, 18, 19, 19, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 31, 31, 31, 31, 33, 33, 33, 23, + 23, 23, 23, 33, 33, 33, 32, 32, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 22, + 29, 22, 22, 22, 29, 29, 33, 33, 33, 33, + 33, 25, 24, 20, 25, 25, 24, 24, 20, 20, + 33, 33, 33, 27, 33, 33, 33, 33, 33, 33, + 27, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 30, 33, 33, + + 33, 25, 33, 27, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 11, 38, 38, 38, + 38, 38, 38, 38, 38, 0, 38, 37, 38, 38, + 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 12, 10, 33, 33, 33, + 33, 21, 21, 33, 33, 33, 26, 26, 26, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 18, 19, + 18, 33, 33, 33, 28, 33, 33, 33, 33, 33, + + 33, 28, 33, 33, 33, 33, 33, 28, 33, 33, + 33, 31, 31, 33, 33, 33, 23, 23, 33, 33, + 33, 32, 32, 32, 32, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 22, 29, 22, 33, 33, 33, + 33, 33, 25, 24, 20, 33, 33, 33, 27, 27, + 27, 33, 33, 33, 33, 27, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 30, 33, 33, 33, 25, 33, 27, 0, 13, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 14, 0, 0, 0, 0, 11, 38, 36, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 0, + 38, 38, 37, 38, 0, 11, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10, 12, + 10, 33, 33, 33, 21, 21, 33, 33, 33, 26, + 33, 33, 33, 33, 33, 33, 33, 18, 19, 18, + 33, 33, 33, 28, 28, 28, 33, 33, 33, 33, + 33, 33, 33, 33, 28, 33, 33, 31, 31, 33, + 33, 23, 23, 33, 33, 33, 32, 32, 33, 33, + 33, 33, 33, 33, 33, 22, 29, 22, 33, 33, + + 33, 33, 25, 24, 20, 33, 33, 33, 27, 33, + 33, 33, 27, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 30, 33, 33, 33, 25, 33, + 27, 0, 0, 0, 0, 13, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, 0, 0, 0, 14, + 14, 0, 11, 38, 38, 38, 38, 38, 38, 38, + 0, 0, 38, 38, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 21, 21, 33, 33, + 26, 33, 18, 19, 18, 33, 33, 33, 28, 33, + 33, 33, 33, 33, 28, 31, 31, 23, 23, 33, + + 33, 32, 32, 33, 22, 29, 22, 25, 24, 20, + 33, 33, 27, 33, 27, 16, 0, 13, 0, 0, + 0, 0, 0, 15, 15, 0, 0, 38, 38, 38, + 0, 0, 0, 0, 38, 17, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 26, 33, 33, + 28, 33, 32, 32, 27, 0, 13, 13, 0, 0, + 38, 38, 38, 0, 0, 38, 0, 0, 0, 17, + 0, 0, 0, 0, 0, 0, 0, 28, 0, 38, + 38, 38, 0, 38, 0, 17, 0, 0, 0, 0, + 38, 38, 0, 38, 0, 17, 17, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, - 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ; @@ -501,2254 +499,1097 @@ static const YY_CHAR yy_ec[256] = 1, 4, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 7, 8, 9, 10, 11, 10, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 10, 10, 31, - 32, 33, 10, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 44, 51, 52, 53, 54, 44, 44, 55, 44, 56, - 10, 57, 10, 10, 44, 10, 58, 59, 60, 61, - - 62, 40, 63, 64, 65, 44, 66, 67, 68, 69, - 70, 71, 44, 72, 73, 74, 75, 44, 44, 76, - 44, 77, 78, 79, 10, 80, 1, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81 + 14, 15, 10, 10, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 10, 10, 29, + 30, 31, 10, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 42, 49, 50, 51, 52, 42, 42, 53, 42, 54, + 10, 55, 10, 10, 42, 10, 56, 57, 58, 59, + + 60, 61, 62, 63, 64, 42, 65, 66, 67, 68, + 69, 70, 42, 71, 72, 73, 74, 42, 42, 75, + 42, 76, 10, 77, 10, 78, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79 } ; -static const YY_CHAR yy_meta[82] = +static const YY_CHAR yy_meta[80] = { 0, - 1, 2, 3, 3, 3, 2, 4, 5, 4, 4, - 4, 5, 6, 4, 4, 4, 4, 7, 4, 4, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 4, 4, 4, 4, 9, 9, 9, 9, 9, 9, + 1, 2, 3, 3, 3, 2, 2, 4, 2, 2, + 2, 4, 5, 2, 2, 6, 2, 7, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, + 2, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 4, 4, 4, - 9 + 9, 9, 9, 9, 9, 9, 2, 2, 9 } ; -static const flex_int16_t yy_base[1307] = +static const flex_int16_t yy_base[1137] = { 0, - 0, 0, 3517,17264, 80, 85, 104, 84, 3459, 81, - 17264,17264, 76, 127, 3494, 159, 3501,17264, 200, 82, - 225, 277,17264, 3474, 3462, 250,17264,17264, 3478,17264, - 17264, 125, 3456, 51, 103,17264, 337, 3413, 379, 87, - 439, 3436, 102, 481, 265, 3453,17264, 3400, 297, 0, - 3399, 57, 64, 204, 65, 115, 200, 78, 377, 294, - 108, 3398, 543, 3416, 70, 93, 84, 204,17264, 119, - 604, 365, 228, 665,17264,17264, 3418, 3417, 192, 273, - 326, 726, 3363, 787, 105, 368, 848,17264, 3404, 159, - 890, 3361, 943, 3353, 985, 328, 363, 3352, 3351, 630, - - 275, 875, 3321, 690, 3320, 465, 336, 1008, 3319, 3318, - 1013, 3310, 3308, 3307, 1036, 390, 468, 3306, 1111, 427, - 1069, 501, 397, 715, 207, 414, 425, 595, 877, 720, - 603, 3297, 3335, 238, 386, 318, 386, 295, 1172, 296, - 825, 1214, 3326, 229, 3324, 328, 410, 337, 480, 1256, - 188, 1298, 332, 642, 1340, 3323, 1387, 3275, 1464, 460, - 385, 485, 3274, 3260, 1384, 654, 3289, 3283, 774, 611, - 3266, 612, 3265, 3223, 3215, 721, 812, 329, 3248, 3240, - 639, 686, 618, 675, 3204, 747, 682, 742, 3189, 3180, - 1136, 809, 3207, 3197, 741, 836, 768, 3199, 781, 3188, - - 3141, 3132, 963, 3164, 249, 3163, 357, 3129, 3122, 3121, - 1053, 868, 3149, 3147, 427, 1506, 971, 1412, 1099, 820, - 1161, 1567, 1550, 1340, 1572, 1580, 1598, 1628, 1647, 1719, - 1794, 1212, 1674, 1737,17264, 463, 771, 670, 793, 891, - 1851, 1745, 1893, 3136, 3135, 840, 1935, 1977, 2019, 3128, - 406, 840, 2061, 898, 829, 860, 1064, 1150, 1027, 3112, - 3104, 3073, 1050, 3102, 3093, 1454, 1198, 875, 3089, 890, - 3087, 1253, 1258, 1295, 3048, 2103, 1081, 3081, 3079, 918, - 3071, 3068, 1503, 931, 942, 958, 1300, 1305, 1326, 955, - 956, 1379, 1424, 1030, 984, 991, 3021, 1327, 3043, 3036, - - 1656, 1396, 998, 3040, 1050, 3039, 1472, 1477, 1510, 1661, - 3032, 655, 3030, 778, 1545, 1724, 1758, 1385, 3021, 2981, - 1424, 2983, 2977, 1844, 2145, 1680, 1806, 1871, 1106, 1913, - 2206, 2189, 2211, 2218, 2235, 2291, 2304, 2317, 2389, 2464, - 1974, 2323, 2331, 1035, 1687, 1209, 1559, 1843, 1733, 2295, - 1109, 1554, 1102, 1441, 1386, 1415, 1163, 1653, 1646, 2215, - 2329, 2359, 1786, 1171, 1606, 2403, 2932, 863, 1194, 1217, - 1145,17264, 2502, 2492, 2563, 712, 748,17264, 2576, 2633, - 2713, 2973, 756, 2954, 820, 1276, 2774, 2835, 2915, 2957, - 1644, 1184, 1227, 1765, 1835, 2878, 971, 1647, 2900, 2887, - - 1856, 1756, 2888, 2887, 2513, 1331, 2185, 1921, 1252, 2840, - 1294, 2839, 1979, 1984, 2016, 2810, 973, 2798, 1028, 2002, - 2829, 2826, 2003, 2786, 2784, 2448, 1587, 2770, 2740, 2058, - 1523, 2099, 1358, 1797, 1461, 1505, 2063, 2068, 2688, 1284, - 2082, 1548, 1560, 2108, 2142, 2687, 1534, 2132, 1585, 1700, - 2194, 2311, 2222, 2704, 2702, 2405, 1729, 2173, 2328, 1714, - 2701, 1765, 2608, 2469, 2474, 2541, 2561, 1680, 2560, 1688, - 2530, 2565, 1613, 2563, 1753, 2595, 2600, 2605, 2529, 1697, - 2528, 1788, 2502, 2047, 2234, 2527, 2495, 2610, 2320, 2492, - 2486, 2724, 1847, 2216, 0, 2999, 1899, 2730, 2598, 2791, - - 2821, 3005, 3038, 2998, 3045, 3065, 3077, 3084, 3133, 3205, - 3156, 2955, 3161, 3170, 2905, 1941, 3167, 2124, 1804, 1361, - 17264, 3261, 3227, 3322, 857, 3341, 3377, 918, 3437, 3499, - 3354, 3518, 3531, 3556, 3575, 3631, 3693, 3773, 1975, 3834, - 3876, 3937, 3979, 148, 1973, 2014, 2625, 2718, 2352, 2474, - 2465, 2820, 2427, 2048, 250, 2433, 2430, 3251, 2274, 2015, - 2389, 2056, 2371, 2920, 2961, 3105, 2396, 2372, 2351, 3151, - 2413, 2348, 2335, 3272, 2098, 2729, 0, 504, 2308, 2301, - 3386, 2382, 0, 620, 2060, 2119, 3264, 3300, 960, 2139, - 2140, 3346, 3367, 2250, 2246, 2309, 3381, 3391, 2227, 2132, - - 1104, 2241, 2231, 3544, 2508, 2337, 2221, 2364, 2211, 3420, - 3425, 3443, 2567, 2201, 1779, 2163, 1799, 3448, 3476, 3481, - 2486, 2161, 2001, 3486, 1968, 2187, 1118, 1986, 1970, 3624, - 0, 4021, 3579, 1350, 3790, 2424, 3819, 4027, 3876, 4018, - 3978, 3922, 4068, 4089, 4094, 4102, 3644, 4110, 4124, 2248, - 0, 2708, 0, 1379,17264, 4177, 1976, 4239, 4258,17264, - 1920, 1405, 2398, 4295, 1061, 3072, 4356, 1887, 4265, 4418, - 1878, 4475, 4532, 4589, 4288, 4669, 4730, 1548, 3784, 4772, - 4814, 4856, 2420, 2449, 3670, 3778, 1918, 1855, 1835, 3841, - 1791, 1790, 4115, 2512, 1763, 2709, 1744, 3915, 3951, 3983, - - 2767, 1721, 1711, 4180, 1661, 2261, 2081, 1689, 1675, 4220, - 1661, 1631, 4307, 2726, 0, 2726, 2770, 4185, 4225, 2768, - 2804, 4334, 4344, 2304, 2912, 2913, 4367, 4395, 1618, 1596, - 4405, 2953, 1582, 3038, 1555, 4400, 4437, 4442, 1535, 1878, - 1515, 2227, 4447, 4452, 4461, 2388, 1496, 1495, 4466, 1442, - 1432, 4501, 0, 4494, 4506, 4511, 4853, 4862, 4769, 4518, - 4682, 4899, 4920, 4524, 4812, 4934, 4956, 4979, 4984, 5012, - 5028, 1440, 4574, 1371, 1334, 5041, 5085, 1325, 5142, 5199, - 5256, 1324, 1453, 3090, 5336, 1616, 3111, 5397, 1064, 1316, - 1315, 5060, 5459, 1297, 5104, 5516, 5597, 5654, 5711, 5768, - - 5825, 5882, 5939, 5996, 6058, 6138, 1628, 5123, 5128, 5133, - 6199, 0, 4674, 5165, 5170, 5189, 5347, 6241, 2476, 2547, - 4713, 359, 1922, 5438, 5381, 5443, 5616, 5621, 5626, 5631, - 5636, 3069, 3142, 4775, 4817, 5641, 5646, 5702, 5730, 5735, - 5740, 5745, 139, 2315, 5227, 5751, 5758,17264, 2265, 1206, - 1176, 5233, 6303, 1175, 5844, 6360, 6441, 6498, 6555, 6612, - 6669, 6726, 6783, 6840, 6902, 1104, 2407, 6982, 7043, 2417, - 1094, 2468, 5482, 1086, 1072, 7105, 7162, 7219, 7276, 7357, - 7414, 7471, 7528, 7585, 7642, 7699, 0, 1022, 5851, 7761, - 1012, 7818, 7875, 7956, 8013, 8074,17264, 5815, 8135, 0, - - 4739, 5871, 5901, 5908, 5913, 2533, 971, 2914, 5958, 945, - 934, 8197, 8254, 8311, 8368, 8449, 8506, 8563, 8620, 8677, - 8734, 8791, 0, 923, 6322, 8853, 912, 8910, 8967, 9048, - 9105, 884, 9166, 9227, 9289, 3100, 9346, 9403, 9460, 877, - 3129, 6329, 853, 816, 9522, 9579, 9636, 9693, 4940, 3607, - 9774, 9831, 9888, 9945,10002,10059,10116,10173, 0,10235, - 10315, 5918, 3182,10377,10434,10491, 806, 3184, 6460, 764, - 755,10553,10610,10667,10724,10805,10862,10919,10976,11033, - 11090,11147, 0,11209, 730, 3200,11270,11331,11393, 3201, - 11474, 4996, 6467, 5672,11529, 4271, 6228,11589,11651,11708, - - 11765,11827, 6517,11908, 3219,11989,12046,12103,12165, 5980, - 6284,12226, 6524, 704, 694, 5374, 6574, 6579,12286, 5795, - 4706, 6587,12347, 5922, 6635,12407, 6593, 3587, 6648,12468, - 693, 6692,12530, 668,12587,12644,12725,12806,12868,12949, - 13030,13091, 3220, 6696, 6745, 6705,13151, 6752, 667, 632, - 1582, 2941, 6765, 5044, 6801,13212, 6815, 6824,13273, 6630, - 7072,13333, 2080, 3236, 7123, 4138, 7127,13394, 7140, 7145, - 13455, 621, 3229, 7184, 620, 533,13517,13574,13631,13688, - 13769,13826,13883,13940,13997,14054,14111, 0,14173,14254, - 14311,14392,14473,14530, 532, 3230, 7238, 3244, 7188, 7202, - - 7375,14586,14647, 7381, 7394, 7398,14689,14731, 3292,14793, - 14850,14887,14929,14971,15013, 523, 3296, 516, 5487, 481, - 457,15055,15097,15139,15181,15223,15265,15307, 405, 3298, - 17264, 397, 3320,15349,15391,15433,15475,15517, 331, 296, - 15559,15601,15643,15685,15727, 231, 178, 3495,15769,15811, - 15853,17264,15915,15918,15927,15930,15934,15943,15952,15961, - 15970,15979, 127,15982,15991,16000,16009,16018,16027,16036, - 16045,16054,16062,16071,16080,16089,16098,16107,16116,16125, - 16134,16143,16152,16161,16170,16179,16188,16197,16206,16215, - 16224,16232,16241,16250,16259,16268,16277,16286,16295,16304, - - 16313,16322,16331,16340,16349,16358,16367,16376,16385,16394, - 16403,16412,16421,16430,16439,16448,16457,16466,16475,16484, - 16493,16501,16510,16519,16528,16537,16546,16555,16564,16573, - 16582,16591,16600,16609,16618,16627,16636,16645,16654,16663, - 16672,16680,16688,16697,16706,16715,16724,16733,16742,16751, - 16760,16769,16778,16787,16796,16805,16814,16823,16832,16841, - 16850,16859,16868,16877,16886,16894,16903,16912,16921,16930, - 16939,16948,16957,16966,16975,16984,16993,17002,17011,17020, - 17029,17038,17047,17056,17065,17074,17083,17092,17101,17110, - 17119,17128,17137,17146,17155,17164,17173,17182,17191,17200, - - 17209,17218,17227,17236,17245,17254 + 0, 0, 4195, 7110, 78, 83, 88, 87, 78, 85, + 82, 88, 4161, 142, 4151, 90, 86, 206, 259, 4118, + 4083, 98, 234, 4083, 72, 109, 116, 7110, 318, 100, + 4082, 361, 208, 420, 4017, 92, 463, 205, 4024, 7110, + 3977, 222, 0, 3974, 209, 89, 257, 202, 180, 245, + 248, 259, 355, 272, 3955, 524, 3987, 83, 280, 311, + 274, 585, 7110, 117, 637, 348, 210, 697, 7110, 7110, + 3963, 302, 382, 243, 3940, 3933, 371, 251, 356, 757, + 3945, 101, 817, 246, 357, 877, 7110, 3938, 252, 920, + 3894, 974, 3886, 1017, 397, 447, 3861, 3860, 661, 376, + + 904, 3850, 721, 3841, 448, 451, 1040, 3840, 3825, 1045, + 3813, 3796, 3787, 1063, 569, 600, 3784, 1137, 484, 1180, + 613, 1221, 748, 380, 566, 347, 591, 907, 654, 462, + 3767, 3789, 118, 559, 779, 633, 593, 588, 628, 782, + 654, 3776, 775, 3775, 802, 772, 682, 336, 1279, 345, + 447, 1322, 3754, 254, 695, 837, 658, 581, 632, 656, + 806, 1012, 456, 862, 1365, 3744, 256, 903, 1408, 278, + 964, 1451, 3730, 7110, 3689, 1511, 839, 751, 790, 3655, + 3633, 1086, 865, 3648, 3645, 868, 812, 3627, 850, 3599, + 3559, 3554, 895, 897, 344, 3587, 3580, 885, 900, 892, + + 922, 3526, 1001, 929, 943, 3484, 3483, 1165, 1002, 3500, + 3499, 1037, 1074, 945, 3485, 969, 3476, 3439, 3424, 1096, + 3450, 410, 3442, 438, 3403, 3397, 3396, 1109, 1104, 3416, + 3396, 745, 1554, 1126, 1597, 1199, 1638, 1237, 1696, 1591, + 1451, 1224, 1636, 1495, 1673, 1680, 1762, 1836, 1318, 1740, + 1703, 7110, 573, 1049, 1161, 1158, 970, 987, 1131, 1017, + 1192, 1245, 3385, 3371, 1046, 1269, 1252, 3369, 3358, 1342, + 1600, 1403, 1552, 1788, 1263, 1891, 1796, 1934, 3362, 1868, + 1238, 1307, 1248, 3350, 3304, 1055, 1352, 1779, 1931, 1391, + 1392, 1393, 1983, 3284, 7110, 2026, 2069, 3253, 347, 892, + + 2112, 1392, 1108, 1110, 1248, 1488, 1500, 3239, 3204, 3174, + 1541, 3194, 3177, 2112, 1624, 1119, 3145, 1176, 3142, 1861, + 1873, 1878, 3104, 1704, 1607, 3071, 2999, 1394, 2951, 2939, + 1979, 1503, 1180, 1209, 1896, 1901, 1669, 1259, 1273, 1936, + 1971, 1707, 1278, 1296, 2904, 1691, 2927, 2900, 2022, 1731, + 1336, 2867, 1403, 2856, 1994, 2027, 2063, 1753, 2851, 716, + 2848, 950, 2068, 2106, 2117, 1786, 2836, 2831, 1793, 2833, + 2795, 2150, 2191, 1807, 2234, 2138, 2275, 2156, 2333, 2228, + 2237, 2273, 2344, 2358, 2367, 2378, 2449, 2523, 2189, 2433, + 2413, 1498, 2121, 2020, 2269, 2451, 1769, 2278, 1797, 2271, + + 1426, 1684, 1625, 2322, 1465, 2311, 2342, 2464, 2148, 2457, + 2261, 1528, 2388, 2423, 2759, 1179, 1347, 2149, 2296, 2245, + 2683, 2676, 1875, 1831, 2535, 2548, 1910, 2480, 2177, 2645, + 2637, 2383, 2555, 7110, 2446, 2468, 2600, 2595, 2508, 2546, + 2570, 2561, 2456, 2552, 2533, 2540, 1981, 2561, 2614, 2651, + 2674, 741, 457, 7110, 2729, 2807, 2597, 661, 2134, 2596, + 2579, 1548, 1591, 2330, 2405, 2814, 2604, 1589, 2641, 97, + 2882, 2584, 771, 2942, 3003, 3046, 2605, 1637, 1675, 2688, + 2695, 2537, 1235, 2639, 2556, 2555, 2710, 2662, 2543, 2538, + 2819, 1925, 2402, 2684, 1849, 2508, 1979, 2507, 2715, 2720, + + 2844, 2463, 1448, 2462, 1598, 2832, 2475, 2463, 2837, 2420, + 2412, 2894, 2582, 2374, 2365, 3042, 2023, 2628, 2816, 2853, + 2025, 2109, 2889, 2919, 2312, 1614, 2857, 2229, 2270, 2929, + 3047, 2262, 1615, 2931, 2423, 2439, 3052, 3083, 3071, 2289, + 2269, 3106, 2300, 2407, 3094, 2461, 2233, 2530, 2232, 3119, + 3124, 3129, 2191, 1714, 2183, 1734, 3117, 2186, 1033, 2175, + 1110, 3142, 3147, 3152, 2135, 1803, 2132, 2181, 2103, 2338, + 3076, 2090, 2077, 3160, 3148, 2035, 2003, 3172, 3132, 3134, + 0, 3213, 1864, 3230, 3173, 3254, 3181, 3312, 3378, 3437, + 3511, 3581, 3656, 3723, 3785, 3859, 3933, 3219, 3988, 4050, + + 3236, 2813, 3269, 2888, 2606, 2901, 3277, 3160, 2608, 2666, + 3251, 3162, 3338, 3190, 2881, 3264, 7110, 3191, 3285, 1994, + 1985, 2987, 3302, 3350, 3326, 3303, 3358, 3340, 1965, 1964, + 3341, 3369, 3367, 3038, 3373, 3009, 4107, 3394, 1039, 3416, + 4166, 696, 4225, 3442, 3463, 3481, 3497, 3517, 4285, 4346, + 4407, 3059, 3408, 3193, 1957, 1942, 3295, 3430, 3539, 3544, + 3283, 2258, 3485, 311, 4467, 4510, 4553, 4596, 590, 2669, + 3080, 3327, 3553, 3451, 1920, 1919, 3559, 1876, 2372, 805, + 1897, 1896, 3572, 3260, 3261, 1801, 3311, 1794, 3565, 3614, + 3619, 3505, 1764, 1751, 3626, 3572, 1712, 1704, 3635, 3537, + + 3597, 0, 842, 1683, 1668, 3640, 3543, 0, 962, 3354, + 3355, 3645, 3661, 1143, 3420, 3436, 3672, 3681, 3673, 3477, + 3547, 3701, 3710, 1613, 2478, 1302, 1608, 1607, 3716, 3707, + 3553, 1605, 3554, 1537, 3732, 3737, 3748, 3732, 1529, 1796, + 1502, 1830, 3762, 3770, 3777, 3774, 1498, 1459, 3798, 1394, + 3135, 1339, 1384, 1374, 3811, 0, 4639, 3784, 1740, 3822, + 2122, 3822, 3869, 3895, 3916, 3941, 3970, 3978, 3995, 4699, + 4002, 3880, 4083, 4105, 3722, 0, 3634, 0, 1410, 7110, + 3904, 3810, 1349, 1342, 3782, 3868, 4066, 4635, 3883, 3654, + 3856, 1427, 3908, 1333, 1308, 3944, 4176, 3996, 3768, 3982, + + 1575, 4001, 4071, 4011, 3853, 4024, 1763, 4756, 4088, 7110, + 1487, 3423, 4816, 896, 3208, 4876, 4262, 4444, 4919, 4504, + 4547, 4591, 4677, 4979, 5040, 5101, 3896, 4040, 4023, 1274, + 1266, 3798, 4080, 4509, 4041, 4065, 4639, 1821, 4709, 5144, + 5187, 5230, 3632, 3726, 4208, 4213, 2076, 1260, 1207, 4231, + 1176, 1123, 4793, 3760, 1108, 3762, 1099, 4236, 4322, 4327, + 4093, 1043, 1038, 4332, 994, 3434, 2212, 1028, 1002, 4913, + 992, 951, 4552, 3833, 0, 3946, 3953, 4474, 4479, 4041, + 4059, 4645, 4716, 2284, 4091, 4106, 4721, 4733, 929, 840, + 4919, 4115, 838, 4116, 837, 4738, 4743, 4756, 811, 2240, + + 777, 3157, 4763, 4798, 4803, 2371, 745, 718, 4823, 658, + 646, 5138, 0, 4956, 5225, 5181, 5269, 5279, 5291, 5296, + 5303, 5315, 5386, 5143, 5350, 5369, 5375, 5394, 5408, 5448, + 5413, 642, 4130, 618, 583, 7110, 4253, 5467, 4134, 4243, + 5276, 2587, 4250, 4854, 4277, 4128, 4675, 2903, 4432, 7110, + 526, 2948, 4859, 1544, 4963, 5522, 1357, 3705, 5565, 5608, + 5472, 5669, 5477, 5730, 4466, 5171, 4581, 508, 493, 4435, + 5496, 4865, 4634, 5275, 3053, 5506, 5511, 5565, 478, 449, + 4864, 5767, 5602, 5607, 5772, 3203, 451, 445, 4924, 443, + 442, 5777, 5790, 5795, 5805, 5812, 5835, 5853, 5859, 4140, + + 4164, 4984, 5017, 5866, 5871, 5876, 5881, 5889, 5894, 5899, + 411, 381, 5022, 5907, 5913, 7110, 4866, 5027, 5214, 4678, + 5521, 3400, 4944, 7110, 370, 3468, 3483, 5950, 5993, 6036, + 5987, 6030, 6096, 0, 6139, 7110, 5502, 5131, 4161, 4218, + 4832, 5304, 6035, 5313, 4441, 5307, 3527, 5992, 344, 285, + 5490, 6133, 6073, 6138, 6176, 5382, 7110, 296, 3629, 3675, + 6213, 6256, 6299, 6199, 6342, 6385, 5403, 237, 230, 7110, + 5415, 6212, 6255, 5439, 3976, 5380, 3852, 6293, 3928, 6428, + 6471, 6514, 6557, 6600, 5441, 5531, 5500, 5100, 5886, 4057, + 6643, 6686, 6729, 5612, 5628, 7110, 133, 4058, 6772, 4181, + + 6336, 7110, 6833, 6837, 6846, 6850, 6855, 6864, 6873, 6882, + 6891, 6900, 112, 6904, 6913, 6922, 6931, 6940, 6949, 6958, + 6967, 6976, 6984, 6993, 7002, 7011, 7020, 7029, 7038, 7047, + 7056, 7065, 7074, 7083, 7092, 7100 } ; -static const flex_int16_t yy_def[1307] = +static const flex_int16_t yy_def[1137] = { 0, - 1152, 1, 1152, 1152, 1152, 1152, 1152, 1153, 1154, 1155, - 1152, 1152, 1156, 1152, 1152, 1152, 1152, 1152, 1152, 1157, - 1157, 1158, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1153, 1152, 1159, 1154, 1160, 1155, - 1161, 1152, 1157, 1158, 16, 1162, 1152, 1163, 1152, 16, - 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, - 1164, 1164, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1157, - 1165, 1157, 1157, 1157, 1152, 1152, 1166, 1167, 1152, 1153, - 1153, 1153, 1154, 1154, 1155, 1155, 1155, 1152, 1162, 1168, - 63, 1164, 1169, 1164, 1169, 1164, 95, 1164, 1164, 95, - - 1164, 95, 1164, 95, 1164, 95, 1164, 95, 1164, 1164, - 95, 1164, 1164, 1164, 95, 1164, 95, 1164, 1164, 119, - 119, 119, 121, 119, 1164, 1164, 1164, 1164, 1164, 1164, - 1164, 1164, 1152, 1152, 1152, 1152, 1152, 1157, 74, 1157, - 1157, 74, 1166, 1170, 1167, 1171, 1152, 1153, 1153, 82, - 1154, 84, 1155, 1155, 87, 1172, 1152, 1164, 119, 159, - 159, 159, 1164, 1164, 95, 159, 159, 159, 159, 159, - 159, 159, 159, 1164, 1164, 1164, 95, 159, 159, 159, - 1164, 159, 159, 159, 1164, 159, 159, 159, 1164, 1164, - 95, 159, 159, 159, 1164, 159, 159, 159, 159, 159, - - 1164, 1164, 159, 159, 159, 159, 159, 1164, 1164, 1164, - 95, 159, 159, 159, 1164, 119, 216, 216, 216, 218, - 216, 216, 222, 222, 222, 222, 222, 222, 222, 222, - 216, 231, 231, 222, 1152, 1152, 1152, 1152, 1152, 1157, - 74, 1173, 74, 1174, 1175, 1152, 82, 152, 155, 1172, - 1176, 1164, 159, 253, 253, 253, 253, 253, 159, 159, - 159, 1164, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 1164, 1177, 159, 159, 159, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 159, 159, 159, 1164, 253, 253, 253, - - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 159, 159, 159, - 253, 253, 253, 253, 216, 325, 325, 325, 327, 325, - 325, 331, 331, 331, 331, 331, 331, 331, 331, 325, - 340, 340, 331, 1164, 1164, 1164, 1164, 325, 1164, 1164, - 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, - 1164, 1164, 325, 1164, 1164, 325, 1164, 1164, 1152, 1152, - 1152, 1152, 241, 1173, 1173, 1178, 1179, 1152, 1173, 1152, - 373, 1180, 1181, 1182, 1183, 1152, 1184, 1152, 1185, 253, - 390, 390, 390, 390, 390, 1164, 1164, 253, 253, 253, - - 253, 390, 390, 390, 390, 1164, 1164, 390, 390, 390, - 390, 390, 390, 390, 390, 1164, 1164, 1164, 1164, 159, - 159, 159, 253, 253, 253, 253, 390, 390, 390, 390, - 1164, 1164, 390, 390, 390, 390, 390, 390, 1164, 1164, - 390, 390, 390, 390, 390, 1164, 1164, 253, 253, 253, - 253, 253, 390, 390, 390, 390, 1164, 1164, 390, 390, - 390, 390, 390, 390, 390, 390, 1164, 1164, 1164, 1164, - 390, 390, 390, 390, 390, 390, 390, 390, 1164, 1164, - 1164, 1164, 1164, 1164, 253, 253, 253, 253, 390, 390, - 390, 390, 1164, 1164, 390, 325, 496, 496, 496, 496, - - 496, 496, 502, 502, 502, 502, 502, 502, 502, 502, - 496, 511, 511, 502, 496, 496, 496, 496, 1152, 1152, - 1152, 373, 1152, 1173, 1178, 1152, 1186, 1179, 1187, 1188, - 1173, 1173, 1173, 1173, 1173, 1173, 1152, 373, 1152, 1184, - 388, 1185, 390, 543, 543, 543, 543, 543, 390, 390, - 390, 390, 1164, 1164, 543, 543, 543, 543, 543, 543, - 543, 543, 543, 543, 543, 543, 253, 253, 253, 253, - 390, 390, 390, 390, 1164, 1164, 390, 543, 543, 543, - 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, - 543, 543, 543, 390, 390, 390, 390, 390, 1164, 1164, - - 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, - 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, - 390, 390, 390, 390, 1164, 1164, 543, 543, 543, 543, - 543, 496, 632, 632, 632, 632, 632, 632, 632, 632, - 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, - 632, 632, 632, 1152, 1152, 373, 1152, 1189, 1152, 1152, - 1152, 1178, 1178, 1178, 1179, 1179, 1179, 1190, 1190, 1188, - 1190, 1191, 1188, 1152, 1192, 1192, 373, 1152, 1184, 541, - 542, 543, 682, 682, 682, 682, 543, 543, 543, 543, - 682, 682, 682, 682, 682, 682, 682, 682, 682, 682, - - 390, 390, 390, 390, 1164, 1164, 543, 543, 543, 543, - 682, 682, 682, 682, 682, 682, 682, 682, 682, 682, - 682, 682, 682, 543, 543, 543, 543, 543, 682, 682, - 682, 682, 682, 682, 682, 682, 682, 682, 682, 682, - 682, 682, 682, 682, 682, 543, 543, 543, 543, 682, - 682, 682, 682, 1164, 1164, 1164, 1164, 1164, 1164, 1164, - 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, - 1164, 1152, 677, 1193, 1193, 1193, 1189, 1193, 1194, 1189, - 1152, 1195, 1178, 1178, 1178, 1179, 1179, 1179, 1196, 1197, - 1198, 1198, 1199, 1198, 1192, 1152, 1200, 1201, 1201, 1201, - - 1201, 1202, 1201, 1201, 1152, 1192, 1152, 1164, 1164, 1164, - 1164, 811, 811, 1164, 1164, 1164, 1164, 811, 818, 818, - 818, 811, 811, 811, 1164, 1164, 1164, 1164, 1164, 1164, - 1164, 811, 811, 811, 811, 1164, 1164, 1164, 1164, 1164, - 1164, 1164, 811, 811, 811, 1164, 1164, 1152, 1203, 1204, - 1205, 1205, 1206, 1205, 1192, 1152, 1207, 1208, 1208, 1208, - 1208, 1209, 1208, 1208, 1152, 1210, 1211, 1212, 1213, 1214, - 1215, 1216, 1215, 1215, 1215, 1217, 1218, 1217, 1152, 1217, - 1217, 1217, 1217, 1218, 1217, 1217, 879, 1219, 1219, 1220, - 1219, 1208, 1152, 1221, 1221, 1192, 1152, 1222, 1222, 899, - - 899, 1222, 1222, 1222, 1222, 1223, 1224, 1225, 1224, 1224, - 1224, 1226, 1227, 1226, 1152, 1226, 1226, 1226, 1226, 1227, - 1226, 1226, 915, 1228, 1228, 1229, 1228, 1208, 1152, 1208, - 1208, 1230, 1231, 1232, 1208, 1233, 1234, 1235, 1235, 1236, - 1237, 1236, 1236, 1236, 1238, 1239, 1238, 1152, 1240, 1241, - 1208, 1238, 1238, 1238, 1238, 1239, 1238, 1238, 948, 1152, - 1242, 1243, 1244, 1245, 1246, 1246, 1247, 1248, 1247, 1247, - 1247, 1249, 1250, 1249, 1152, 1249, 1249, 1249, 1249, 1250, - 1249, 1249, 975, 1208, 1251, 1252, 1253, 1254, 1152, 1255, - 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, - - 1265, 1152, 1266, 1152, 1267, 1268, 1269, 1269, 1152, 1253, - 1254, 989, 1258, 1258, 1258, 1270, 1271, 1253, 1272, 1273, - 1273, 1274, 1273, 1275, 1254, 1276, 1277, 1277, 1278, 1277, - 1279, 1279, 1280, 1279, 1281, 1152, 1152, 1281, 1152, 1152, - 1152, 989, 1282, 1270, 1271, 1274, 1272, 1271, 1271, 1271, - 1283, 1283, 1270, 1270, 1274, 1270, 1284, 1284, 1284, 1285, - 1278, 1286, 1287, 1287, 1285, 1285, 1278, 1285, 1288, 1288, - 1288, 1289, 1290, 1289, 1289, 1289, 1291, 1292, 1291, 1152, - 1291, 1291, 1291, 1291, 1292, 1291, 1291, 1080, 1152, 1293, - 1152, 1152, 1294, 1295, 1296, 1297, 1298, 1299, 1284, 1300, - - 1300, 1300, 1284, 1288, 1285, 1285, 1068, 1071, 1301, 1302, - 1291, 1087, 1089, 1091, 1092, 1296, 1297, 1303, 1152, 1298, - 1298, 1102, 1103, 1107, 1108, 1087, 1089, 1115, 1303, 1297, - 1152, 1152, 1304, 1102, 1103, 1107, 1108, 1087, 1305, 1306, - 1102, 1103, 1107, 1108, 1087, 1305, 1306, 1297, 1102, 1107, - 1087, 0, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152 + 1102, 1, 1102, 1102, 1102, 1102, 1102, 1103, 1104, 1105, + 1106, 1102, 1102, 1102, 1102, 1102, 1107, 1107, 1108, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1103, 1102, 1109, 1104, + 1102, 1110, 1105, 1111, 1102, 1107, 1108, 14, 1112, 1102, + 1113, 1102, 14, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1114, 1114, 1114, 1114, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1107, 1115, 1107, 1107, 1107, 1102, 1102, + 1116, 1102, 1102, 1102, 1102, 1102, 1102, 1103, 1103, 1103, + 1117, 1104, 1104, 1105, 1105, 1105, 1102, 1112, 1118, 56, + 1114, 1119, 1114, 1119, 1114, 94, 1114, 1114, 94, 1114, + + 94, 1114, 94, 1114, 94, 1114, 94, 1114, 1114, 94, + 1114, 1114, 1114, 94, 1114, 94, 1114, 1114, 118, 118, + 118, 118, 118, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1107, 68, 1107, + 1107, 68, 1116, 1120, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1103, 1103, 80, 1117, 1121, 1104, 83, 1105, + 1105, 86, 1122, 1102, 1114, 118, 176, 176, 176, 1114, + 1114, 94, 176, 176, 176, 176, 176, 176, 176, 176, + 1114, 1114, 1114, 94, 176, 176, 176, 1114, 176, 176, + + 176, 1114, 176, 176, 176, 1114, 1114, 94, 176, 176, + 176, 1114, 176, 176, 176, 176, 176, 1114, 1114, 176, + 176, 176, 176, 176, 1114, 1114, 1114, 94, 176, 176, + 176, 1114, 118, 233, 233, 233, 233, 233, 233, 239, + 239, 239, 239, 239, 239, 239, 239, 233, 248, 248, + 239, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1107, 68, 1123, 68, 1124, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 80, 1125, 1102, 83, 86, 1122, 1126, 1114, + + 176, 301, 301, 301, 301, 301, 176, 176, 176, 1114, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 1114, 94, 176, 176, 176, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, + 301, 176, 176, 176, 1114, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 176, 176, 176, 301, 301, + 301, 301, 233, 373, 373, 373, 373, 373, 373, 379, + 379, 379, 379, 379, 379, 379, 379, 373, 388, 388, + 379, 1114, 1114, 1114, 1114, 373, 1114, 1114, 1114, 1114, + + 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 373, 1114, 1114, 373, 1114, 1114, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 276, 1123, + 1123, 1127, 1128, 1102, 1102, 276, 1129, 1130, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1131, 1132, 1133, 1102, 86, 301, 476, 476, 476, 476, + 476, 1114, 1114, 301, 301, 301, 301, 476, 476, 476, + 476, 1114, 1114, 476, 476, 476, 476, 476, 476, 476, + + 476, 1114, 1114, 1114, 1114, 176, 176, 176, 301, 301, + 301, 301, 476, 476, 476, 476, 1114, 1114, 476, 476, + 476, 476, 476, 476, 1114, 1114, 476, 476, 476, 476, + 476, 1114, 1114, 301, 301, 301, 301, 301, 476, 476, + 476, 476, 1114, 1114, 476, 476, 476, 476, 476, 476, + 476, 476, 1114, 1114, 1114, 1114, 476, 476, 476, 476, + 476, 476, 476, 476, 1114, 1114, 1114, 1114, 1114, 1114, + 301, 301, 301, 301, 476, 476, 476, 476, 1114, 1114, + 476, 373, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 590, 590, 582, 582, 582, 590, + + 582, 582, 582, 582, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 276, 1102, 1127, 1102, + 1134, 1128, 1135, 1123, 1123, 1102, 1123, 1123, 1123, 1102, + 456, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1131, 474, 475, 476, 668, 668, + 668, 668, 668, 476, 476, 476, 476, 1114, 1114, 668, + 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, + 668, 301, 301, 301, 301, 476, 476, 476, 476, 1114, + + 1114, 476, 668, 668, 668, 668, 668, 668, 668, 668, + 668, 668, 668, 668, 668, 668, 668, 668, 476, 476, + 476, 476, 476, 1114, 1114, 668, 668, 668, 668, 668, + 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, + 668, 668, 668, 668, 668, 476, 476, 476, 476, 1114, + 1114, 668, 668, 668, 668, 668, 582, 757, 757, 757, + 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, + 757, 757, 757, 757, 757, 757, 757, 757, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 276, 1102, 1102, + 1127, 1127, 1127, 1128, 1128, 1128, 1123, 1123, 649, 1136, + 1136, 1123, 1136, 649, 1102, 651, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1131, 474, + 475, 668, 842, 842, 842, 842, 668, 668, 668, 668, + 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, + 476, 476, 476, 476, 1114, 1114, 668, 668, 668, 668, + 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, + 842, 842, 842, 668, 668, 668, 668, 668, 842, 842, + 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, + + 842, 842, 842, 842, 842, 668, 668, 668, 668, 842, + 842, 842, 842, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 826, 1127, 1127, 813, 1128, 1128, 816, 649, + 1136, 1102, 1136, 824, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1114, 1114, 1114, 842, 842, + 842, 1114, 1114, 1114, 1114, 668, 668, 668, 668, 842, + 842, 842, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 842, + + 842, 842, 842, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 842, 842, 842, 1114, 1114, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 813, 816, 649, + 1136, 1136, 1136, 962, 824, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1114, 842, 842, + 842, 1114, 1114, 1114, 1114, 1102, 1102, 1102, 1102, 1102, + 813, 816, 649, 1136, 1033, 824, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1114, 1102, 813, + 816, 649, 1033, 824, 1102, 1102, 1102, 1102, 1102, 1102, + 813, 816, 1033, 1082, 1102, 1102, 1102, 1102, 1033, 1102, + + 1136, 0, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102 } ; -static const flex_int16_t yy_nxt[17346] = +static const flex_int16_t yy_nxt[7190] = { 0, 4, 5, 6, 5, 5, 5, 7, 8, 9, 4, - 4, 10, 4, 4, 4, 11, 12, 13, 14, 15, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 17, 4, 18, 19, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 21, 20, 20, 22, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 21, 20, 20, 23, 24, 25, - 20, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 36, 36, 42, 69, 27, 28, 79, 36, 29, - - 27, 28, 96, 94, 29, 32, 32, 32, 32, 32, - 36, 134, 30, 95, 69, 101, 36, 30, 79, 107, - 97, 102, 136, 33, 94, 96, 32, 32, 32, 32, - 32, 69, 44, 134, 108, 51, 101, 41, 71, 135, - 37, 107, 116, 41, 33, 136, 34, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 31, 71, 37, - 135, 41, 31, 905, 117, 116, 808, 34, 34, 47, - 103, 104, 683, 90, 684, 71, 48, 49, 157, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 34, - 83, 103, 1148, 51, 51, 52, 53, 54, 51, 55, - - 56, 57, 51, 58, 51, 59, 51, 51, 60, 61, - 62, 51, 51, 51, 51, 63, 51, 51, 52, 53, - 54, 55, 56, 57, 58, 51, 59, 51, 51, 60, - 61, 62, 51, 51, 51, 51, 65, 69, 137, 51, - 69, 147, 66, 144, 39, 1096, 67, 105, 26, 68, - 98, 26, 26, 26, 26, 26, 106, 101, 99, 65, - 100, 137, 147, 102, 66, 27, 28, 67, 105, 29, - 68, 98, 236, 316, 691, 72, 692, 317, 101, 99, - 36, 71, 30, 1152, 71, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 236, 72, 74, 74, 74, - - 74, 74, 74, 74, 74, 74, 74, 69, 242, 176, - 1148, 74, 74, 74, 74, 74, 74, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 31, 35, 37, - 112, 177, 176, 36, 74, 74, 74, 74, 74, 35, - 35, 81, 146, 36, 36, 1096, 113, 32, 114, 280, - 115, 71, 71, 112, 281, 238, 282, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 113, 164, 114, - 40, 82, 82, 82, 82, 82, 82, 69, 238, 36, - 902, 316, 37, 166, 165, 317, 808, 167, 41, 168, - 164, 190, 191, 37, 82, 82, 82, 82, 82, 84, - - 84, 84, 84, 84, 84, 84, 84, 84, 84, 158, - 140, 1139, 190, 84, 84, 84, 84, 84, 84, 1130, - 251, 71, 257, 109, 41, 157, 239, 210, 110, 118, - 158, 140, 233, 111, 234, 237, 84, 84, 84, 84, - 84, 40, 40, 86, 109, 257, 211, 217, 239, 110, - 210, 217, 217, 217, 217, 233, 237, 234, 246, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 103, - 104, 1133, 105, 87, 87, 87, 87, 87, 87, 246, - 254, 106, 80, 93, 255, 186, 256, 36, 212, 187, - 103, 188, 213, 105, 214, 867, 87, 87, 87, 87, - - 87, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 158, 189, 369, 158, 74, 74, 74, 74, 74, - 74, 230, 258, 231, 232, 217, 217, 217, 217, 711, - 1130, 712, 158, 189, 369, 158, 37, 1117, 74, 74, - 74, 74, 74, 118, 118, 258, 1117, 1109, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 119, 120, 120, 120, 121, 122, 123, - 124, 120, 120, 118, 118, 118, 118, 120, 120, 120, - 120, 120, 120, 125, 126, 127, 118, 128, 118, 129, - 118, 118, 130, 131, 132, 118, 118, 118, 118, 118, - - 120, 120, 120, 120, 120, 125, 126, 127, 128, 118, - 129, 118, 118, 130, 131, 132, 118, 118, 118, 118, - 118, 118, 118, 118, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 1073, 1073, 107, 116, 139, 139, - 139, 139, 139, 139, 85, 716, 1098, 717, 272, 274, - 169, 108, 287, 36, 170, 171, 172, 173, 107, 117, - 116, 139, 139, 139, 139, 139, 73, 73, 73, 141, - 73, 272, 274, 176, 263, 287, 174, 69, 264, 477, - 265, 908, 1073, 478, 175, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 177, 176, 174, 41, 142, - - 142, 142, 142, 142, 142, 175, 284, 1073, 1043, 288, - 182, 285, 371, 286, 159, 183, 159, 184, 849, 526, - 292, 71, 142, 142, 142, 142, 142, 148, 80, 80, - 149, 148, 288, 36, 371, 230, 158, 231, 232, 217, - 217, 217, 217, 292, 986, 185, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 112, 158, 275, 526, - 150, 150, 150, 150, 150, 150, 185, 289, 527, 1005, - 383, 290, 113, 291, 114, 26, 115, 276, 968, 112, - 293, 275, 37, 150, 150, 150, 150, 150, 83, 83, - 83, 151, 83, 113, 267, 114, 190, 191, 268, 269, - - 270, 271, 477, 293, 529, 307, 478, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 190, 309, 370, - 968, 152, 152, 152, 152, 152, 152, 73, 307, 298, - 990, 372, 277, 299, 385, 300, 278, 69, 279, 32, - 370, 309, 158, 39, 152, 152, 152, 152, 152, 153, - 85, 85, 154, 153, 372, 342, 302, 343, 158, 36, - 303, 304, 305, 306, 526, 367, 394, 941, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 342, 158, - 343, 71, 155, 155, 155, 155, 155, 155, 321, 394, - 386, 941, 322, 138, 323, 178, 93, 395, 986, 159, - - 179, 159, 180, 69, 41, 155, 155, 155, 155, 155, - 120, 386, 413, 527, 120, 120, 120, 120, 391, 93, - 395, 158, 392, 109, 393, 181, 968, 415, 110, 526, - 118, 118, 118, 111, 118, 413, 118, 968, 427, 118, - 118, 118, 158, 428, 109, 429, 181, 71, 963, 110, - 415, 434, 118, 118, 118, 118, 435, 118, 436, 908, - 118, 118, 118, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 396, 529, 416, 437, 159, 159, 159, - 159, 159, 159, 310, 720, 908, 721, 311, 312, 313, - 314, 326, 438, 444, 445, 326, 326, 326, 326, 437, - - 159, 159, 159, 159, 159, 160, 159, 159, 159, 161, - 159, 162, 159, 159, 159, 438, 444, 445, 451, 159, - 159, 159, 159, 159, 159, 452, 941, 93, 192, 93, - 418, 163, 193, 196, 194, 464, 941, 197, 198, 199, - 200, 451, 159, 159, 159, 159, 159, 398, 452, 195, - 448, 399, 163, 400, 158, 449, 203, 450, 464, 201, - 204, 205, 206, 207, 202, 396, 396, 396, 397, 396, - 402, 195, 526, 318, 403, 158, 404, 319, 789, 320, - 201, 94, 158, 374, 93, 202, 936, 466, 208, 217, - 209, 95, 222, 223, 224, 217, 225, 226, 227, 158, - - 872, 423, 94, 158, 228, 424, 229, 425, 872, 208, - 466, 209, 118, 118, 118, 215, 118, 529, 867, 339, - 158, 340, 341, 326, 326, 326, 326, 228, 729, 229, - 730, 216, 217, 217, 217, 218, 219, 220, 221, 217, - 217, 513, 750, 514, 751, 217, 217, 217, 217, 217, - 217, 396, 396, 396, 397, 396, 294, 103, 104, 101, - 159, 295, 159, 296, 513, 102, 514, 93, 217, 217, - 217, 217, 217, 138, 138, 138, 240, 138, 103, 521, - 101, 339, 158, 340, 341, 326, 326, 326, 326, 908, - 908, 297, 241, 241, 241, 241, 241, 241, 241, 241, - - 241, 241, 521, 158, 107, 116, 241, 241, 241, 241, - 241, 241, 297, 367, 367, 367, 368, 367, 408, 108, - 906, 547, 409, 410, 411, 412, 107, 117, 116, 241, - 241, 241, 241, 241, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 547, 519, 326, 96, 243, 243, - 243, 243, 243, 243, 416, 416, 416, 417, 416, 418, - 418, 418, 419, 418, 548, 97, 519, 520, 93, 326, - 96, 243, 243, 243, 243, 243, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 439, 548, 520, 564, - 247, 247, 247, 247, 247, 247, 416, 416, 416, 417, - - 416, 439, 439, 439, 440, 439, 439, 439, 439, 440, - 439, 872, 564, 247, 247, 247, 247, 247, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 539, 872, - 870, 566, 248, 248, 248, 248, 248, 248, 867, 849, - 93, 349, 349, 349, 350, 349, 441, 453, 849, 539, - 442, 454, 443, 455, 566, 248, 248, 248, 248, 248, - 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, - 763, 164, 764, 765, 249, 249, 249, 249, 249, 249, - 446, 446, 446, 447, 446, 849, 98, 165, 26, 26, - 26, 26, 26, 164, 99, 583, 100, 249, 249, 249, - - 249, 249, 27, 28, 259, 485, 29, 98, 260, 486, - 261, 487, 526, 655, 276, 99, 459, 355, 583, 30, - 460, 461, 462, 463, 262, 446, 446, 446, 447, 446, - 158, 772, 326, 105, 655, 331, 332, 333, 326, 334, - 335, 336, 106, 353, 489, 848, 262, 337, 490, 338, - 491, 158, 772, 846, 105, 406, 406, 406, 407, 406, - 526, 527, 105, 846, 31, 158, 158, 158, 252, 158, - 337, 106, 338, 467, 467, 467, 468, 467, 469, 469, - 469, 470, 469, 105, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 164, 587, 103, 104, 253, 253, - - 253, 253, 253, 253, 431, 431, 431, 432, 431, 527, - 165, 467, 467, 467, 468, 467, 164, 103, 587, 845, - 845, 253, 253, 253, 253, 253, 325, 326, 326, 326, - 327, 328, 329, 330, 326, 326, 446, 433, 840, 588, - 326, 326, 326, 326, 326, 326, 479, 479, 479, 480, - 479, 346, 346, 346, 347, 346, 351, 176, 840, 177, - 433, 346, 588, 326, 326, 326, 326, 326, 344, 344, - 344, 345, 344, 351, 351, 351, 352, 351, 838, 177, - 176, 353, 353, 353, 354, 353, 592, 326, 348, 526, - 93, 326, 326, 326, 326, 807, 92, 96, 593, 355, - - 355, 355, 356, 355, 101, 838, 97, 578, 364, 592, - 102, 348, 579, 94, 580, 97, 807, 92, 92, 597, - 96, 593, 101, 95, 836, 101, 92, 526, 102, 357, - 357, 357, 358, 357, 94, 103, 104, 619, 527, 92, - 116, 620, 597, 101, 92, 105, 836, 92, 359, 359, - 359, 360, 359, 825, 106, 357, 103, 457, 457, 457, - 458, 457, 117, 116, 544, 92, 105, 549, 545, 107, - 546, 550, 529, 551, 92, 357, 357, 357, 358, 357, - 897, 471, 467, 825, 108, 472, 473, 474, 475, 344, - 469, 107, 109, 109, 107, 92, 824, 110, 110, 479, - - 497, 897, 111, 111, 497, 497, 497, 497, 326, 108, - 824, 190, 191, 109, 109, 107, 107, 93, 110, 110, - 361, 361, 361, 362, 361, 481, 481, 481, 482, 481, - 108, 326, 190, 94, 598, 821, 93, 107, 359, 359, - 359, 360, 359, 95, 93, 821, 374, 374, 374, 374, - 374, 610, 376, 93, 94, 363, 377, 598, 378, 483, - 483, 483, 484, 483, 379, 92, 396, 396, 396, 397, - 396, 113, 816, 114, 610, 115, 555, 619, 363, 98, - 556, 620, 557, 109, 190, 191, 92, 99, 110, 100, - 481, 816, 113, 111, 114, 364, 364, 364, 365, 364, - - 98, 380, 612, 744, 109, 190, 497, 745, 99, 110, - 497, 497, 497, 497, 326, 814, 814, 584, 326, 326, - 326, 326, 585, 744, 586, 612, 497, 745, 366, 502, - 503, 504, 497, 505, 506, 507, 396, 396, 396, 397, - 396, 508, 654, 509, 93, 493, 493, 493, 494, 493, - 117, 366, 138, 138, 138, 240, 138, 553, 553, 553, - 554, 553, 813, 497, 508, 654, 509, 497, 497, 497, - 497, 373, 373, 373, 373, 373, 373, 373, 373, 373, - 373, 495, 813, 164, 210, 373, 373, 373, 373, 373, - 373, 510, 789, 511, 512, 497, 497, 497, 497, 165, - - 211, 789, 841, 211, 495, 164, 842, 210, 373, 373, - 373, 373, 373, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 632, 632, 632, 632, 381, 381, 381, - 381, 381, 381, 510, 782, 511, 512, 497, 497, 497, - 497, 559, 811, 902, 812, 560, 561, 562, 563, 808, - 381, 381, 381, 381, 381, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 632, 632, 632, 632, 387, - 387, 387, 387, 387, 387, 367, 367, 367, 368, 367, - 416, 416, 416, 417, 416, 418, 418, 418, 419, 418, - 774, 752, 387, 387, 387, 387, 387, 388, 388, 388, - - 388, 388, 388, 388, 388, 388, 388, 752, 497, 678, - 685, 388, 388, 388, 388, 388, 388, 416, 416, 416, - 417, 416, 567, 571, 93, 749, 568, 572, 569, 573, - 93, 497, 678, 685, 388, 388, 388, 388, 388, 389, - 389, 389, 389, 389, 389, 389, 389, 389, 389, 483, - 553, 686, 698, 389, 389, 389, 389, 389, 389, 431, - 431, 431, 432, 431, 439, 439, 439, 440, 439, 439, - 439, 439, 440, 439, 686, 698, 389, 389, 389, 389, - 389, 390, 390, 390, 390, 390, 390, 390, 390, 390, - 390, 526, 582, 700, 718, 390, 390, 390, 390, 390, - - 390, 431, 589, 93, 93, 822, 590, 823, 591, 446, - 446, 446, 447, 446, 177, 582, 700, 718, 390, 390, - 390, 390, 390, 420, 159, 159, 159, 421, 159, 422, - 159, 159, 159, 176, 599, 275, 529, 159, 159, 159, - 159, 159, 159, 446, 446, 446, 447, 446, 632, 632, - 632, 632, 594, 719, 276, 177, 176, 595, 275, 596, - 159, 159, 159, 159, 159, 496, 497, 497, 497, 498, - 499, 500, 501, 497, 497, 457, 719, 722, 723, 497, - 497, 497, 497, 497, 497, 749, 743, 406, 93, 625, - 346, 346, 346, 347, 346, 599, 599, 599, 600, 599, - - 722, 723, 497, 497, 497, 497, 497, 344, 344, 344, - 345, 344, 349, 349, 349, 350, 349, 359, 493, 351, - 351, 351, 352, 351, 743, 164, 497, 515, 190, 191, - 497, 497, 497, 497, 737, 92, 353, 353, 353, 354, - 353, 165, 601, 93, 737, 97, 602, 164, 603, 190, - 515, 841, 94, 210, 621, 842, 92, 98, 622, 731, - 623, 109, 95, 705, 92, 99, 110, 100, 101, 731, - 724, 111, 211, 94, 102, 725, 210, 726, 98, 849, - 727, 92, 109, 93, 523, 92, 99, 110, 164, 101, - 103, 104, 355, 355, 355, 356, 355, 349, 694, 695, - - 696, 697, 92, 727, 165, 357, 357, 357, 358, 357, - 164, 103, 599, 599, 599, 600, 599, 93, 359, 359, - 359, 360, 359, 713, 357, 357, 357, 358, 357, 832, - 713, 833, 359, 359, 359, 360, 359, 92, 105, 905, - 627, 98, 808, 728, 628, 107, 629, 106, 605, 99, - 92, 100, 606, 607, 608, 609, 710, 497, 92, 105, - 108, 361, 98, 109, 107, 112, 728, 107, 110, 710, - 99, 92, 687, 111, 736, 704, 688, 109, 689, 108, - 497, 113, 110, 114, 109, 115, 107, 111, 112, 110, - 361, 361, 361, 362, 361, 112, 704, 736, 109, 699, - - 525, 738, 113, 110, 114, 526, 457, 457, 457, 458, - 457, 113, 843, 114, 844, 115, 701, 699, 112, 715, - 702, 867, 703, 497, 738, 516, 659, 497, 497, 497, - 497, 789, 113, 707, 114, 92, 935, 708, 276, 709, - 518, 113, 715, 114, 763, 115, 764, 765, 516, 575, - 575, 575, 576, 575, 527, 693, 92, 809, 693, 211, - 190, 191, 113, 518, 114, 364, 364, 364, 365, 364, - 467, 467, 467, 468, 467, 469, 469, 469, 470, 469, - 809, 190, 872, 93, 497, 577, 810, 374, 497, 497, - 497, 497, 690, 374, 374, 374, 374, 374, 517, 376, - - 901, 690, 682, 377, 276, 378, 746, 630, 577, 810, - 747, 379, 748, 630, 406, 406, 406, 407, 406, 624, - 117, 517, 522, 522, 522, 522, 522, 522, 522, 522, - 522, 522, 732, 733, 734, 735, 522, 522, 522, 522, - 522, 522, 467, 467, 467, 468, 467, 849, 380, 815, - 613, 624, 776, 164, 614, 615, 616, 617, 93, 522, - 522, 522, 522, 522, 523, 523, 523, 523, 523, 165, - 1152, 901, 815, 682, 1152, 164, 378, 523, 523, 523, - 523, 523, 524, 1152, 93, 93, 618, 1152, 618, 378, - 530, 739, 740, 741, 742, 524, 479, 479, 479, 480, - - 479, 481, 481, 481, 482, 481, 483, 483, 483, 484, - 483, 625, 625, 625, 626, 625, 93, 93, 645, 380, - 646, 647, 632, 632, 632, 632, 396, 396, 396, 397, - 396, 611, 380, 531, 532, 523, 523, 523, 532, 533, - 531, 533, 533, 533, 531, 531, 534, 533, 533, 533, - 533, 533, 535, 536, 536, 536, 536, 536, 536, 536, - 536, 536, 536, 533, 533, 533, 533, 536, 536, 536, - 536, 536, 536, 533, 533, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 533, 533, 533, 533, 537, - 536, 536, 536, 536, 536, 533, 533, 533, 533, 533, - - 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 73, 73, 73, 141, 73, 396, - 396, 396, 397, 396, 611, 493, 493, 493, 494, 493, - 604, 575, 604, 538, 538, 538, 538, 538, 538, 538, - 538, 538, 538, 93, 93, 771, 817, 538, 538, 538, - 538, 538, 538, 637, 638, 639, 632, 640, 641, 642, - 828, 631, 581, 827, 211, 643, 275, 644, 771, 817, - 538, 538, 538, 538, 538, 148, 80, 80, 149, 148, - 211, 36, 276, 828, 631, 276, 827, 818, 643, 275, - 644, 819, 581, 820, 540, 540, 540, 540, 540, 540, - - 540, 540, 540, 540, 829, 574, 830, 574, 540, 540, - 540, 540, 540, 540, 637, 638, 639, 632, 640, 641, - 642, 553, 553, 553, 554, 553, 648, 829, 649, 830, - 37, 540, 540, 540, 540, 540, 83, 83, 83, 151, - 83, 645, 831, 646, 647, 632, 632, 632, 632, 648, - 570, 649, 38, 570, 93, 541, 541, 541, 541, 541, - 541, 541, 541, 541, 541, 831, 93, 565, 565, 541, - 541, 541, 541, 541, 541, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 38, 39, 541, 541, 541, 541, 541, 38, 38, 38, - + 4, 10, 4, 4, 4, 11, 12, 13, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 15, 4, + 4, 16, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 18, 17, 17, 19, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 18, 17, 17, 20, 21, 17, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, + 23, 23, 23, 23, 28, 31, 28, 35, 63, 22, + + 22, 22, 22, 22, 63, 24, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 72, 1102, 1102, 75, + 44, 76, 133, 28, 58, 95, 73, 74, 25, 63, + 59, 75, 32, 76, 60, 1096, 37, 61, 72, 34, + 65, 29, 26, 96, 62, 133, 65, 58, 95, 77, + 253, 25, 40, 59, 32, 32, 60, 41, 42, 61, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 29, 65, 77, 253, 44, 44, 45, 46, 47, 44, + 48, 49, 50, 44, 51, 44, 52, 44, 44, 53, + 54, 55, 44, 44, 44, 44, 56, 44, 44, 45, + + 46, 47, 44, 48, 49, 50, 51, 44, 52, 44, + 44, 53, 54, 55, 44, 44, 44, 44, 63, 28, + 44, 1102, 63, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 102, 103, 23, 23, 23, 23, 23, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 558, 558, 552, 38, 153, 85, 85, 154, - 153, 416, 416, 416, 417, 416, 36, 552, 908, 632, - 632, 632, 632, 523, 93, 542, 542, 542, 542, 542, - 542, 542, 542, 542, 542, 164, 834, 835, 526, 542, - 542, 542, 542, 542, 542, 1099, 367, 367, 367, 368, - 367, 165, 418, 418, 418, 419, 418, 164, 385, 834, - 835, 41, 542, 542, 542, 542, 542, 543, 543, 543, - 543, 543, 543, 543, 543, 543, 543, 383, 93, 632, - 837, 543, 543, 543, 543, 543, 543, 527, 492, 349, - - 349, 349, 350, 349, 492, 488, 344, 344, 344, 345, - 344, 93, 632, 837, 543, 543, 543, 543, 543, 632, - 632, 632, 632, 633, 634, 635, 636, 632, 632, 632, - 632, 632, 632, 632, 632, 632, 632, 632, 632, 346, - 346, 346, 347, 346, 98, 488, 351, 351, 351, 352, - 351, 94, 99, 476, 100, 476, 632, 632, 632, 632, - 632, 95, 465, 465, 456, 98, 353, 353, 353, 354, - 353, 456, 94, 99, 528, 839, 650, 93, 355, 355, - 355, 356, 355, 526, 92, 357, 357, 357, 358, 357, - 430, 92, 662, 430, 97, 101, 808, 526, 839, 650, - - 426, 102, 426, 903, 93, 92, 416, 416, 416, 417, - 416, 92, 92, 665, 941, 414, 101, 414, 405, 935, - 103, 104, 526, 92, 105, 107, 903, 405, 529, 93, - 92, 401, 92, 106, 359, 359, 359, 360, 359, 401, - 108, 103, 251, 941, 92, 105, 527, 107, 374, 385, - 383, 92, 705, 705, 705, 706, 705, 364, 364, 364, - 365, 364, 357, 357, 357, 358, 357, 529, 324, 808, - 324, 359, 359, 359, 360, 359, 904, 93, 93, 109, - 632, 632, 632, 632, 110, 93, 315, 315, 93, 111, - 652, 632, 632, 632, 632, 632, 968, 93, 968, 904, - - 109, 776, 107, 523, 653, 110, 361, 361, 361, 362, - 361, 308, 117, 652, 986, 941, 109, 108, 632, 659, - 935, 110, 308, 211, 107, 301, 111, 653, 523, 523, - 523, 523, 523, 968, 1096, 301, 93, 109, 776, 1097, - 378, 651, 110, 1073, 1096, 93, 657, 526, 374, 1119, - 1104, 92, 406, 406, 406, 407, 406, 113, 1117, 114, - 93, 115, 283, 1097, 651, 439, 439, 439, 440, 439, - 283, 93, 92, 575, 575, 575, 576, 575, 113, 93, - 114, 656, 656, 656, 656, 656, 656, 656, 656, 656, - 656, 164, 529, 273, 273, 656, 656, 656, 656, 656, - - 656, 439, 439, 439, 440, 439, 1073, 165, 266, 583, - 1117, 935, 1130, 164, 266, 1119, 93, 1119, 656, 656, - 656, 656, 656, 523, 523, 523, 523, 523, 276, 1152, - 93, 93, 583, 1152, 1096, 378, 658, 251, 146, 1013, - 144, 524, 659, 659, 659, 659, 659, 446, 446, 446, - 447, 446, 235, 93, 660, 523, 523, 523, 523, 523, - 661, 1152, 93, 93, 93, 1152, 93, 378, 446, 446, - 446, 447, 446, 524, 93, 93, 93, 93, 380, 525, - 525, 663, 599, 599, 599, 600, 599, 431, 431, 431, - 432, 431, 599, 599, 599, 600, 599, 664, 664, 664, - - 664, 664, 664, 664, 664, 664, 664, 93, 93, 93, - 380, 664, 664, 664, 664, 664, 664, 93, 90, 39, - 714, 467, 467, 467, 468, 467, 469, 469, 469, 470, - 469, 146, 144, 133, 664, 664, 664, 664, 664, 528, - 528, 666, 177, 714, 467, 467, 467, 468, 467, 479, - 479, 479, 480, 479, 93, 93, 91, 667, 667, 667, - 667, 667, 667, 667, 667, 667, 667, 90, 88, 39, - 78, 667, 667, 667, 667, 667, 667, 481, 481, 481, - 482, 481, 483, 483, 483, 484, 483, 625, 625, 625, - 626, 625, 77, 76, 667, 667, 667, 667, 667, 668, - - 669, 669, 669, 669, 669, 75, 668, 64, 46, 1148, - 668, 668, 671, 672, 1119, 39, 1152, 1152, 673, 523, - 523, 523, 523, 523, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 378, 523, 523, 523, 523, 523, 524, 1152, 1152, - 1152, 1152, 1152, 1152, 378, 457, 457, 457, 458, 457, - 524, 1152, 1152, 1152, 1152, 674, 1152, 523, 523, 523, - 523, 523, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 378, - 1152, 1152, 1152, 1152, 380, 524, 523, 523, 523, 523, - 523, 1152, 1152, 1152, 1152, 1152, 1152, 380, 378, 658, - 775, 775, 1152, 1152, 524, 1152, 1152, 1152, 993, 190, - - 191, 997, 755, 756, 757, 1152, 758, 759, 760, 775, - 775, 775, 380, 1152, 761, 1152, 762, 1152, 993, 1152, - 190, 997, 1152, 1152, 1152, 493, 493, 493, 494, 493, - 1152, 380, 532, 532, 532, 675, 532, 761, 1152, 762, - 1152, 1152, 1152, 998, 378, 367, 367, 367, 368, 367, - 524, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 753, 1152, 998, 1152, 676, 676, 676, 676, 676, - 676, 396, 396, 396, 397, 396, 1152, 1152, 1152, 1152, - 211, 1152, 1152, 1152, 753, 1152, 1152, 380, 676, 676, - 676, 676, 676, 531, 532, 523, 523, 523, 532, 533, - - 531, 533, 533, 533, 531, 531, 534, 533, 533, 533, - 533, 533, 535, 536, 536, 536, 536, 536, 536, 536, - 536, 536, 536, 533, 533, 533, 533, 536, 536, 536, - 536, 536, 536, 533, 533, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 533, 533, 533, 533, 537, - 536, 536, 536, 536, 536, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 73, 73, 73, 141, 73, 396, - 396, 396, 397, 396, 1152, 148, 80, 80, 149, 148, - 1152, 36, 1152, 677, 677, 677, 677, 677, 677, 677, - - 677, 677, 677, 1152, 1152, 1152, 1152, 677, 677, 677, - 677, 677, 677, 755, 756, 757, 1152, 758, 759, 760, - 344, 344, 344, 345, 344, 766, 1152, 767, 1152, 1152, - 677, 677, 677, 677, 677, 148, 80, 80, 149, 148, - 37, 36, 553, 553, 553, 554, 553, 1152, 766, 1152, - 767, 1152, 1152, 1152, 679, 679, 679, 679, 679, 679, - 679, 679, 679, 679, 1152, 94, 1152, 1152, 679, 679, - 679, 679, 679, 679, 1152, 95, 1152, 349, 349, 349, - 350, 349, 1152, 1152, 1152, 1152, 94, 1152, 1152, 1152, - 37, 679, 679, 679, 679, 679, 680, 680, 680, 680, - - 680, 680, 680, 680, 680, 680, 1152, 1152, 1152, 1152, - 680, 680, 680, 680, 680, 680, 416, 416, 416, 417, - 416, 1152, 98, 355, 355, 355, 356, 355, 1152, 1152, - 99, 1152, 100, 680, 680, 680, 680, 680, 153, 85, - 85, 154, 153, 98, 1152, 1152, 1152, 1152, 36, 1152, - 1152, 99, 418, 418, 418, 419, 418, 681, 681, 681, - 681, 681, 681, 681, 681, 681, 681, 1152, 1152, 105, - 1152, 681, 681, 681, 681, 681, 681, 1152, 106, 353, - 353, 353, 354, 353, 416, 416, 416, 417, 416, 1152, - 105, 1152, 1152, 41, 681, 681, 681, 681, 681, 682, - - 682, 682, 682, 682, 682, 682, 682, 682, 682, 1152, - 1152, 1152, 1152, 682, 682, 682, 682, 682, 682, 351, - 351, 351, 352, 351, 1152, 1152, 1152, 1152, 346, 346, - 346, 347, 346, 103, 104, 1152, 682, 682, 682, 682, - 682, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 1152, 1152, 1152, 103, 754, 754, 754, 754, 754, - 754, 1152, 1152, 1152, 1152, 768, 1152, 1152, 101, 357, - 357, 357, 358, 357, 102, 1152, 1152, 1152, 754, 754, - 754, 754, 754, 97, 1152, 1152, 1152, 1152, 768, 101, - 359, 359, 359, 360, 359, 361, 361, 361, 362, 361, - - 1152, 1152, 1152, 364, 364, 364, 365, 364, 1152, 107, - 1152, 357, 357, 357, 358, 357, 406, 406, 406, 407, - 406, 1152, 1152, 1152, 108, 359, 359, 359, 360, 359, - 769, 107, 1152, 1152, 1152, 109, 770, 1152, 1152, 1152, - 110, 907, 907, 1152, 1152, 111, 113, 1152, 114, 1045, - 115, 107, 1061, 769, 1152, 164, 109, 1152, 117, 770, - 1152, 110, 1152, 1152, 1152, 1152, 108, 113, 1152, 114, - 109, 165, 1152, 107, 1152, 110, 1152, 164, 1152, 1152, - 111, 705, 705, 705, 706, 705, 439, 439, 439, 440, - 439, 109, 1152, 1152, 1062, 1152, 110, 773, 773, 773, - - 773, 773, 773, 773, 773, 773, 773, 1152, 1152, 1152, - 1152, 773, 773, 773, 773, 773, 773, 1152, 1152, 1152, - 1152, 575, 575, 575, 576, 575, 439, 439, 439, 440, - 439, 1152, 1152, 1152, 773, 773, 773, 773, 773, 775, - 776, 776, 776, 776, 776, 1152, 775, 1152, 1152, 1152, - 775, 775, 778, 779, 1152, 1152, 1152, 715, 780, 659, - 659, 659, 659, 659, 1152, 1152, 669, 669, 669, 669, - 669, 660, 1152, 775, 775, 775, 276, 661, 671, 789, - 715, 1152, 993, 1152, 790, 997, 1152, 1152, 1152, 523, - 532, 523, 523, 523, 1152, 781, 783, 662, 662, 784, - - 783, 378, 526, 1152, 1152, 1152, 1152, 524, 431, 431, - 431, 432, 431, 1152, 1152, 785, 785, 785, 785, 785, - 785, 785, 785, 785, 785, 1152, 1152, 998, 1152, 785, - 785, 785, 785, 785, 785, 446, 446, 446, 447, 446, - 1152, 826, 1152, 1152, 380, 446, 446, 446, 447, 446, - 1152, 527, 785, 785, 785, 785, 785, 786, 665, 665, - 787, 786, 1152, 177, 826, 1152, 1152, 526, 599, 599, - 599, 600, 599, 1152, 1152, 1152, 788, 788, 788, 788, - 788, 788, 788, 788, 788, 788, 1152, 1152, 1152, 1152, - 788, 788, 788, 788, 788, 788, 599, 599, 599, 600, - - 599, 467, 467, 467, 468, 467, 457, 457, 457, 458, - 457, 1152, 529, 788, 788, 788, 788, 788, 668, 669, - 669, 669, 669, 669, 1152, 668, 1152, 1152, 1152, 668, - 668, 671, 672, 1152, 1152, 1152, 1152, 673, 469, 469, - 469, 470, 469, 467, 467, 467, 468, 467, 479, 479, - 479, 480, 479, 481, 481, 481, 482, 481, 1152, 1152, - 190, 191, 483, 483, 483, 484, 483, 625, 625, 625, - 626, 625, 1152, 1152, 674, 791, 792, 792, 792, 792, - 792, 190, 791, 1152, 1152, 1152, 791, 791, 794, 672, - 1152, 1152, 1152, 1152, 795, 118, 118, 118, 215, 118, - - 1152, 1152, 493, 493, 493, 494, 493, 344, 344, 344, - 345, 344, 346, 346, 346, 347, 346, 1152, 1152, 355, - 355, 355, 356, 355, 1152, 364, 364, 364, 365, 364, - 1152, 796, 668, 669, 669, 669, 669, 669, 847, 668, - 1152, 1152, 1152, 668, 668, 671, 797, 1152, 1152, 96, - 93, 673, 94, 1152, 1152, 1152, 1152, 211, 116, 1152, - 1152, 847, 95, 1152, 1152, 105, 1152, 97, 1152, 1152, - 1152, 1152, 96, 94, 106, 138, 138, 138, 240, 138, - 117, 116, 1152, 1152, 1152, 1152, 105, 1152, 674, 798, - 799, 669, 669, 669, 799, 800, 798, 800, 800, 800, - - 798, 798, 801, 802, 800, 800, 800, 800, 803, 804, - 804, 804, 804, 804, 804, 804, 804, 804, 804, 800, - 800, 800, 800, 804, 804, 804, 804, 804, 804, 800, - 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, - 800, 800, 800, 800, 800, 805, 804, 804, 804, 804, - 804, 800, 800, 800, 800, 800, 800, 800, 800, 800, - 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, - 532, 532, 532, 675, 532, 553, 553, 553, 554, 553, - 1152, 1152, 378, 357, 357, 357, 358, 357, 524, 806, - 806, 806, 806, 806, 806, 806, 806, 806, 806, 1152, - - 1152, 808, 1152, 806, 806, 806, 806, 806, 806, 775, - 775, 1152, 1152, 993, 705, 705, 705, 706, 705, 1152, - 994, 1152, 1152, 107, 1152, 380, 806, 806, 806, 806, - 806, 73, 73, 73, 141, 73, 1152, 682, 108, 682, - 705, 705, 705, 706, 705, 107, 1152, 1152, 1152, 1152, - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, - 1152, 1152, 995, 808, 70, 70, 70, 70, 70, 70, - 353, 353, 353, 354, 353, 1152, 599, 599, 599, 600, - 599, 1152, 1152, 1152, 1152, 1152, 1152, 70, 70, 70, - 70, 70, 38, 38, 38, 38, 38, 38, 38, 38, - - 38, 38, 808, 1152, 1152, 1152, 38, 38, 38, 38, - 38, 38, 1152, 367, 367, 367, 368, 367, 599, 599, - 599, 600, 599, 1152, 103, 104, 1152, 1152, 1152, 38, - 38, 38, 38, 38, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 808, 103, 1152, 1152, 40, 40, - 40, 40, 40, 40, 349, 349, 349, 350, 349, 1152, - 1152, 1152, 1152, 351, 351, 351, 352, 351, 93, 1152, - 1152, 40, 40, 40, 40, 40, 808, 808, 808, 808, - 808, 808, 808, 808, 808, 808, 1152, 1152, 1152, 1152, - 808, 808, 808, 808, 808, 808, 1152, 1152, 1152, 98, - - 359, 359, 359, 360, 359, 1152, 1152, 99, 1152, 100, - 1152, 1152, 101, 808, 808, 808, 808, 808, 102, 1152, - 98, 361, 361, 361, 362, 361, 1152, 1152, 99, 1152, - 1152, 1152, 1152, 101, 1152, 357, 357, 357, 358, 357, - 1152, 1152, 775, 775, 775, 109, 1152, 993, 1152, 1152, - 110, 1152, 1152, 1152, 994, 111, 112, 359, 359, 359, - 360, 359, 1152, 1152, 1152, 1152, 109, 1152, 1152, 1152, - 1152, 110, 113, 1152, 114, 107, 115, 1152, 1152, 112, - 118, 118, 118, 215, 118, 118, 118, 118, 215, 118, - 108, 1152, 1152, 113, 1152, 114, 995, 107, 775, 775, - - 775, 1152, 109, 993, 1152, 1152, 1152, 110, 1152, 1152, - 994, 1152, 111, 118, 118, 118, 215, 118, 1152, 164, - 1152, 1152, 1152, 109, 1152, 1152, 1152, 1152, 110, 118, - 118, 118, 215, 118, 1152, 165, 1152, 1152, 1152, 1152, - 93, 164, 776, 776, 776, 776, 776, 907, 907, 210, - 1152, 1045, 995, 1152, 778, 849, 1152, 1152, 1046, 1152, - 850, 873, 873, 873, 873, 873, 1152, 1152, 211, 1152, - 1152, 1152, 210, 874, 872, 1152, 1152, 1152, 1152, 875, - 1152, 1152, 1152, 1152, 93, 775, 776, 776, 776, 776, - 776, 1152, 775, 1152, 1152, 1152, 775, 775, 778, 779, - - 1047, 1152, 1152, 1152, 780, 374, 374, 374, 374, 374, - 1152, 376, 1152, 1152, 1152, 377, 1152, 378, 658, 1152, - 1152, 1152, 1152, 379, 158, 158, 158, 252, 158, 396, - 396, 396, 397, 396, 396, 396, 396, 397, 396, 1152, - 1152, 781, 851, 852, 852, 852, 852, 852, 1152, 851, - 1152, 1152, 1152, 851, 851, 854, 779, 1152, 1152, 1152, - 380, 855, 1152, 1152, 1152, 1152, 406, 406, 406, 407, - 406, 416, 416, 416, 417, 416, 1152, 1152, 1152, 93, - 1152, 1152, 1152, 1152, 93, 1152, 1152, 1152, 1152, 93, - 418, 418, 418, 419, 418, 1152, 1152, 1152, 856, 775, - - 776, 776, 776, 776, 776, 164, 775, 1152, 1152, 1152, - 775, 775, 778, 857, 1152, 1152, 1152, 1152, 780, 1152, - 1152, 165, 1152, 1152, 1152, 1152, 93, 164, 625, 625, - 625, 626, 625, 1152, 909, 909, 909, 909, 909, 1152, - 1152, 1152, 1152, 1152, 1152, 93, 910, 908, 1152, 1152, - 1152, 1152, 911, 1152, 808, 781, 858, 859, 776, 776, - 776, 859, 860, 858, 860, 860, 860, 858, 858, 861, - 862, 860, 860, 860, 860, 863, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 860, 860, 860, 860, - 864, 864, 864, 864, 864, 864, 860, 860, 860, 860, - - 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, - 860, 860, 865, 864, 864, 864, 864, 864, 860, 860, - 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, - 860, 860, 860, 860, 860, 860, 860, 783, 662, 662, - 784, 783, 1152, 526, 1152, 1152, 1152, 1152, 416, 416, - 416, 417, 416, 1152, 1152, 1152, 868, 868, 868, 868, - 868, 868, 868, 868, 868, 868, 1152, 1152, 1152, 1152, - 868, 868, 868, 868, 868, 868, 907, 907, 907, 1152, - 1152, 1045, 431, 431, 431, 432, 431, 1152, 1046, 1152, - 1152, 1152, 527, 868, 868, 868, 868, 868, 786, 665, - - 665, 787, 786, 93, 1152, 1152, 1152, 1152, 526, 1152, - 1152, 1152, 1152, 1152, 1152, 176, 1152, 869, 869, 869, - 869, 869, 869, 869, 869, 869, 869, 1152, 1152, 1152, - 1047, 869, 869, 869, 869, 869, 869, 177, 176, 575, - 575, 575, 576, 575, 158, 158, 158, 252, 158, 1152, - 1152, 1152, 1152, 529, 869, 869, 869, 869, 869, 871, - 873, 873, 873, 873, 873, 808, 871, 1152, 1152, 1152, - 871, 871, 874, 877, 1152, 827, 1152, 1152, 878, 1152, - 275, 1152, 1152, 873, 873, 873, 873, 873, 1119, 1119, - 1119, 1119, 1119, 1152, 276, 874, 872, 1152, 827, 276, - - 1131, 875, 1152, 275, 1152, 1152, 1132, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 879, 880, 881, 873, 873, - 873, 881, 882, 880, 882, 882, 882, 880, 880, 883, - 884, 882, 882, 882, 882, 885, 886, 886, 886, 886, - 886, 886, 886, 886, 886, 886, 882, 882, 882, 882, - 886, 886, 886, 886, 886, 886, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, - 882, 882, 887, 886, 886, 886, 886, 886, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 888, 889, 889, - - 889, 889, 889, 1152, 888, 1152, 1152, 1152, 888, 888, - 891, 672, 1152, 1152, 1152, 1152, 892, 158, 158, 158, - 252, 158, 439, 439, 439, 440, 439, 439, 439, 439, - 440, 439, 446, 446, 446, 447, 446, 446, 446, 446, - 447, 446, 457, 457, 457, 458, 457, 467, 467, 467, - 468, 467, 1152, 893, 668, 669, 669, 669, 669, 669, - 1152, 668, 1152, 1152, 1152, 668, 668, 671, 672, 1152, - 1152, 1152, 93, 673, 851, 851, 851, 93, 1152, 1017, - 1152, 1152, 93, 1152, 1152, 1152, 994, 93, 1152, 1152, - 1152, 1018, 93, 1152, 1152, 1152, 190, 191, 1152, 1152, - - 1152, 1152, 93, 469, 469, 469, 470, 469, 1152, 1152, - 674, 668, 669, 669, 669, 669, 669, 190, 668, 1152, - 1152, 1152, 668, 668, 671, 672, 1152, 1152, 1019, 1152, - 673, 467, 467, 467, 468, 467, 479, 479, 479, 480, - 479, 481, 481, 481, 482, 481, 483, 483, 483, 484, - 483, 1152, 493, 493, 493, 494, 493, 1152, 93, 158, - 158, 158, 252, 158, 1152, 1152, 1152, 674, 668, 669, - 669, 669, 669, 669, 1152, 668, 1152, 1152, 1152, 668, - 668, 671, 672, 1152, 1152, 1152, 93, 673, 210, 1152, - 1152, 93, 1152, 1152, 1152, 1152, 93, 775, 775, 775, - - 1152, 93, 993, 1152, 1152, 1152, 1152, 211, 1152, 994, - 1152, 210, 1152, 1152, 93, 1152, 553, 553, 553, 554, - 553, 1152, 1152, 1152, 674, 668, 669, 669, 669, 669, - 669, 1152, 668, 1152, 1152, 1152, 668, 668, 671, 672, - 1152, 1152, 1152, 1152, 673, 523, 523, 523, 523, 523, - 1152, 995, 942, 942, 942, 942, 942, 378, 658, 1152, - 1152, 1152, 1152, 524, 943, 941, 1152, 1152, 1152, 1152, - 944, 93, 575, 575, 575, 576, 575, 1152, 1152, 1152, - 1152, 674, 791, 792, 792, 792, 792, 792, 1152, 791, - 1152, 1152, 1152, 791, 791, 794, 672, 1152, 1152, 1152, - - 380, 795, 599, 599, 599, 600, 599, 1152, 275, 599, - 599, 599, 600, 599, 625, 625, 625, 626, 625, 705, - 705, 705, 706, 705, 907, 907, 907, 276, 1152, 1152, - 1152, 275, 1152, 1045, 1152, 1152, 1061, 1152, 796, 668, - 669, 669, 669, 669, 669, 1152, 668, 1152, 1152, 1152, - 668, 668, 671, 797, 1152, 1152, 1152, 93, 673, 909, - 909, 909, 909, 909, 93, 1152, 1152, 1152, 1152, 93, - 1152, 910, 908, 1152, 93, 1152, 1152, 911, 1062, 1152, - 1152, 783, 662, 662, 784, 783, 1152, 526, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 674, 668, 799, 799, 799, - - 894, 799, 1152, 668, 1152, 1152, 1152, 668, 668, 671, - 672, 1152, 1152, 1152, 1152, 673, 895, 895, 895, 895, - 895, 895, 895, 895, 895, 895, 1152, 1152, 1152, 1152, - 895, 895, 895, 895, 895, 895, 527, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 674, 895, 895, 895, 895, 895, 798, 799, - 669, 669, 669, 799, 800, 798, 800, 800, 800, 798, - 798, 801, 802, 800, 800, 800, 800, 803, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, 800, 800, - 800, 800, 804, 804, 804, 804, 804, 804, 800, 800, - - 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, - 800, 800, 800, 800, 805, 804, 804, 804, 804, 804, - 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, - 800, 800, 800, 800, 800, 800, 800, 800, 800, 532, - 532, 532, 675, 532, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 378, 1152, 1152, 1152, 1152, 1152, 524, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 1152, 1152, - 1152, 1152, 896, 896, 896, 896, 896, 896, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 380, 896, 896, 896, 896, 896, - - 158, 158, 158, 252, 158, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 808, - 808, 808, 808, 808, 808, 808, 898, 808, 808, 1152, - 851, 851, 851, 808, 808, 808, 808, 808, 808, 1017, - 1152, 1152, 997, 1152, 1152, 1152, 1152, 1025, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 93, 808, 808, 808, 808, - 808, 682, 682, 682, 682, 899, 682, 900, 682, 682, - 682, 1152, 1152, 1152, 1152, 682, 682, 682, 682, 682, - 682, 1152, 1152, 1152, 1026, 786, 665, 665, 787, 786, - 1152, 1152, 1152, 1152, 1152, 526, 1152, 1152, 682, 682, - - 682, 682, 682, 907, 909, 909, 909, 909, 909, 1152, - 907, 1152, 1152, 1152, 907, 907, 910, 913, 1152, 1152, - 1152, 1152, 914, 969, 969, 969, 969, 969, 1152, 1152, - 942, 942, 942, 942, 942, 970, 968, 1152, 1152, 1152, - 529, 971, 943, 941, 1152, 1152, 1152, 1152, 944, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 915, - 916, 917, 909, 909, 909, 917, 918, 916, 918, 918, - 918, 916, 916, 919, 920, 918, 918, 918, 918, 921, - 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, - 918, 918, 918, 918, 922, 922, 922, 922, 922, 922, - - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918, - 918, 918, 918, 918, 918, 918, 923, 922, 922, 922, - 922, 922, 918, 918, 918, 918, 918, 918, 918, 918, - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918, - 918, 924, 925, 925, 925, 925, 925, 1152, 924, 1152, - 1152, 1152, 924, 924, 927, 779, 1152, 1152, 1152, 1152, - 928, 969, 969, 969, 969, 969, 1152, 1152, 1013, 1013, - 1013, 1013, 1013, 970, 968, 1152, 1152, 1152, 1152, 971, - 1014, 849, 1152, 1152, 1152, 1152, 1015, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 929, 775, 776, - - 776, 776, 776, 776, 1152, 775, 1152, 1152, 1152, 775, - 775, 778, 779, 1152, 1152, 1152, 1152, 780, 532, 532, - 532, 675, 532, 1152, 1152, 1013, 1013, 1013, 1013, 1013, - 378, 1152, 1152, 1152, 1152, 1152, 524, 1014, 849, 1152, - 1152, 1152, 1152, 1015, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 781, 775, 776, 776, 776, 776, - 776, 1152, 775, 1152, 1152, 1152, 775, 775, 778, 779, - 1152, 1152, 1152, 380, 780, 1048, 1048, 1048, 1048, 1048, - 1018, 523, 523, 523, 1018, 1152, 526, 1049, 908, 851, - 851, 851, 1051, 1050, 1017, 775, 775, 775, 1052, 1152, - - 1152, 994, 1152, 1152, 993, 1152, 1018, 997, 1152, 1152, - 1152, 781, 775, 776, 776, 776, 776, 776, 1152, 775, - 1152, 1152, 1152, 775, 775, 778, 779, 1152, 1152, 1152, - 1152, 780, 907, 907, 907, 527, 1025, 523, 523, 523, - 1025, 1045, 1152, 1019, 1061, 1152, 526, 1152, 1063, 998, - 851, 851, 851, 1152, 1064, 1152, 1152, 1152, 1152, 1017, - 1152, 1152, 997, 1152, 1152, 1152, 1152, 1025, 781, 775, - 776, 776, 776, 776, 776, 1152, 775, 1152, 1152, 1152, - 775, 775, 778, 779, 1152, 1152, 1062, 1152, 780, 1152, - 1152, 529, 1152, 1074, 1074, 1074, 1074, 1074, 907, 907, - - 907, 1152, 1152, 1045, 1026, 1075, 1073, 851, 851, 851, - 1046, 1076, 1017, 1152, 1152, 1152, 1152, 1152, 1152, 1046, - 1152, 1152, 1152, 1152, 1018, 781, 851, 852, 852, 852, - 852, 852, 1152, 851, 1152, 1152, 1152, 851, 851, 854, - 779, 1152, 1152, 1152, 1152, 855, 1048, 1048, 1048, 1048, - 1048, 1152, 1047, 1048, 1048, 1048, 1048, 1048, 1049, 908, - 1152, 1019, 1152, 1152, 1050, 1049, 908, 907, 907, 907, - 1152, 1050, 1045, 1152, 1152, 1152, 1152, 1152, 1152, 1046, - 1152, 1152, 856, 775, 776, 776, 776, 776, 776, 1152, - 775, 1152, 1152, 1152, 775, 775, 778, 857, 1152, 1152, - - 1152, 1152, 780, 851, 851, 851, 1152, 1152, 1017, 1152, - 1152, 1152, 1152, 1152, 1152, 1046, 1152, 775, 775, 775, - 1018, 1047, 993, 1152, 1152, 1152, 1020, 775, 775, 994, - 1152, 993, 1152, 1152, 1152, 1152, 1152, 1152, 994, 781, - 775, 859, 859, 859, 930, 859, 1152, 775, 1152, 1152, - 1152, 775, 775, 778, 779, 1152, 1152, 1019, 1152, 780, - 931, 931, 931, 931, 931, 931, 931, 931, 931, 931, - 1152, 995, 1152, 1152, 931, 931, 931, 931, 931, 931, - 995, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 781, 931, 931, 931, - - 931, 931, 858, 859, 776, 776, 776, 859, 860, 858, - 860, 860, 860, 858, 858, 861, 862, 860, 860, 860, - 860, 863, 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 860, 860, 860, 860, 864, 864, 864, 864, - 864, 864, 860, 860, 860, 860, 860, 860, 860, 860, - 860, 860, 860, 860, 860, 860, 860, 860, 865, 864, - 864, 864, 864, 864, 860, 860, 860, 860, 860, 860, - 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, - 860, 860, 860, 783, 662, 662, 784, 783, 1152, 526, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 933, 933, 933, 933, 933, 933, 933, 933, - 933, 933, 1152, 1152, 1152, 1152, 933, 933, 933, 933, - 933, 933, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 527, 933, - 933, 933, 933, 933, 786, 665, 665, 787, 786, 1152, - 1152, 1152, 1152, 1152, 526, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 934, 934, 934, 934, 934, 934, 934, - 934, 934, 934, 1152, 851, 851, 851, 934, 934, 934, - 934, 934, 934, 1017, 1152, 1152, 1061, 1152, 1152, 1152, - 1152, 1025, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 529, - - 934, 934, 934, 934, 934, 871, 873, 873, 873, 873, - 873, 1152, 871, 1152, 1152, 1152, 871, 871, 874, 877, - 1152, 1152, 1152, 1152, 878, 907, 907, 907, 1026, 851, - 851, 851, 1152, 1152, 1045, 1152, 1152, 1061, 1017, 1152, - 1152, 1061, 775, 775, 775, 1152, 1025, 1027, 775, 775, - 1152, 993, 1152, 1152, 997, 1152, 993, 1152, 1152, 997, - 1152, 879, 791, 792, 792, 792, 792, 792, 1152, 791, - 1152, 1152, 1152, 791, 791, 794, 877, 1152, 1152, 1062, - 1152, 795, 1152, 1026, 1152, 1074, 1074, 1074, 1074, 1074, - 775, 775, 775, 1152, 1152, 993, 998, 1075, 1073, 1152, - - 1152, 998, 994, 1076, 907, 907, 907, 1152, 1152, 1045, - 1152, 1152, 1152, 1152, 1152, 1152, 1046, 1152, 796, 871, - 873, 873, 873, 873, 873, 1152, 871, 1152, 1152, 1152, - 871, 871, 874, 937, 1152, 1152, 1152, 1152, 878, 1097, - 1097, 1097, 1097, 1097, 995, 1152, 1152, 1152, 1152, 1152, - 1152, 1120, 867, 1152, 1152, 1152, 1152, 1121, 1047, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 879, 880, 881, 873, 873, - 873, 881, 882, 880, 882, 882, 882, 880, 880, 883, - 884, 882, 882, 882, 882, 885, 886, 886, 886, 886, - - 886, 886, 886, 886, 886, 886, 882, 882, 882, 882, - 886, 886, 886, 886, 886, 886, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, - 882, 882, 887, 886, 886, 886, 886, 886, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 871, 873, 873, - 873, 873, 873, 1152, 871, 1152, 1152, 1152, 871, 871, - 874, 877, 1152, 1152, 1152, 1152, 878, 1053, 907, 907, - 1152, 1152, 1045, 775, 775, 775, 1152, 1152, 1152, 1046, - 1152, 1152, 993, 1152, 1152, 997, 907, 907, 907, 1152, - - 1065, 907, 907, 1152, 1152, 1045, 1152, 1152, 1061, 1045, - 1152, 1152, 1061, 879, 871, 873, 873, 873, 873, 873, - 1152, 871, 1152, 1152, 1152, 871, 871, 874, 877, 1152, - 1152, 1047, 1152, 878, 1152, 1152, 1152, 998, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1062, 1152, 1152, 1152, 1062, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 879, 871, 873, 873, 873, 873, 873, 1152, 871, 1152, - 1152, 1152, 871, 871, 874, 877, 1152, 1152, 1152, 1152, - 878, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 879, 871, 873, - 873, 873, 873, 873, 1152, 871, 1152, 1152, 1152, 871, - 871, 874, 877, 1152, 1152, 1152, 1152, 878, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 879, 791, 792, 792, 792, 792, - 792, 1152, 791, 1152, 1152, 1152, 791, 791, 794, 877, - - 1152, 1152, 1152, 1152, 795, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 796, 871, 873, 873, 873, 873, 873, 1152, 871, - 1152, 1152, 1152, 871, 871, 874, 937, 1152, 1152, 1152, - 1152, 878, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 879, 871, - - 881, 881, 881, 938, 881, 1152, 871, 1152, 1152, 1152, - 871, 871, 874, 877, 1152, 1152, 1152, 1152, 878, 939, - 939, 939, 939, 939, 939, 939, 939, 939, 939, 1152, - 1152, 1152, 1152, 939, 939, 939, 939, 939, 939, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 879, 939, 939, 939, 939, - 939, 940, 942, 942, 942, 942, 942, 1152, 940, 1152, - 1152, 1152, 940, 940, 943, 946, 1152, 1152, 1152, 1152, - 947, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 948, 775, 935, - 935, 935, 935, 935, 1152, 949, 1152, 1152, 1152, 950, - 775, 778, 857, 1152, 1152, 1152, 1152, 951, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 781, 952, 953, 942, 942, 942, - 953, 954, 952, 954, 954, 954, 952, 952, 955, 956, - 954, 954, 954, 954, 957, 958, 958, 958, 958, 958, - - 958, 958, 958, 958, 958, 954, 954, 954, 954, 958, - 958, 958, 958, 958, 958, 954, 954, 954, 954, 954, - 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, - 954, 959, 958, 958, 958, 958, 958, 954, 954, 954, - 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, - 954, 954, 954, 954, 954, 954, 668, 669, 799, 669, - 669, 669, 1152, 668, 1152, 1152, 1152, 668, 668, 671, - 672, 1152, 1152, 1152, 1152, 673, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 674, 668, 799, 799, 799, 894, 799, 1152, - 668, 1152, 1152, 1152, 668, 668, 671, 672, 1152, 1152, - 1152, 1152, 673, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 1152, 1152, 1152, 1152, 960, 960, 960, - 960, 960, 960, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 674, - 960, 960, 960, 960, 960, 532, 532, 532, 675, 532, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 378, 1152, 1152, - 1152, 1152, 1152, 524, 961, 961, 961, 961, 961, 961, - - 961, 961, 961, 961, 1152, 1152, 1152, 1152, 961, 961, - 961, 961, 961, 961, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 380, 961, 961, 961, 961, 961, 158, 158, 158, 252, - 158, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 808, 808, 808, 808, 962, - 808, 808, 808, 808, 808, 1152, 1152, 1152, 1152, 808, - 808, 808, 808, 808, 808, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 93, 808, 808, 808, 808, 808, 907, 909, 909, - - 909, 909, 909, 1152, 907, 1152, 1152, 1152, 907, 907, - 910, 913, 1152, 1152, 1152, 1152, 914, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 915, 851, 852, 852, 852, 852, 852, - 1152, 851, 1152, 1152, 1152, 851, 851, 854, 913, 1152, - 1152, 1152, 1152, 855, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 856, 907, 909, 909, 909, 909, 909, 1152, 907, 1152, - 1152, 1152, 907, 907, 910, 964, 1152, 1152, 1152, 1152, - 914, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 915, 916, 917, - 909, 909, 909, 917, 918, 916, 918, 918, 918, 916, - 916, 919, 920, 918, 918, 918, 918, 921, 922, 922, - 922, 922, 922, 922, 922, 922, 922, 922, 918, 918, - - 918, 918, 922, 922, 922, 922, 922, 922, 918, 918, - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918, - 918, 918, 918, 918, 923, 922, 922, 922, 922, 922, - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918, - 918, 918, 918, 918, 918, 918, 918, 918, 918, 907, - 909, 909, 909, 909, 909, 1152, 907, 1152, 1152, 1152, - 907, 907, 910, 913, 1152, 1152, 1152, 1152, 914, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 915, 907, 909, 909, 909, - 909, 909, 1152, 907, 1152, 1152, 1152, 907, 907, 910, - 913, 1152, 1152, 1152, 1152, 914, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 915, 907, 909, 909, 909, 909, 909, 1152, - 907, 1152, 1152, 1152, 907, 907, 910, 913, 1152, 1152, - 1152, 1152, 914, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 915, - 907, 909, 909, 909, 909, 909, 1152, 907, 1152, 1152, - 1152, 907, 907, 910, 913, 1152, 1152, 1152, 1152, 914, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 915, 851, 852, 852, - 852, 852, 852, 1152, 851, 1152, 1152, 1152, 851, 851, - 854, 913, 1152, 1152, 1152, 1152, 855, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 856, 907, 909, 909, 909, 909, 909, - 1152, 907, 1152, 1152, 1152, 907, 907, 910, 964, 1152, - 1152, 1152, 1152, 914, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 915, 907, 917, 917, 917, 965, 917, 1152, 907, 1152, - - 1152, 1152, 907, 907, 910, 913, 1152, 1152, 1152, 1152, - 914, 966, 966, 966, 966, 966, 966, 966, 966, 966, - 966, 1152, 1152, 1152, 1152, 966, 966, 966, 966, 966, - 966, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 915, 966, 966, - 966, 966, 966, 967, 969, 969, 969, 969, 969, 1152, - 967, 1152, 1152, 1152, 967, 967, 970, 973, 1152, 1152, - 1152, 1152, 974, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 975, - 775, 776, 776, 776, 776, 776, 1152, 775, 1152, 1152, - 1152, 775, 775, 778, 857, 1152, 1152, 1152, 1152, 780, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 781, 976, 977, 969, - 969, 969, 977, 978, 976, 978, 978, 978, 976, 976, - 979, 980, 978, 978, 978, 978, 981, 982, 982, 982, - 982, 982, 982, 982, 982, 982, 982, 978, 978, 978, - - 978, 982, 982, 982, 982, 982, 982, 978, 978, 978, - 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, - 978, 978, 978, 983, 982, 982, 982, 982, 982, 978, - 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, - 978, 978, 978, 978, 978, 978, 978, 978, 775, 776, - 859, 776, 776, 776, 1152, 775, 1152, 1152, 1152, 775, - 775, 778, 779, 1152, 1152, 1152, 1152, 780, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 781, 775, 859, 859, 859, 930, - 859, 1152, 775, 1152, 1152, 1152, 775, 775, 778, 779, - 1152, 1152, 1152, 1152, 780, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 1152, 1152, 1152, 1152, 984, - 984, 984, 984, 984, 984, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 781, 984, 984, 984, 984, 984, 783, 662, 662, - 784, 783, 1152, 526, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 987, 987, 987, 987, - 987, 987, 987, 987, 987, 987, 1152, 1152, 1152, 1152, - - 987, 987, 987, 987, 987, 987, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 527, 987, 987, 987, 987, 987, 786, 665, - 665, 787, 786, 1152, 1152, 1152, 1152, 1152, 526, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 988, 988, 988, - 988, 988, 988, 988, 988, 988, 988, 1152, 1152, 1152, - 1152, 988, 988, 988, 988, 988, 988, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 529, 988, 988, 988, 988, 988, 775, - 935, 935, 935, 935, 935, 1152, 949, 1152, 1152, 1152, - - 950, 775, 778, 779, 1152, 1152, 1152, 1152, 951, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 781, 888, 889, 889, 889, - 889, 889, 1152, 888, 1152, 1152, 1152, 888, 888, 891, - 946, 1152, 1152, 1152, 1152, 892, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 893, 871, 873, 881, 873, 873, 873, 1152, - 871, 1152, 1152, 1152, 871, 871, 874, 877, 1152, 1152, - 1152, 1152, 878, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 879, - 871, 881, 881, 881, 938, 881, 1152, 871, 1152, 1152, - 1152, 871, 871, 874, 877, 1152, 1152, 1152, 1152, 878, - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 1152, 1152, 1152, 1152, 989, 989, 989, 989, 989, 989, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 879, 989, 989, 989, - 989, 989, 940, 942, 942, 942, 942, 942, 1152, 940, - 1152, 1152, 1152, 940, 940, 943, 946, 1152, 1152, 1152, - 1152, 947, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 948, 791, - 792, 792, 792, 792, 792, 1152, 791, 1152, 1152, 1152, - 791, 791, 794, 946, 1152, 1152, 1152, 1152, 795, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 796, 940, 942, 942, 942, - 942, 942, 1152, 940, 1152, 1152, 1152, 940, 940, 943, - 991, 1152, 1152, 1152, 1152, 947, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 948, 952, 953, 942, 942, 942, 953, 954, - - 952, 954, 954, 954, 952, 952, 955, 956, 954, 954, - 954, 954, 957, 958, 958, 958, 958, 958, 958, 958, - 958, 958, 958, 954, 954, 954, 954, 958, 958, 958, - 958, 958, 958, 954, 954, 954, 954, 954, 954, 954, - 954, 954, 954, 954, 954, 954, 954, 954, 954, 959, - 958, 958, 958, 958, 958, 954, 954, 954, 954, 954, - 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, - 954, 954, 954, 954, 775, 776, 776, 776, 776, 776, - 1152, 775, 1152, 1152, 1152, 775, 775, 778, 999, 1152, - 1152, 1152, 1152, 780, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 781, 940, 942, 942, 942, 942, 942, 1152, 940, 1152, - 1152, 1152, 940, 940, 943, 946, 1152, 1152, 1152, 1152, - 947, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 948, 940, 942, - 942, 942, 942, 942, 1152, 940, 1152, 1152, 1152, 940, - - 940, 943, 946, 1152, 1152, 1152, 1152, 947, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 948, 940, 942, 942, 942, 942, - 942, 1152, 940, 1152, 1152, 1152, 940, 940, 943, 946, - 1152, 1152, 1152, 1152, 947, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 948, 940, 942, 942, 942, 942, 942, 1152, 940, - 1152, 1152, 1152, 940, 940, 943, 946, 1152, 1152, 1152, - 1152, 947, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 948, 791, - 792, 792, 792, 792, 792, 1152, 791, 1152, 1152, 1152, - 791, 791, 794, 946, 1152, 1152, 1152, 1152, 795, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 796, 940, 942, 942, 942, - 942, 942, 1152, 940, 1152, 1152, 1152, 940, 940, 943, - 991, 1152, 1152, 1152, 1152, 947, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 948, 940, 953, 953, 953, 1000, 953, 1152, - 940, 1152, 1152, 1152, 940, 940, 943, 946, 1152, 1152, - 1152, 1152, 947, 1001, 1001, 1001, 1001, 1001, 1001, 1001, - - 1001, 1001, 1001, 1152, 1152, 1152, 1152, 1001, 1001, 1001, - 1001, 1001, 1001, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 948, - 1001, 1001, 1001, 1001, 1001, 668, 799, 799, 799, 894, - 799, 670, 668, 670, 670, 670, 668, 668, 671, 672, - 670, 670, 670, 670, 673, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 670, 670, 670, 670, 1002, - 1002, 1002, 1002, 1002, 1002, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 674, 1002, 1002, 1002, 1002, 1002, 670, 670, 670, - - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 532, 532, 532, 675, - 532, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 378, 1152, - 1152, 1152, 1152, 1152, 524, 1003, 1003, 1003, 1003, 1003, - 1003, 1003, 1003, 1003, 1003, 1152, 1152, 1152, 1152, 1003, - 1003, 1003, 1003, 1003, 1003, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 380, 1003, 1003, 1003, 1003, 1003, 924, 925, 925, - 925, 925, 925, 1152, 924, 1152, 1152, 1152, 924, 924, - 927, 973, 1152, 1152, 1152, 1152, 928, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 929, 907, 909, 917, 909, 909, 909, - 1152, 907, 1152, 1152, 1152, 907, 907, 910, 913, 1152, - 1152, 1152, 1152, 914, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 915, 907, 917, 917, 917, 965, 917, 1152, 907, 1152, - - 1152, 1152, 907, 907, 910, 913, 1152, 1152, 1152, 1152, - 914, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1152, 1152, 1152, 1152, 1004, 1004, 1004, 1004, 1004, - 1004, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 915, 1004, 1004, - 1004, 1004, 1004, 967, 969, 969, 969, 969, 969, 1152, - 967, 1152, 1152, 1152, 967, 967, 970, 973, 1152, 1152, - 1152, 1152, 974, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 975, - 851, 852, 852, 852, 852, 852, 1152, 851, 1152, 1152, - 1152, 851, 851, 854, 973, 1152, 1152, 1152, 1152, 855, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 856, 967, 969, 969, - 969, 969, 969, 1152, 967, 1152, 1152, 1152, 967, 967, - 970, 1006, 1152, 1152, 1152, 1152, 974, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 975, 976, 977, 969, 969, 969, 977, - 978, 976, 978, 978, 978, 976, 976, 979, 980, 978, - 978, 978, 978, 981, 982, 982, 982, 982, 982, 982, - 982, 982, 982, 982, 978, 978, 978, 978, 982, 982, - 982, 982, 982, 982, 978, 978, 978, 978, 978, 978, - 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, - 983, 982, 982, 982, 982, 982, 978, 978, 978, 978, - 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, - - 978, 978, 978, 978, 978, 967, 969, 969, 969, 969, - 969, 1152, 967, 1152, 1152, 1152, 967, 967, 970, 973, - 1152, 1152, 1152, 1152, 974, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 975, 967, 969, 969, 969, 969, 969, 1152, 967, - 1152, 1152, 1152, 967, 967, 970, 973, 1152, 1152, 1152, - 1152, 974, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 975, 967, - 969, 969, 969, 969, 969, 1152, 967, 1152, 1152, 1152, - 967, 967, 970, 973, 1152, 1152, 1152, 1152, 974, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 975, 967, 969, 969, 969, - 969, 969, 1152, 967, 1152, 1152, 1152, 967, 967, 970, - 973, 1152, 1152, 1152, 1152, 974, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 975, 851, 852, 852, 852, 852, 852, 1152, - 851, 1152, 1152, 1152, 851, 851, 854, 973, 1152, 1152, - 1152, 1152, 855, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 856, - 967, 969, 969, 969, 969, 969, 1152, 967, 1152, 1152, - - 1152, 967, 967, 970, 1006, 1152, 1152, 1152, 1152, 974, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 975, 967, 977, 977, - 977, 1007, 977, 1152, 967, 1152, 1152, 1152, 967, 967, - 970, 973, 1152, 1152, 1152, 1152, 974, 1008, 1008, 1008, - 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1152, 1152, 1152, - 1152, 1008, 1008, 1008, 1008, 1008, 1008, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 975, 1008, 1008, 1008, 1008, 1008, 775, - 859, 859, 859, 930, 859, 1152, 775, 1152, 1152, 1152, - 775, 775, 778, 779, 1152, 1152, 1152, 1152, 780, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1152, - 1152, 1152, 1152, 1009, 1009, 1009, 1009, 1009, 1009, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 781, 1009, 1009, 1009, 1009, - 1009, 783, 662, 662, 784, 783, 1152, 526, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, - - 1152, 1152, 1152, 1152, 1010, 1010, 1010, 1010, 1010, 1010, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 527, 1010, 1010, 1010, - 1010, 1010, 786, 665, 665, 787, 786, 1152, 1152, 1152, - 1152, 1152, 526, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, - 1011, 1152, 1152, 1152, 1152, 1011, 1011, 1011, 1011, 1011, - 1011, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 529, 1011, 1011, - 1011, 1011, 1011, 871, 881, 881, 881, 938, 881, 876, - - 871, 876, 876, 876, 871, 871, 874, 877, 876, 876, - 876, 876, 878, 1012, 1012, 1012, 1012, 1012, 1012, 1012, - 1012, 1012, 1012, 876, 876, 876, 876, 1012, 1012, 1012, - 1012, 1012, 1012, 876, 876, 876, 876, 876, 876, 876, - 876, 876, 876, 876, 876, 876, 876, 876, 876, 879, - 1012, 1012, 1012, 1012, 1012, 876, 876, 876, 876, 876, - 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, - 876, 876, 876, 876, 888, 889, 889, 889, 889, 889, - 1152, 888, 1152, 1152, 1152, 888, 888, 891, 946, 1152, - 1152, 1152, 1152, 892, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 893, 992, 992, 1021, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1022, 1152, 1152, 1152, 1152, 1152, 1023, - 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1152, - 1152, 1152, 1152, 1023, 1023, 1023, 1023, 1023, 1023, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1023, 1023, 1023, 1023, - 1023, 996, 996, 1028, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1029, 1152, 1152, 1152, 1152, 1152, 1030, - 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1152, - 1152, 1152, 1152, 1030, 1030, 1030, 1030, 1030, 1030, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1030, 1030, 1030, 1030, - 1030, 1031, 1032, 1032, 1032, 1032, 1032, 1152, 1031, 1152, - 1152, 1152, 1031, 1031, 1034, 672, 1152, 1152, 1152, 1152, - 1035, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1036, 940, 942, - 953, 942, 942, 942, 1152, 940, 1152, 1152, 1152, 940, - 940, 943, 946, 1152, 1152, 1152, 1152, 947, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 948, 940, 953, 953, 953, 1000, - 953, 1152, 940, 1152, 1152, 1152, 940, 940, 943, 946, - 1152, 1152, 1152, 1152, 947, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1152, 1152, 1152, 1152, 1037, - - 1037, 1037, 1037, 1037, 1037, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 948, 1037, 1037, 1037, 1037, 1037, 668, 799, 799, - 799, 894, 799, 670, 668, 670, 670, 670, 668, 668, - 671, 672, 670, 670, 670, 670, 673, 1038, 1038, 1038, - 1038, 1038, 1038, 1038, 1038, 1038, 1038, 670, 670, 670, - 670, 1038, 1038, 1038, 1038, 1038, 1038, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 674, 1038, 1038, 1038, 1038, 1038, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - - 670, 670, 670, 670, 670, 670, 670, 670, 907, 917, - 917, 917, 965, 917, 912, 907, 912, 912, 912, 907, - 907, 910, 913, 912, 912, 912, 912, 914, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 912, 912, - 912, 912, 1039, 1039, 1039, 1039, 1039, 1039, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 915, 1039, 1039, 1039, 1039, 1039, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 924, - 925, 925, 925, 925, 925, 1152, 924, 1152, 1152, 1152, - - 924, 924, 927, 973, 1152, 1152, 1152, 1152, 928, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 929, 967, 969, 977, 969, - 969, 969, 1152, 967, 1152, 1152, 1152, 967, 967, 970, - 973, 1152, 1152, 1152, 1152, 974, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 975, 967, 977, 977, 977, 1007, 977, 1152, - 967, 1152, 1152, 1152, 967, 967, 970, 973, 1152, 1152, - 1152, 1152, 974, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1152, 1152, 1152, 1152, 1040, 1040, 1040, - 1040, 1040, 1040, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 975, - 1040, 1040, 1040, 1040, 1040, 775, 859, 859, 859, 930, - 859, 777, 775, 777, 777, 777, 775, 775, 778, 779, - 777, 777, 777, 777, 780, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 777, 777, 777, 777, 1041, - - 1041, 1041, 1041, 1041, 1041, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 781, 1041, 1041, 1041, 1041, 1041, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1152, 1152, 1152, 1152, - 1042, 1042, 1042, 1042, 1042, 1042, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1042, 1042, 1042, 1042, 1042, 1044, 1044, - 1054, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1055, 1152, 1152, 1152, 1152, 1152, 1056, 1056, 1056, 1056, - 1056, 1056, 1056, 1056, 1056, 1056, 1152, 1152, 1152, 1152, - 1056, 1056, 1056, 1056, 1056, 1056, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1056, 1056, 1056, 1056, 1056, 1057, 1020, - 1020, 1058, 1057, 1152, 993, 1152, 1152, 1152, 1152, 1152, - 1152, 994, 1152, 1152, 1152, 1152, 1152, 1059, 1059, 1059, - 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1152, 1152, 1152, - 1152, 1059, 1059, 1059, 1059, 1059, 1059, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 995, 1059, 1059, 1059, 1059, 1059, 1060, - 1060, 1066, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1067, 1152, 1152, 1152, 1152, 1152, 1068, 1068, 1068, - 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1152, 1152, 1152, - 1152, 1068, 1068, 1068, 1068, 1068, 1068, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1068, 1068, 1068, 1068, 1068, 1069, - 1027, 1027, 1070, 1069, 1152, 1152, 1152, 1152, 1152, 993, - 1152, 1152, 997, 1152, 1152, 1152, 1152, 1152, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1152, 1152, - - 1152, 1152, 1071, 1071, 1071, 1071, 1071, 1071, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 998, 1071, 1071, 1071, 1071, 1071, - 1072, 1074, 1074, 1074, 1074, 1074, 1152, 1072, 1152, 1152, - 1152, 1072, 1072, 1075, 1078, 1152, 1152, 1152, 1152, 1079, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1080, 668, 669, 669, - 669, 669, 669, 1152, 668, 1152, 1152, 1152, 668, 668, - - 671, 797, 1152, 1152, 1152, 1152, 673, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 674, 1081, 1082, 1074, 1074, 1074, 1082, - 1083, 1081, 1083, 1083, 1083, 1081, 1081, 1084, 1085, 1083, - 1083, 1083, 1083, 1086, 1087, 1087, 1087, 1087, 1087, 1087, - 1087, 1087, 1087, 1087, 1083, 1083, 1083, 1083, 1087, 1087, - 1087, 1087, 1087, 1087, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - - 1088, 1087, 1087, 1087, 1087, 1087, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 940, 953, 953, 953, 1000, - 953, 945, 940, 945, 945, 945, 940, 940, 943, 946, - 945, 945, 945, 945, 947, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1089, 945, 945, 945, 945, 1089, - 1089, 1089, 1089, 1089, 1089, 945, 945, 945, 945, 945, - 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, - 945, 948, 1089, 1089, 1089, 1089, 1089, 945, 945, 945, - 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, - - 945, 945, 945, 945, 945, 945, 668, 799, 799, 799, - 894, 799, 1152, 668, 1152, 1152, 1152, 668, 668, 671, - 672, 1152, 1152, 1152, 1152, 673, 1090, 1090, 1090, 1090, - 1090, 1090, 1090, 1090, 1090, 1090, 1152, 1152, 1152, 1152, - 1090, 1090, 1090, 1090, 1090, 1090, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 674, 1090, 1090, 1090, 1090, 1090, 907, 917, - 917, 917, 965, 917, 912, 907, 912, 912, 912, 907, - 907, 910, 913, 912, 912, 912, 912, 914, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 912, 912, - - 912, 912, 1091, 1091, 1091, 1091, 1091, 1091, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 915, 1091, 1091, 1091, 1091, 1091, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 967, - 977, 977, 977, 1007, 977, 972, 967, 972, 972, 972, - 967, 967, 970, 973, 972, 972, 972, 972, 974, 1092, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 972, - 972, 972, 972, 1092, 1092, 1092, 1092, 1092, 1092, 972, - 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, - - 972, 972, 972, 972, 972, 975, 1092, 1092, 1092, 1092, - 1092, 972, 972, 972, 972, 972, 972, 972, 972, 972, - 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, - 775, 859, 859, 859, 930, 859, 777, 775, 777, 777, - 777, 775, 775, 778, 779, 777, 777, 777, 777, 780, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 777, 777, 777, 777, 1093, 1093, 1093, 1093, 1093, 1093, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 781, 1093, 1093, 1093, - 1093, 1093, 777, 777, 777, 777, 777, 777, 777, 777, - - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, - 1094, 1152, 1152, 1152, 1152, 1094, 1094, 1094, 1094, 1094, - 1094, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1094, 1094, - 1094, 1094, 1094, 1044, 1044, 1054, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1055, 1152, 1152, 1152, 1152, - 1152, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, - 1056, 1152, 1152, 1152, 1152, 1056, 1056, 1056, 1056, 1056, - 1056, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1056, 1056, - 1056, 1056, 1056, 1100, 1053, 1053, 1101, 1100, 1152, 1045, - 1152, 1152, 1152, 1152, 1152, 1152, 1046, 1152, 1152, 1152, - 1152, 1152, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, - 1102, 1102, 1152, 1152, 1152, 1152, 1102, 1102, 1102, 1102, - 1102, 1102, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1047, 1102, - 1102, 1102, 1102, 1102, 1057, 1020, 1020, 1058, 1057, 1152, - 993, 1152, 1152, 1152, 1152, 1152, 1152, 994, 1152, 1152, - 1152, 1152, 1152, 1103, 1103, 1103, 1103, 1103, 1103, 1103, - - 1103, 1103, 1103, 1152, 1152, 1152, 1152, 1103, 1103, 1103, - 1103, 1103, 1103, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 995, - 1103, 1103, 1103, 1103, 1103, 1060, 1060, 1066, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1067, 1152, 1152, - 1152, 1152, 1152, 1068, 1068, 1068, 1068, 1068, 1068, 1068, - 1068, 1068, 1068, 1152, 1152, 1152, 1152, 1068, 1068, 1068, - 1068, 1068, 1068, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1068, 1068, 1068, 1068, 1068, 1105, 1065, 1065, 1106, 1105, - - 1152, 1152, 1152, 1152, 1152, 1045, 1152, 1152, 1061, 1152, - 1152, 1152, 1152, 1152, 1107, 1107, 1107, 1107, 1107, 1107, - 1107, 1107, 1107, 1107, 1152, 1152, 1152, 1152, 1107, 1107, - 1107, 1107, 1107, 1107, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1062, 1107, 1107, 1107, 1107, 1107, 1069, 1027, 1027, 1070, - 1069, 1152, 1152, 1152, 1152, 1152, 993, 1152, 1152, 997, - 1152, 1152, 1152, 1152, 1152, 1108, 1108, 1108, 1108, 1108, - 1108, 1108, 1108, 1108, 1108, 1152, 1152, 1152, 1152, 1108, - 1108, 1108, 1108, 1108, 1108, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 998, 1108, 1108, 1108, 1108, 1108, 1072, 1074, 1074, - 1074, 1074, 1074, 1152, 1072, 1152, 1152, 1152, 1072, 1072, - 1075, 1078, 1152, 1152, 1152, 1152, 1079, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1080, 791, 792, 792, 792, 792, 792, - 1152, 791, 1152, 1152, 1152, 791, 791, 794, 1078, 1152, - 1152, 1152, 1152, 795, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 796, 1072, 1074, 1074, 1074, 1074, 1074, 1152, 1072, 1152, - 1152, 1152, 1072, 1072, 1075, 1110, 1152, 1152, 1152, 1152, - 1079, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1080, 1081, 1082, - 1074, 1074, 1074, 1082, 1083, 1081, 1083, 1083, 1083, 1081, - - 1081, 1084, 1085, 1083, 1083, 1083, 1083, 1086, 1087, 1087, - 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1083, 1083, - 1083, 1083, 1087, 1087, 1087, 1087, 1087, 1087, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1088, 1087, 1087, 1087, 1087, 1087, + 100, 24, 1086, 93, 66, 102, 101, 28, 28, 1086, + 65, 161, 34, 94, 65, 75, 89, 76, 154, 174, + 167, 280, 100, 295, 25, 93, 66, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 106, 26, 28, + 104, 68, 68, 68, 68, 68, 68, 25, 1057, 105, + + 34, 97, 107, 108, 115, 29, 138, 1078, 109, 98, + 106, 99, 104, 110, 68, 68, 68, 68, 68, 68, + 27, 27, 79, 97, 134, 108, 116, 115, 139, 138, + 109, 98, 34, 158, 135, 159, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 134, 136, 63, 155, + 80, 80, 80, 80, 80, 80, 156, 277, 27, 33, + 63, 299, 328, 28, 174, 137, 1078, 329, 28, 330, + 136, 155, 1024, 80, 80, 80, 80, 80, 80, 83, + 83, 83, 83, 83, 83, 83, 83, 83, 83, 111, + 65, 150, 104, 83, 83, 83, 83, 83, 83, 65, + + 157, 105, 65, 1055, 158, 112, 159, 113, 193, 114, + 29, 34, 111, 150, 104, 72, 83, 83, 83, 83, + 83, 83, 33, 33, 85, 73, 160, 112, 100, 113, + 194, 193, 364, 1055, 101, 181, 365, 72, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 160, 67, + 100, 182, 86, 86, 86, 86, 86, 86, 181, 63, + 364, 1052, 1052, 28, 365, 183, 203, 1051, 640, 184, + 204, 185, 205, 1051, 1048, 86, 86, 86, 86, 86, + 86, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 175, 175, 206, 115, 68, 68, 68, 68, 68, + + 68, 65, 234, 1048, 207, 208, 234, 234, 234, 234, + 29, 643, 1043, 175, 175, 206, 116, 115, 68, 68, + 68, 68, 68, 68, 117, 117, 207, 1043, 950, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 118, 119, 119, 119, 120, 121, 122, 123, + 119, 119, 117, 117, 117, 117, 119, 119, 119, 119, + 119, 119, 124, 125, 126, 117, 127, 117, 128, 117, + 117, 129, 130, 131, 117, 117, 117, 117, 117, 119, + 119, 119, 119, 119, 119, 124, 125, 126, 127, 117, + 128, 117, 117, 129, 130, 131, 117, 117, 117, 117, + + 117, 117, 117, 140, 227, 1018, 254, 141, 142, 143, + 144, 262, 843, 255, 844, 263, 288, 264, 229, 102, + 103, 417, 230, 228, 231, 145, 265, 227, 254, 146, + 106, 247, 147, 248, 249, 234, 234, 234, 234, 288, + 1018, 102, 266, 417, 175, 107, 267, 1016, 145, 265, + 268, 146, 269, 106, 147, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 1014, 175, 289, 260, 149, + 149, 149, 149, 149, 149, 458, 287, 1014, 280, 186, + 158, 271, 159, 187, 188, 189, 190, 261, 111, 272, + 289, 260, 149, 149, 149, 149, 149, 149, 67, 67, + + 67, 151, 67, 155, 112, 191, 113, 640, 114, 63, + 156, 111, 272, 192, 138, 152, 152, 152, 152, 152, + 152, 152, 152, 152, 152, 155, 112, 191, 113, 152, + 152, 152, 152, 152, 152, 192, 139, 138, 563, 199, + 1013, 281, 564, 176, 200, 176, 201, 117, 640, 282, + 643, 65, 152, 152, 152, 152, 152, 152, 163, 78, + 78, 164, 163, 281, 28, 175, 247, 1013, 248, 249, + 234, 234, 234, 234, 202, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 473, 305, 175, 295, 165, + 165, 165, 165, 165, 165, 641, 202, 256, 1008, 92, + + 270, 257, 271, 258, 141, 142, 143, 144, 136, 305, + 274, 29, 165, 165, 165, 165, 165, 165, 82, 82, + 82, 168, 82, 259, 290, 306, 137, 851, 75, 852, + 76, 136, 1008, 274, 1102, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 259, 134, 320, 306, 169, + 169, 169, 169, 169, 169, 283, 135, 302, 1006, 1006, + 284, 303, 285, 304, 78, 871, 1004, 872, 134, 28, + 320, 32, 169, 169, 169, 169, 169, 169, 170, 84, + 84, 171, 170, 311, 286, 322, 315, 312, 28, 313, + 316, 317, 318, 319, 175, 172, 172, 172, 172, 172, + + 172, 172, 172, 172, 172, 82, 286, 640, 322, 172, + 172, 172, 172, 172, 172, 325, 29, 193, 332, 326, + 1102, 327, 195, 333, 335, 334, 176, 196, 176, 197, + 323, 34, 172, 172, 172, 172, 172, 172, 119, 194, + 193, 175, 119, 119, 119, 119, 92, 335, 175, 324, + 643, 108, 198, 323, 336, 1004, 109, 32, 117, 117, + 117, 110, 117, 175, 117, 340, 84, 117, 117, 117, + 175, 993, 563, 108, 198, 28, 564, 336, 109, 341, + 355, 117, 117, 117, 117, 876, 117, 877, 340, 117, + 117, 117, 176, 176, 176, 176, 176, 176, 176, 176, + + 176, 176, 341, 355, 357, 425, 176, 176, 176, 176, + 176, 176, 993, 291, 291, 291, 292, 291, 34, 337, + 346, 992, 426, 338, 347, 339, 348, 357, 425, 176, + 176, 176, 176, 176, 176, 177, 176, 176, 176, 178, + 176, 179, 176, 176, 176, 426, 640, 992, 92, 176, + 176, 176, 176, 176, 176, 744, 72, 427, 209, 745, + 989, 180, 210, 213, 211, 989, 73, 214, 215, 216, + 217, 428, 176, 176, 176, 176, 176, 176, 72, 212, + 427, 220, 434, 180, 175, 221, 222, 223, 224, 218, + 207, 208, 350, 641, 219, 418, 351, 352, 353, 354, + + 435, 281, 212, 419, 307, 434, 175, 175, 308, 282, + 309, 218, 207, 225, 358, 226, 219, 418, 359, 360, + 361, 362, 369, 281, 310, 984, 370, 366, 371, 175, + 175, 367, 744, 368, 984, 225, 745, 226, 117, 117, + 117, 232, 117, 480, 374, 481, 982, 310, 374, 374, + 374, 374, 175, 175, 499, 233, 234, 234, 234, 235, + 236, 237, 238, 234, 234, 880, 480, 881, 481, 234, + 234, 234, 234, 234, 234, 175, 424, 499, 254, 420, + 257, 415, 258, 342, 421, 255, 422, 176, 343, 176, + 344, 92, 234, 234, 234, 234, 234, 234, 234, 982, + + 254, 239, 240, 241, 234, 242, 243, 244, 423, 175, + 429, 501, 523, 245, 430, 246, 431, 387, 345, 388, + 389, 374, 374, 374, 374, 399, 399, 399, 400, 399, + 423, 175, 981, 92, 501, 523, 245, 482, 246, 234, + 345, 524, 239, 240, 241, 234, 242, 243, 244, 482, + 482, 482, 483, 482, 250, 387, 251, 388, 389, 374, + 374, 374, 374, 432, 524, 148, 465, 263, 91, 264, + 440, 284, 100, 285, 268, 63, 269, 250, 101, 251, + 148, 148, 148, 275, 148, 981, 459, 436, 971, 92, + 91, 437, 460, 438, 100, 530, 971, 276, 276, 276, + + 276, 276, 276, 276, 276, 276, 276, 439, 459, 531, + 537, 276, 276, 276, 276, 276, 276, 65, 530, 415, + 415, 415, 416, 415, 889, 461, 890, 944, 538, 462, + 439, 463, 531, 537, 276, 276, 276, 276, 276, 276, + 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, + 374, 538, 944, 464, 278, 278, 278, 278, 278, 278, + 442, 910, 938, 911, 141, 142, 143, 144, 640, 938, + 467, 550, 92, 374, 158, 464, 159, 278, 278, 278, + 278, 278, 278, 293, 293, 293, 293, 293, 293, 293, + 293, 293, 293, 912, 550, 291, 605, 293, 293, 293, + + 293, 293, 293, 912, 445, 445, 445, 446, 445, 470, + 477, 643, 513, 75, 478, 76, 479, 514, 605, 515, + 293, 293, 293, 293, 293, 293, 296, 296, 296, 296, + 296, 296, 296, 296, 296, 296, 72, 72, 552, 136, + 296, 296, 296, 296, 296, 296, 73, 73, 92, 257, + 502, 258, 397, 397, 397, 398, 397, 137, 72, 72, + 932, 552, 136, 296, 296, 296, 296, 296, 296, 297, + 297, 297, 297, 297, 297, 297, 297, 297, 297, 102, + 103, 909, 932, 297, 297, 297, 297, 297, 297, 482, + 482, 482, 483, 482, 640, 97, 403, 403, 403, 404, + + 403, 102, 92, 98, 106, 99, 297, 297, 297, 297, + 297, 297, 175, 175, 175, 300, 175, 97, 484, 107, + 909, 520, 485, 903, 486, 98, 521, 106, 522, 301, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 91, + 104, 641, 93, 301, 301, 301, 301, 301, 301, 105, + 903, 640, 94, 447, 447, 447, 448, 447, 897, 488, + 115, 91, 104, 489, 93, 490, 301, 301, 301, 301, + 301, 301, 373, 374, 374, 374, 375, 376, 377, 378, + 374, 374, 116, 115, 138, 659, 374, 374, 374, 374, + 374, 374, 394, 394, 394, 395, 394, 263, 641, 264, + + 504, 443, 443, 443, 444, 443, 139, 138, 659, 374, + 374, 374, 374, 374, 374, 374, 525, 532, 379, 380, + 381, 374, 382, 383, 384, 509, 897, 396, 660, 510, + 385, 511, 386, 891, 891, 91, 155, 401, 401, 401, + 402, 401, 494, 156, 134, 96, 495, 496, 497, 498, + 396, 660, 92, 385, 135, 386, 374, 91, 155, 379, + 380, 381, 374, 382, 383, 384, 134, 92, 92, 92, + 104, 390, 672, 391, 405, 405, 405, 406, 405, 105, + 91, 407, 407, 407, 408, 407, 401, 527, 873, 102, + 103, 528, 104, 529, 390, 672, 391, 392, 392, 392, + + 393, 392, 91, 873, 407, 407, 407, 408, 407, 539, + 673, 102, 106, 540, 374, 541, 553, 91, 374, 374, + 374, 374, 506, 870, 108, 534, 507, 107, 508, 109, + 535, 870, 536, 673, 110, 106, 555, 102, 103, 91, + 93, 405, 405, 405, 406, 405, 108, 108, 175, 545, + 94, 109, 109, 546, 547, 548, 549, 110, 923, 102, + 924, 925, 93, 409, 409, 409, 410, 409, 92, 108, + 175, 557, 374, 864, 109, 558, 559, 560, 561, 106, + 468, 468, 468, 469, 468, 268, 864, 269, 92, 445, + 445, 445, 446, 445, 107, 374, 411, 450, 450, 450, + + 450, 450, 106, 452, 571, 565, 91, 453, 572, 454, + 573, 575, 112, 97, 113, 576, 114, 577, 904, 411, + 859, 98, 905, 99, 136, 583, 155, 859, 91, 583, + 583, 583, 583, 156, 112, 97, 113, 412, 412, 412, + 413, 412, 137, 98, 284, 100, 285, 136, 155, 614, + 455, 101, 904, 257, 374, 258, 905, 92, 374, 374, + 374, 374, 502, 502, 502, 503, 502, 100, 414, 23, + 23, 23, 23, 23, 504, 504, 504, 505, 504, 502, + 502, 502, 503, 502, 689, 24, 757, 757, 757, 757, + 116, 414, 148, 148, 148, 275, 148, 525, 525, 525, + + 526, 525, 525, 525, 525, 526, 525, 689, 25, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 853, + 853, 418, 26, 449, 449, 449, 449, 449, 449, 419, + 92, 25, 468, 468, 468, 469, 468, 532, 532, 532, + 533, 532, 617, 418, 850, 850, 449, 449, 449, 449, + 449, 449, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 834, 181, 618, 617, 456, 456, 456, 456, + 456, 456, 532, 532, 532, 533, 532, 834, 155, 182, + 517, 517, 517, 518, 517, 156, 181, 803, 803, 456, + 456, 456, 456, 456, 456, 553, 553, 553, 554, 553, + + 155, 471, 471, 471, 471, 471, 471, 471, 471, 471, + 471, 519, 797, 138, 691, 471, 471, 471, 471, 471, + 471, 797, 755, 543, 543, 543, 544, 543, 555, 555, + 555, 556, 555, 194, 519, 139, 138, 691, 471, 471, + 471, 471, 471, 471, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 755, 193, 95, 712, 474, 474, + 474, 474, 474, 474, 553, 553, 553, 554, 553, 565, + 565, 565, 566, 565, 96, 207, 208, 194, 193, 95, + 712, 474, 474, 474, 474, 474, 474, 475, 475, 475, + 475, 475, 475, 475, 475, 475, 475, 207, 979, 749, + + 980, 475, 475, 475, 475, 475, 475, 567, 567, 567, + 568, 567, 749, 492, 492, 492, 493, 492, 569, 569, + 569, 570, 569, 392, 475, 475, 475, 475, 475, 475, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 923, 713, 924, 925, 476, 476, 476, 476, 476, 476, + 181, 579, 579, 579, 580, 579, 596, 92, 597, 598, + 583, 583, 583, 583, 713, 93, 182, 476, 476, 476, + 476, 476, 476, 181, 596, 94, 597, 598, 583, 583, + 583, 583, 111, 567, 652, 581, 92, 93, 653, 92, + 415, 415, 415, 416, 415, 623, 743, 606, 112, 430, + + 113, 431, 114, 607, 228, 111, 652, 743, 581, 582, + 583, 583, 583, 584, 585, 586, 587, 583, 583, 606, + 112, 583, 113, 583, 583, 583, 583, 583, 583, 394, + 394, 394, 395, 394, 990, 92, 991, 92, 397, 397, + 397, 398, 397, 92, 583, 92, 583, 583, 583, 583, + 583, 583, 583, 736, 736, 588, 589, 590, 583, 591, + 592, 593, 1009, 612, 601, 717, 1010, 594, 421, 595, + 422, 394, 91, 399, 399, 399, 399, 400, 399, 583, + 397, 97, 96, 583, 583, 583, 583, 601, 717, 98, + 594, 99, 595, 583, 91, 729, 588, 589, 590, 583, + + 591, 592, 593, 97, 281, 95, 718, 1000, 599, 1001, + 600, 98, 282, 405, 608, 729, 92, 91, 609, 100, + 610, 100, 97, 96, 403, 101, 281, 101, 95, 718, + 98, 599, 99, 600, 392, 392, 392, 393, 392, 91, + 569, 100, 611, 100, 97, 401, 401, 401, 402, 401, + 106, 583, 98, 207, 208, 583, 583, 583, 583, 403, + 403, 403, 404, 403, 611, 107, 92, 104, 405, 405, + 405, 406, 405, 106, 678, 207, 105, 93, 459, 407, + 407, 407, 408, 407, 460, 706, 108, 94, 91, 104, + 412, 109, 92, 1011, 706, 1012, 110, 102, 103, 93, + + 459, 625, 91, 104, 492, 263, 106, 264, 108, 543, + 91, 91, 105, 109, 407, 407, 407, 408, 407, 102, + 115, 107, 108, 661, 91, 104, 92, 109, 284, 106, + 285, 699, 110, 91, 405, 405, 405, 406, 405, 699, + 181, 583, 116, 115, 108, 583, 583, 583, 583, 109, + 409, 409, 409, 410, 409, 722, 182, 108, 604, 409, + 207, 208, 109, 181, 628, 583, 407, 110, 629, 583, + 630, 723, 106, 583, 583, 583, 583, 228, 722, 108, + 724, 604, 207, 602, 109, 695, 631, 107, 583, 181, + 437, 111, 438, 91, 723, 106, 735, 695, 619, 112, + + 134, 113, 620, 114, 621, 182, 602, 112, 108, 113, + 135, 114, 181, 109, 111, 91, 92, 92, 110, 735, + 622, 112, 134, 113, 412, 412, 412, 413, 412, 112, + 108, 113, 92, 690, 690, 109, 615, 615, 615, 616, + 615, 583, 445, 622, 434, 583, 583, 583, 583, 615, + 615, 615, 616, 615, 443, 603, 626, 626, 626, 627, + 626, 683, 435, 447, 633, 737, 683, 434, 268, 136, + 269, 634, 634, 634, 635, 634, 136, 116, 603, 636, + 677, 677, 254, 141, 142, 143, 144, 137, 737, 255, + 260, 92, 136, 138, 137, 254, 134, 658, 473, 136, + + 703, 462, 255, 463, 254, 704, 135, 705, 265, 261, + 421, 458, 422, 260, 654, 139, 138, 254, 134, 655, + 632, 656, 664, 669, 266, 632, 158, 670, 159, 671, + 517, 265, 637, 637, 637, 637, 637, 637, 637, 637, + 637, 637, 779, 468, 657, 787, 637, 637, 637, 637, + 637, 637, 450, 450, 450, 450, 450, 674, 452, 624, + 193, 675, 453, 676, 454, 779, 657, 624, 787, 637, + 637, 637, 637, 637, 637, 638, 638, 638, 638, 638, + 680, 1102, 194, 193, 681, 1102, 682, 454, 155, 482, + 482, 482, 483, 482, 613, 156, 482, 482, 482, 483, + + 482, 613, 684, 788, 845, 455, 685, 686, 687, 688, + 155, 678, 678, 678, 679, 678, 502, 502, 502, 503, + 502, 504, 504, 504, 505, 504, 788, 845, 455, 644, + 645, 646, 646, 646, 645, 647, 644, 647, 647, 647, + 644, 644, 648, 647, 647, 647, 647, 649, 649, 649, + 649, 649, 649, 649, 649, 649, 649, 647, 647, 647, + 647, 649, 649, 649, 649, 649, 649, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 650, 649, 649, 649, 649, 649, 649, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + + 647, 647, 647, 647, 647, 647, 647, 647, 67, 67, + 67, 151, 67, 92, 578, 662, 662, 662, 663, 662, + 492, 492, 492, 493, 492, 651, 651, 651, 651, 651, + 651, 651, 651, 651, 651, 757, 757, 757, 757, 651, + 651, 651, 651, 651, 651, 502, 502, 502, 503, 502, + 692, 708, 578, 574, 693, 696, 694, 181, 574, 697, + 281, 698, 651, 651, 651, 651, 651, 651, 282, 562, + 324, 709, 562, 182, 708, 714, 710, 551, 711, 715, + 181, 716, 281, 163, 78, 78, 164, 163, 551, 28, + 525, 525, 525, 526, 525, 700, 700, 700, 701, 700, + + 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, + 757, 757, 757, 757, 665, 665, 665, 665, 665, 665, + 525, 525, 525, 526, 525, 430, 542, 431, 254, 702, + 532, 532, 532, 533, 532, 255, 29, 665, 665, 665, + 665, 665, 665, 82, 82, 82, 168, 82, 324, 719, + 254, 780, 702, 542, 720, 781, 721, 30, 92, 516, + 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, + 437, 516, 438, 780, 666, 666, 666, 666, 666, 666, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 32, 666, 666, 666, + + 666, 666, 666, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 512, 617, + 30, 667, 667, 667, 667, 667, 667, 667, 667, 667, + 667, 141, 142, 143, 144, 667, 667, 667, 667, 667, + 667, 618, 617, 517, 517, 517, 518, 517, 532, 532, + 532, 533, 532, 724, 724, 724, 725, 724, 667, 667, + 667, 667, 667, 667, 668, 668, 668, 668, 668, 668, + 668, 668, 668, 668, 707, 462, 265, 463, 668, 668, + 668, 668, 668, 668, 724, 724, 724, 725, 724, 726, + 512, 827, 266, 727, 746, 728, 194, 707, 747, 265, + + 748, 668, 668, 668, 668, 668, 668, 543, 543, 543, + 544, 543, 730, 828, 827, 846, 731, 732, 733, 734, + 553, 553, 553, 554, 553, 555, 555, 555, 556, 555, + 553, 553, 553, 554, 553, 738, 579, 750, 846, 739, + 740, 741, 742, 565, 565, 565, 566, 565, 567, 567, + 567, 568, 567, 569, 569, 569, 570, 569, 92, 207, + 208, 750, 750, 750, 751, 750, 752, 227, 500, 227, + 753, 500, 754, 579, 579, 579, 580, 579, 786, 1009, + 789, 207, 609, 1010, 610, 421, 228, 422, 228, 92, + 227, 770, 227, 771, 772, 757, 757, 757, 757, 770, + + 491, 771, 772, 757, 757, 757, 757, 756, 792, 793, + 642, 833, 257, 794, 258, 795, 655, 491, 656, 640, + 415, 415, 415, 416, 415, 1049, 228, 1050, 92, 487, + 756, 757, 757, 757, 757, 758, 759, 760, 761, 757, + 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, + 757, 762, 763, 764, 757, 765, 766, 767, 757, 757, + 757, 757, 643, 768, 487, 769, 615, 299, 757, 757, + 757, 757, 757, 757, 181, 762, 763, 764, 757, 765, + 766, 767, 854, 855, 856, 857, 768, 773, 769, 774, + 182, 757, 757, 757, 757, 782, 858, 181, 473, 606, + + 783, 838, 784, 796, 778, 607, 284, 620, 285, 621, + 773, 254, 774, 392, 392, 392, 393, 392, 255, 858, + 798, 606, 466, 228, 430, 785, 431, 778, 482, 482, + 482, 483, 482, 254, 757, 757, 757, 757, 260, 790, + 790, 790, 791, 790, 801, 652, 860, 785, 263, 653, + 264, 799, 799, 799, 800, 799, 93, 261, 802, 804, + 626, 260, 629, 437, 630, 438, 94, 652, 466, 860, + 805, 805, 805, 806, 805, 634, 458, 441, 93, 394, + 394, 394, 395, 394, 418, 807, 878, 879, 441, 268, + 427, 269, 419, 260, 433, 638, 638, 638, 638, 638, + + 757, 757, 757, 757, 428, 434, 418, 454, 433, 878, + 879, 265, 261, 427, 775, 372, 260, 809, 809, 809, + 809, 809, 609, 435, 610, 639, 829, 266, 434, 810, + 640, 830, 96, 831, 265, 372, 865, 775, 397, 397, + 397, 398, 397, 638, 638, 638, 638, 638, 835, 1102, + 92, 92, 462, 1102, 463, 454, 882, 92, 832, 757, + 757, 757, 757, 363, 638, 638, 638, 638, 638, 847, + 1102, 363, 883, 848, 1102, 849, 454, 641, 92, 882, + 832, 97, 646, 646, 646, 646, 646, 662, 92, 98, + 620, 99, 621, 92, 454, 883, 455, 356, 638, 638, + + 638, 638, 638, 97, 1102, 629, 356, 630, 1102, 887, + 454, 98, 399, 399, 399, 400, 399, 455, 638, 638, + 638, 638, 638, 861, 1102, 349, 349, 862, 1102, 863, + 454, 281, 887, 757, 757, 757, 757, 92, 92, 282, + 836, 836, 836, 837, 836, 836, 836, 836, 837, 836, + 655, 455, 656, 281, 482, 482, 482, 483, 482, 100, + 678, 678, 678, 679, 678, 101, 502, 502, 502, 503, + 502, 455, 323, 492, 492, 492, 493, 492, 875, 888, + 92, 100, 401, 401, 401, 402, 401, 459, 896, 898, + 867, 324, 459, 460, 868, 323, 869, 324, 460, 700, + + 331, 875, 888, 757, 757, 757, 757, 331, 92, 459, + 181, 896, 898, 92, 459, 504, 504, 504, 505, 504, + 502, 502, 502, 503, 502, 321, 182, 865, 865, 865, + 866, 865, 323, 181, 102, 103, 700, 700, 700, 701, + 700, 517, 517, 517, 518, 517, 525, 525, 525, 526, + 525, 324, 783, 321, 784, 323, 102, 403, 403, 403, + 404, 403, 525, 525, 525, 526, 525, 977, 314, 931, + 708, 314, 874, 532, 532, 532, 533, 532, 757, 757, + 757, 757, 532, 532, 532, 533, 532, 92, 228, 324, + 977, 884, 931, 708, 194, 874, 885, 794, 886, 795, + + 418, 104, 724, 724, 724, 725, 724, 814, 419, 92, + 105, 724, 724, 724, 725, 724, 640, 543, 543, 543, + 544, 543, 418, 104, 405, 405, 405, 406, 405, 892, + 893, 894, 895, 553, 553, 553, 554, 553, 555, 555, + 555, 556, 555, 92, 299, 757, 757, 757, 757, 553, + 553, 553, 554, 553, 899, 900, 901, 902, 167, 643, + 181, 978, 106, 565, 565, 565, 566, 565, 154, 207, + 208, 567, 567, 567, 568, 567, 182, 107, 569, 569, + 569, 570, 569, 181, 978, 106, 407, 407, 407, 408, + 407, 207, 906, 273, 273, 983, 907, 985, 908, 750, + + 750, 750, 751, 750, 252, 915, 916, 917, 427, 918, + 919, 920, 579, 579, 579, 580, 579, 921, 983, 922, + 985, 92, 428, 392, 392, 392, 393, 392, 937, 108, + 827, 427, 780, 783, 109, 784, 781, 91, 92, 110, + 921, 92, 922, 915, 916, 917, 913, 918, 919, 920, + 92, 108, 828, 827, 780, 926, 109, 927, 790, 91, + 409, 409, 409, 410, 409, 228, 93, 92, 995, 913, + 394, 394, 394, 395, 394, 830, 94, 831, 926, 92, + 927, 415, 415, 415, 416, 415, 939, 324, 93, 434, + 609, 995, 610, 776, 92, 92, 397, 397, 397, 398, + + 397, 942, 418, 91, 92, 928, 421, 435, 422, 112, + 419, 113, 434, 114, 92, 92, 776, 399, 399, 399, + 400, 399, 933, 96, 418, 91, 943, 934, 928, 935, + 794, 112, 795, 113, 412, 412, 412, 413, 412, 97, + 92, 965, 401, 401, 401, 402, 401, 98, 92, 99, + 966, 934, 89, 935, 936, 757, 757, 757, 757, 167, + 162, 97, 945, 965, 100, 777, 620, 162, 621, 98, + 101, 403, 403, 403, 404, 403, 936, 154, 996, 405, + 405, 405, 406, 405, 799, 997, 100, 116, 777, 405, + 405, 405, 406, 405, 102, 103, 407, 407, 407, 408, + + 407, 996, 132, 412, 412, 412, 413, 412, 997, 92, + 757, 757, 757, 757, 948, 104, 102, 106, 430, 949, + 431, 965, 427, 629, 105, 630, 805, 106, 92, 952, + 966, 90, 107, 437, 930, 438, 428, 104, 89, 108, + 106, 970, 107, 965, 109, 427, 830, 87, 831, 110, + 106, 407, 407, 407, 408, 407, 116, 930, 967, 975, + 434, 108, 968, 462, 969, 463, 109, 940, 940, 940, + 941, 940, 950, 950, 950, 951, 950, 998, 435, 968, + 1039, 969, 1040, 434, 405, 405, 405, 406, 405, 809, + 809, 809, 809, 809, 108, 999, 81, 71, 972, 109, + + 998, 810, 91, 655, 110, 656, 407, 407, 407, 408, + 407, 986, 70, 459, 606, 987, 108, 988, 999, 460, + 607, 109, 106, 1002, 91, 808, 808, 808, 808, 808, + 808, 808, 808, 808, 808, 459, 606, 107, 1003, 808, + 808, 808, 808, 808, 808, 106, 1002, 69, 1017, 108, + 1005, 1007, 1022, 934, 109, 935, 609, 57, 610, 110, + 617, 1003, 808, 808, 808, 808, 808, 808, 639, 639, + 812, 108, 1053, 1005, 1007, 39, 109, 946, 946, 946, + 947, 946, 618, 617, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 1102, 1053, 1054, 1072, 813, 813, + + 813, 813, 813, 813, 1068, 1102, 1069, 1102, 617, 482, + 482, 482, 483, 482, 482, 482, 482, 483, 482, 1054, + 1072, 813, 813, 813, 813, 813, 813, 642, 642, 815, + 618, 617, 678, 678, 678, 679, 678, 502, 502, 502, + 503, 502, 1102, 816, 816, 816, 816, 816, 816, 816, + 816, 816, 816, 1102, 1073, 1102, 1102, 816, 816, 816, + 816, 816, 816, 638, 638, 638, 638, 638, 1023, 1102, + 1102, 1019, 794, 1102, 795, 454, 783, 1073, 784, 1102, + 816, 816, 816, 816, 816, 816, 817, 817, 817, 818, + 817, 606, 1102, 1102, 1102, 1026, 1102, 607, 454, 620, + + 1102, 621, 1102, 819, 819, 819, 819, 819, 819, 819, + 819, 819, 819, 606, 1102, 1102, 455, 819, 819, 819, + 819, 819, 819, 504, 504, 504, 505, 504, 502, 502, + 502, 503, 502, 865, 865, 865, 866, 865, 1102, 455, + 819, 819, 819, 819, 819, 819, 820, 821, 638, 638, + 638, 821, 822, 820, 822, 822, 822, 820, 820, 823, + 822, 822, 822, 822, 824, 824, 824, 824, 824, 824, + 824, 824, 824, 824, 822, 822, 822, 822, 824, 824, + 824, 824, 824, 824, 822, 822, 822, 822, 822, 822, + 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, + + 825, 824, 824, 824, 824, 824, 824, 822, 822, 822, + 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, + 822, 822, 822, 822, 822, 826, 826, 826, 826, 826, + 826, 826, 826, 826, 826, 1102, 1102, 1102, 1102, 826, + 826, 826, 826, 826, 826, 638, 817, 638, 638, 638, + 1027, 1102, 1102, 1044, 629, 1102, 630, 454, 830, 1102, + 831, 1102, 826, 826, 826, 826, 826, 826, 163, 78, + 78, 164, 163, 827, 28, 525, 525, 525, 526, 525, + 525, 525, 525, 526, 525, 839, 839, 839, 839, 839, + 839, 839, 839, 839, 839, 828, 827, 1102, 455, 839, + + 839, 839, 839, 839, 839, 646, 646, 646, 646, 646, + 973, 973, 973, 974, 973, 1102, 1036, 454, 1102, 1102, + 1037, 29, 839, 839, 839, 839, 839, 839, 840, 840, + 840, 840, 840, 840, 840, 840, 840, 840, 1036, 1102, + 1102, 1102, 840, 840, 840, 840, 840, 840, 638, 638, + 638, 638, 638, 517, 517, 517, 518, 517, 962, 652, + 454, 1102, 1102, 653, 1102, 840, 840, 840, 840, 840, + 840, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 652, 1102, 1102, 994, 841, 841, 841, 841, 841, + 841, 1102, 638, 638, 638, 638, 638, 1102, 1102, 1042, + + 1102, 962, 1102, 968, 454, 969, 194, 994, 841, 841, + 841, 841, 841, 841, 842, 842, 842, 842, 842, 842, + 842, 842, 842, 842, 1102, 1102, 1102, 1102, 842, 842, + 842, 842, 842, 842, 1102, 1102, 940, 940, 940, 941, + 940, 836, 1102, 1102, 1102, 455, 532, 532, 532, 533, + 532, 842, 842, 842, 842, 842, 842, 914, 914, 914, + 914, 914, 914, 914, 914, 914, 914, 1102, 1102, 1102, + 1102, 914, 914, 914, 914, 914, 914, 946, 646, 646, + 646, 646, 646, 606, 652, 1102, 1102, 459, 653, 607, + 454, 1102, 1102, 460, 914, 914, 914, 914, 914, 914, + + 409, 409, 409, 410, 409, 606, 652, 617, 1102, 459, + 163, 78, 78, 164, 163, 1102, 28, 532, 532, 532, + 533, 532, 724, 724, 724, 725, 724, 1102, 780, 618, + 617, 962, 781, 929, 724, 724, 724, 725, 724, 553, + 553, 553, 554, 553, 555, 555, 555, 556, 555, 112, + 780, 113, 1102, 114, 1102, 1102, 929, 553, 553, 553, + 554, 553, 1102, 29, 565, 565, 565, 566, 565, 1102, + 1102, 112, 1102, 113, 953, 953, 953, 953, 953, 953, + 953, 953, 953, 953, 1102, 1102, 1102, 1102, 953, 953, + 953, 953, 953, 953, 492, 492, 492, 493, 492, 567, + + 567, 567, 568, 567, 569, 569, 569, 570, 569, 1102, + 1102, 953, 953, 953, 953, 953, 953, 954, 811, 811, + 955, 954, 1102, 640, 750, 750, 750, 751, 750, 1102, + 1102, 181, 1102, 1102, 956, 956, 956, 956, 956, 956, + 956, 956, 956, 956, 1102, 1102, 1102, 182, 956, 956, + 956, 956, 956, 956, 181, 1024, 1024, 1024, 1025, 1024, + 148, 148, 148, 275, 148, 678, 678, 678, 679, 678, + 641, 956, 956, 956, 956, 956, 956, 957, 814, 814, + 958, 957, 1036, 1047, 1056, 1102, 1037, 640, 655, 934, + 656, 935, 1102, 1102, 959, 959, 959, 959, 959, 959, + + 959, 959, 959, 959, 1036, 1102, 1102, 1102, 959, 959, + 959, 959, 959, 959, 700, 700, 700, 701, 700, 1102, + 543, 543, 543, 544, 543, 865, 865, 865, 866, 865, + 643, 959, 959, 959, 959, 959, 959, 960, 960, 960, + 960, 960, 960, 960, 960, 960, 960, 1102, 875, 1102, + 1102, 960, 960, 960, 960, 960, 960, 117, 117, 117, + 232, 117, 1060, 1102, 1102, 811, 794, 324, 795, 1102, + 640, 875, 207, 208, 960, 960, 960, 960, 960, 960, + 821, 821, 821, 963, 821, 724, 724, 724, 725, 724, + 1102, 1102, 1102, 1102, 207, 1102, 1102, 964, 964, 964, + + 964, 964, 964, 964, 964, 964, 964, 1102, 1102, 1102, + 92, 964, 964, 964, 964, 964, 964, 641, 724, 724, + 724, 725, 724, 750, 750, 750, 751, 750, 1057, 1057, + 1057, 1058, 1057, 1102, 964, 964, 964, 964, 964, 964, + 644, 645, 646, 646, 646, 645, 647, 644, 647, 647, + 647, 644, 644, 648, 647, 647, 647, 647, 649, 649, + 649, 649, 649, 649, 649, 649, 649, 649, 647, 647, + 647, 647, 649, 649, 649, 649, 649, 649, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 650, 649, 649, 649, 649, 649, + + 649, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 1102, + 1102, 1102, 1102, 64, 64, 64, 64, 64, 64, 579, + 579, 579, 580, 579, 412, 412, 412, 413, 412, 1071, + 1036, 1102, 1102, 1039, 1037, 1040, 64, 64, 64, 64, + 64, 64, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 1036, 1015, 1102, 115, 30, 30, 30, 30, + 30, 30, 394, 394, 394, 395, 394, 1102, 1102, 1038, + 1102, 1102, 228, 1039, 1102, 1040, 1015, 116, 115, 30, + + 30, 30, 30, 30, 30, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 1102, 1041, 95, 1102, 33, + 33, 33, 33, 33, 33, 1102, 392, 392, 392, 393, + 392, 1102, 1059, 1102, 1102, 96, 1102, 783, 1041, 784, + 95, 1102, 33, 33, 33, 33, 33, 33, 976, 976, + 976, 976, 976, 976, 976, 976, 976, 976, 1102, 1102, + 1102, 1102, 976, 976, 976, 976, 976, 976, 1102, 93, + 397, 397, 397, 398, 397, 1102, 1102, 973, 940, 94, + 399, 399, 399, 400, 399, 976, 976, 976, 976, 976, + 976, 93, 401, 401, 401, 402, 401, 403, 403, 403, + + 404, 403, 1102, 1102, 405, 405, 405, 406, 405, 1045, + 1102, 1102, 1102, 97, 1102, 1102, 407, 407, 407, 408, + 407, 98, 1074, 99, 606, 652, 968, 100, 969, 653, + 607, 1077, 1102, 101, 1102, 97, 830, 1102, 831, 827, + 1102, 104, 106, 98, 102, 103, 606, 652, 1102, 100, + 105, 415, 415, 415, 416, 415, 1102, 107, 1102, 108, + 1102, 828, 827, 104, 109, 106, 102, 1102, 1102, 110, + 405, 405, 405, 406, 405, 1102, 407, 407, 407, 408, + 407, 108, 1075, 1102, 1102, 1102, 109, 409, 409, 409, + 410, 409, 1102, 1102, 1102, 117, 117, 117, 232, 117, + + 1079, 1102, 1102, 1102, 92, 934, 1102, 935, 106, 117, + 117, 117, 232, 117, 117, 117, 117, 232, 117, 108, + 111, 1085, 1102, 107, 109, 965, 1068, 1102, 1069, 110, + 1102, 106, 181, 1087, 966, 1102, 112, 1039, 113, 1040, + 114, 108, 1102, 111, 1102, 1102, 109, 965, 182, 117, + 117, 117, 232, 117, 1102, 181, 1102, 1090, 112, 1095, + 113, 968, 92, 969, 1068, 1102, 1069, 92, 1020, 1020, + 1020, 1021, 1020, 646, 646, 646, 646, 646, 638, 821, + 638, 638, 638, 227, 1102, 454, 1102, 1102, 1102, 1102, + 454, 865, 865, 865, 866, 865, 1102, 1045, 1045, 1045, + + 1046, 1045, 228, 1102, 1102, 1102, 227, 175, 175, 175, + 300, 175, 482, 482, 482, 483, 482, 780, 1098, 1102, + 1067, 781, 1039, 1020, 1040, 1068, 962, 1069, 827, 1102, + 1102, 962, 1096, 1096, 1096, 1097, 1096, 1102, 1102, 780, + 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028, + 828, 827, 1070, 1102, 1028, 1028, 1028, 1028, 1028, 1028, + 92, 1102, 1102, 1102, 1102, 92, 482, 482, 482, 483, + 482, 780, 1102, 1102, 1070, 781, 1102, 1028, 1028, 1028, + 1028, 1028, 1028, 1029, 1029, 1029, 1029, 1029, 1029, 1029, + 1029, 1029, 1029, 780, 1102, 1102, 1102, 1029, 1029, 1029, + + 1029, 1029, 1029, 502, 502, 502, 503, 502, 504, 504, + 504, 505, 504, 821, 821, 821, 963, 821, 1102, 92, + 1029, 1029, 1029, 1029, 1029, 1029, 1030, 1030, 1030, 1030, + 1030, 1030, 1030, 1030, 1030, 1030, 1102, 1102, 1102, 1102, + 1030, 1030, 1030, 1030, 1030, 1030, 1100, 1102, 1102, 1102, + 1102, 1068, 1102, 1069, 1102, 1102, 92, 1102, 1102, 1102, + 1102, 92, 1102, 1030, 1030, 1030, 1030, 1030, 1030, 820, + 1031, 646, 646, 646, 1031, 1032, 820, 1032, 1032, 1032, + 820, 820, 823, 1032, 1032, 1032, 1032, 1033, 1033, 1033, + 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1032, 1032, 1032, + + 1032, 1033, 1033, 1033, 1033, 1033, 1033, 1032, 1032, 1032, + 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, + 1032, 1032, 1032, 1034, 1033, 1033, 1033, 1033, 1033, 1033, + 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, + 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1035, 1035, + 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1102, 1102, + 1102, 1102, 1035, 1035, 1035, 1035, 1035, 1035, 492, 492, + 492, 493, 492, 502, 502, 502, 503, 502, 700, 700, + 700, 701, 700, 1102, 1102, 1035, 1035, 1035, 1035, 1035, + 1035, 517, 517, 517, 518, 517, 175, 175, 175, 300, + + 175, 1102, 1102, 1102, 1102, 181, 175, 175, 175, 300, + 175, 1102, 995, 525, 525, 525, 526, 525, 1102, 1102, + 1102, 182, 193, 1102, 1102, 1102, 92, 1102, 181, 1102, + 323, 324, 1102, 1102, 1102, 995, 525, 525, 525, 526, + 525, 1102, 1102, 1102, 194, 193, 1102, 1102, 1102, 324, + 1102, 1102, 1102, 323, 532, 532, 532, 533, 532, 92, + 532, 532, 532, 533, 532, 1102, 92, 543, 543, 543, + 544, 543, 553, 553, 553, 554, 553, 555, 555, 555, + 556, 555, 553, 553, 553, 554, 553, 1102, 1088, 92, + 565, 565, 565, 566, 565, 567, 567, 567, 568, 567, + + 569, 569, 569, 570, 569, 1102, 1102, 92, 579, 579, + 579, 580, 579, 92, 175, 175, 175, 300, 175, 207, + 208, 1102, 1102, 1102, 1102, 92, 1102, 1102, 1102, 1102, + 92, 1102, 1102, 1102, 1102, 92, 1036, 1102, 1102, 1102, + 1037, 207, 227, 92, 1102, 1102, 1102, 1102, 92, 1102, + 1102, 1102, 1102, 92, 1102, 1102, 1102, 1102, 1036, 1102, + 1102, 228, 1102, 1102, 1102, 227, 1102, 92, 1061, 1061, + 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1102, 1102, + 1102, 1102, 1061, 1061, 1061, 1061, 1061, 1061, 646, 646, + 646, 646, 646, 678, 678, 678, 679, 678, 1102, 1102, + + 454, 1102, 1102, 1102, 1102, 1061, 1061, 1061, 1061, 1061, + 1061, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, + 1062, 1102, 1102, 1102, 1102, 1062, 1062, 1062, 1062, 1062, + 1062, 646, 646, 646, 646, 646, 1075, 1075, 1075, 1076, + 1075, 962, 1102, 454, 1102, 1102, 92, 1102, 1062, 1062, + 1062, 1062, 1062, 1062, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1102, 1102, 1102, 1102, 1063, 1063, + 1063, 1063, 1063, 1063, 724, 724, 724, 725, 724, 1102, + 965, 1102, 1102, 1102, 962, 1102, 1102, 1102, 1102, 966, + 1102, 1063, 1063, 1063, 1063, 1063, 1063, 1031, 1031, 1031, + + 1064, 1031, 965, 1102, 1102, 1102, 1102, 1102, 1102, 454, + 1102, 1102, 1102, 1102, 1065, 1065, 1065, 1065, 1065, 1065, + 1065, 1065, 1065, 1065, 1102, 1102, 1102, 92, 1065, 1065, + 1065, 1065, 1065, 1065, 700, 700, 700, 701, 700, 724, + 724, 724, 725, 724, 1102, 1102, 1102, 1102, 1102, 1102, + 962, 1065, 1065, 1065, 1065, 1065, 1065, 1066, 1066, 1066, + 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1102, 323, 1102, + 1102, 1066, 1066, 1066, 1066, 1066, 1066, 750, 750, 750, + 751, 750, 1102, 1102, 1102, 1102, 1102, 324, 1102, 1102, + 1102, 323, 92, 1102, 1066, 1066, 1066, 1066, 1066, 1066, + + 646, 1031, 646, 646, 646, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 454, 1088, 1088, 1088, 1089, 1088, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 92, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, + 1080, 1102, 1102, 1102, 1102, 1080, 1080, 1080, 1080, 1080, + 1080, 1102, 1102, 962, 1102, 1102, 1088, 1088, 1088, 1089, + 1088, 1102, 1036, 1102, 1102, 1102, 1037, 1102, 1080, 1080, + 1080, 1080, 1080, 1080, 1081, 1081, 1081, 1081, 1081, 1081, + 1081, 1081, 1081, 1081, 1036, 1102, 1102, 1102, 1081, 1081, + 1081, 1081, 1081, 1081, 865, 865, 865, 866, 865, 1102, + + 1102, 1102, 1102, 1102, 1102, 1036, 1102, 1102, 1102, 1037, + 1102, 1081, 1081, 1081, 1081, 1081, 1081, 1082, 1082, 1082, + 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1036, 1102, 1102, + 1102, 1082, 1082, 1082, 1082, 1082, 1082, 1031, 1031, 1031, + 1064, 1031, 1102, 1102, 1102, 1102, 1102, 92, 1102, 454, + 1102, 1102, 1102, 1102, 1082, 1082, 1082, 1082, 1082, 1082, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1072, - 1074, 1074, 1074, 1074, 1074, 1152, 1072, 1152, 1152, 1152, - 1072, 1072, 1075, 1078, 1152, 1152, 1152, 1152, 1079, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1080, 1072, 1074, 1074, 1074, - 1074, 1074, 1152, 1072, 1152, 1152, 1152, 1072, 1072, 1075, - 1078, 1152, 1152, 1152, 1152, 1079, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1080, 1072, 1074, 1074, 1074, 1074, 1074, 1152, - 1072, 1152, 1152, 1152, 1072, 1072, 1075, 1078, 1152, 1152, - - 1152, 1152, 1079, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1080, - 1072, 1074, 1074, 1074, 1074, 1074, 1152, 1072, 1152, 1152, - 1152, 1072, 1072, 1075, 1078, 1152, 1152, 1152, 1152, 1079, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1080, 791, 792, 792, - - 792, 792, 792, 1152, 791, 1152, 1152, 1152, 791, 791, - 794, 1078, 1152, 1152, 1152, 1152, 795, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 796, 1072, 1074, 1074, 1074, 1074, 1074, - 1152, 1072, 1152, 1152, 1152, 1072, 1072, 1075, 1110, 1152, - 1152, 1152, 1152, 1079, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1080, 1072, 1082, 1082, 1082, 1111, 1082, 1152, 1072, 1152, - 1152, 1152, 1072, 1072, 1075, 1078, 1152, 1152, 1152, 1152, - 1079, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, - 1112, 1152, 1152, 1152, 1152, 1112, 1112, 1112, 1112, 1112, - 1112, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1080, 1112, 1112, - 1112, 1112, 1112, 940, 953, 953, 953, 1000, 953, 945, - 940, 945, 945, 945, 940, 940, 943, 946, 945, 945, - 945, 945, 947, 1113, 1113, 1113, 1113, 1113, 1113, 1113, - - 1113, 1113, 1113, 945, 945, 945, 945, 1113, 1113, 1113, - 1113, 1113, 1113, 945, 945, 945, 945, 945, 945, 945, - 945, 945, 945, 945, 945, 945, 945, 945, 945, 948, - 1113, 1113, 1113, 1113, 1113, 945, 945, 945, 945, 945, - 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, - 945, 945, 945, 945, 668, 799, 799, 799, 894, 799, - 1152, 668, 1152, 1152, 1152, 668, 668, 671, 672, 1152, - 1152, 1152, 1152, 673, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 674, 907, 917, 917, 917, 965, 917, 912, 907, 912, - 912, 912, 907, 907, 910, 913, 912, 912, 912, 912, - 914, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, - 1114, 912, 912, 912, 912, 1114, 1114, 1114, 1114, 1114, - 1114, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 915, 1114, 1114, - 1114, 1114, 1114, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 967, 977, 977, 977, 1007, 977, 972, 967, - - 972, 972, 972, 967, 967, 970, 973, 972, 972, 972, - 972, 974, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, - 1115, 1115, 972, 972, 972, 972, 1115, 1115, 1115, 1115, - 1115, 1115, 972, 972, 972, 972, 972, 972, 972, 972, - 972, 972, 972, 972, 972, 972, 972, 972, 975, 1115, - 1115, 1115, 1115, 1115, 972, 972, 972, 972, 972, 972, - 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, - 972, 972, 972, 775, 859, 859, 859, 930, 859, 1152, - 775, 1152, 1152, 1152, 775, 775, 778, 779, 1152, 1152, - 1152, 1152, 780, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 781, - 871, 881, 881, 881, 938, 881, 1152, 871, 1152, 1152, - 1152, 871, 871, 874, 877, 1152, 1152, 1152, 1152, 878, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 879, 1100, 1053, 1053, - 1101, 1100, 1152, 1045, 1152, 1152, 1152, 1152, 1152, 1152, - - 1046, 1152, 1152, 1152, 1152, 1152, 1122, 1122, 1122, 1122, - 1122, 1122, 1122, 1122, 1122, 1122, 1152, 1152, 1152, 1152, - 1122, 1122, 1122, 1122, 1122, 1122, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1047, 1122, 1122, 1122, 1122, 1122, 1057, 1020, - 1020, 1058, 1057, 1152, 993, 1152, 1152, 1152, 1152, 1152, - 1152, 994, 1152, 1152, 1152, 1152, 1152, 1123, 1123, 1123, - 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1152, 1152, 1152, - 1152, 1123, 1123, 1123, 1123, 1123, 1123, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 995, 1123, 1123, 1123, 1123, 1123, 1124, - 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1152, - 1152, 1152, 1152, 1124, 1124, 1124, 1124, 1124, 1124, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1124, 1124, 1124, 1124, - 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, - 1125, 1152, 1152, 1152, 1152, 1125, 1125, 1125, 1125, 1125, - 1125, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1125, 1125, - 1125, 1125, 1125, 888, 889, 889, 889, 889, 889, 1152, - - 888, 1152, 1152, 1152, 888, 888, 891, 1078, 1152, 1152, - 1152, 1152, 892, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 893, - 1072, 1074, 1082, 1074, 1074, 1074, 1152, 1072, 1152, 1152, - 1152, 1072, 1072, 1075, 1078, 1152, 1152, 1152, 1152, 1079, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1080, 1126, 1126, 1126, - 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1152, 1152, 1152, - 1152, 1126, 1126, 1126, 1126, 1126, 1126, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1126, 1126, 1126, 1126, 1126, 1127, - 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1152, - 1152, 1152, 1152, 1127, 1127, 1127, 1127, 1127, 1127, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1127, 1127, 1127, 1127, - 1127, 912, 912, 912, 912, 912, 912, 912, 912, 912, - - 912, 1152, 1152, 1152, 1152, 912, 912, 912, 912, 912, - 912, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 912, 912, - 912, 912, 912, 1128, 1128, 1128, 1128, 1128, 1128, 1128, - 1128, 1128, 1128, 1152, 1152, 1152, 1152, 1128, 1128, 1128, - 1128, 1128, 1128, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1128, 1128, 1128, 1128, 1128, 1134, 1134, 1134, 1134, 1134, - 1134, 1134, 1134, 1134, 1134, 1152, 1152, 1152, 1152, 1134, - 1134, 1134, 1134, 1134, 1134, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1134, 1134, 1134, 1134, 1134, 1135, 1135, 1135, - 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1152, 1152, 1152, - 1152, 1135, 1135, 1135, 1135, 1135, 1135, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1135, 1135, 1135, 1135, 1135, 1136, - 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1152, - 1152, 1152, 1152, 1136, 1136, 1136, 1136, 1136, 1136, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1136, 1136, 1136, 1136, - - 1136, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, - 1137, 1152, 1152, 1152, 1152, 1137, 1137, 1137, 1137, 1137, - 1137, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1137, 1137, - 1137, 1137, 1137, 1138, 1138, 1138, 1138, 1138, 1138, 1138, - 1138, 1138, 1138, 1152, 1152, 1152, 1152, 1138, 1138, 1138, - 1138, 1138, 1138, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1138, 1138, 1138, 1138, 1138, 945, 945, 945, 945, 945, - 945, 945, 945, 945, 945, 1152, 1152, 1152, 1152, 945, - - 945, 945, 945, 945, 945, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 945, 945, 945, 945, 945, 972, 972, 972, - 972, 972, 972, 972, 972, 972, 972, 1152, 1152, 1152, - 1152, 972, 972, 972, 972, 972, 972, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 972, 972, 972, 972, 972, 1141, - 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1152, - 1152, 1152, 1152, 1141, 1141, 1141, 1141, 1141, 1141, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1141, 1141, 1141, 1141, - 1141, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, - 1142, 1152, 1152, 1152, 1152, 1142, 1142, 1142, 1142, 1142, - 1142, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1142, 1142, - 1142, 1142, 1142, 1143, 1143, 1143, 1143, 1143, 1143, 1143, - 1143, 1143, 1143, 1152, 1152, 1152, 1152, 1143, 1143, 1143, - 1143, 1143, 1143, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1143, 1143, 1143, 1143, 1143, 1144, 1144, 1144, 1144, 1144, - - 1144, 1144, 1144, 1144, 1144, 1152, 1152, 1152, 1152, 1144, - 1144, 1144, 1144, 1144, 1144, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1144, 1144, 1144, 1144, 1144, 1145, 1145, 1145, - 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1152, 1152, 1152, - 1152, 1145, 1145, 1145, 1145, 1145, 1145, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1145, 1145, 1145, 1145, 1145, 1149, - 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1152, - 1152, 1152, 1152, 1149, 1149, 1149, 1149, 1149, 1149, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1149, 1149, 1149, 1149, - 1149, 992, 992, 992, 992, 992, 992, 992, 992, 992, - 992, 1152, 1152, 1152, 1152, 992, 992, 992, 992, 992, - 992, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 992, 992, - 992, 992, 992, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1152, 1152, 1152, 1152, 1150, 1150, 1150, - 1150, 1150, 1150, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1150, 1150, 1150, 1150, 1150, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 1152, 1152, 1152, 1152, 996, - 996, 996, 996, 996, 996, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 996, 996, 996, 996, 996, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1152, 1152, 1152, - 1152, 1151, 1151, 1151, 1151, 1151, 1151, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1151, 1151, 1151, 1151, 1151, 1044, - 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1152, - - 1152, 1152, 1152, 1044, 1044, 1044, 1044, 1044, 1044, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1044, 1044, 1044, 1044, - 1044, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, - 1060, 1152, 1152, 1152, 1152, 1060, 1060, 1060, 1060, 1060, - 1060, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1060, 1060, - 1060, 1060, 1060, 1077, 1077, 1077, 1077, 1077, 1077, 1077, - 1077, 1077, 1077, 1152, 1152, 1152, 1152, 1077, 1077, 1077, - 1077, 1077, 1077, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1077, 1077, 1077, 1077, 1077, 35, 35, 1152, 35, 35, - 35, 35, 35, 35, 38, 38, 38, 40, 40, 1152, - 40, 40, 40, 40, 40, 40, 43, 1152, 43, 70, - 70, 70, 70, 73, 73, 1152, 73, 73, 73, 73, - 73, 73, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 83, 83, 1152, 83, 83, 83, 83, 83, 83, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 92, 92, - 92, 138, 138, 1152, 138, 138, 138, 138, 138, 138, - - 143, 143, 143, 143, 143, 143, 143, 143, 143, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 158, 158, 1152, - 158, 158, 158, 158, 158, 158, 244, 244, 244, 244, - 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 375, 375, 375, 375, 1152, 375, 375, - 375, 382, 382, 382, 382, 382, 382, 382, 382, 382, - 384, 384, 384, 384, 384, 384, 384, 384, 384, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 158, 158, - - 1152, 158, 158, 158, 158, 158, 158, 525, 525, 1152, - 525, 525, 525, 525, 525, 525, 528, 528, 1152, 528, - 528, 528, 528, 528, 528, 382, 382, 382, 382, 382, - 382, 382, 382, 382, 244, 244, 244, 244, 244, 244, - 244, 244, 244, 384, 384, 384, 384, 384, 384, 384, - 384, 384, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 662, - 662, 662, 662, 662, 662, 662, 662, 662, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 670, 670, 670, - - 670, 670, 670, 670, 670, 670, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 668, 668, 668, 668, 668, - 668, 668, 668, 668, 793, 793, 793, 793, 793, 793, - 793, 793, 793, 375, 375, 375, 1152, 1152, 375, 375, - 375, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 853, 853, 853, 853, 853, 853, 853, 853, 853, 866, - 866, 866, 866, 866, 866, 866, 866, 866, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 668, 668, 668, - 668, 668, 668, 668, 668, 668, 871, 871, 871, 871, - 871, 871, 871, 871, 871, 876, 876, 876, 876, 876, - - 876, 876, 876, 876, 890, 890, 890, 890, 890, 890, - 890, 890, 890, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 793, 793, 793, 793, 793, 793, 793, 793, - 793, 851, 851, 851, 851, 851, 851, 851, 851, 851, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 907, - 907, 907, 907, 907, 907, 907, 907, 907, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 926, 926, 926, - 926, 926, 926, 926, 926, 926, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 853, 853, 853, 853, 853, - 853, 853, 853, 853, 866, 866, 866, 866, 866, 866, - - 866, 866, 866, 932, 932, 932, 932, 932, 932, 932, - 932, 932, 525, 525, 525, 525, 525, 525, 525, 525, - 525, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 888, 888, 888, 888, 888, 888, 888, 888, 888, 871, - 871, 871, 871, 871, 871, 871, 871, 871, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 876, 876, 876, - 876, 876, 876, 876, 876, 876, 793, 793, 793, 793, - 793, 793, 793, 793, 793, 940, 940, 940, 940, 940, - 940, 940, 940, 940, 945, 945, 945, 945, 945, 945, - 945, 945, 945, 670, 670, 670, 670, 670, 670, 670, - - 670, 670, 92, 92, 1152, 1152, 1152, 92, 92, 92, - 924, 924, 924, 924, 924, 924, 924, 924, 924, 907, - 907, 907, 907, 907, 907, 907, 907, 907, 851, 851, - 851, 851, 851, 851, 851, 851, 851, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 853, 853, 853, 853, - 853, 853, 853, 853, 853, 967, 967, 967, 967, 967, - 967, 967, 967, 967, 972, 972, 972, 972, 972, 972, - 972, 972, 972, 985, 985, 985, 985, 985, 985, 985, - 985, 985, 525, 525, 525, 525, 525, 525, 525, 525, - 525, 528, 528, 528, 528, 528, 528, 528, 528, 528, - - 888, 888, 888, 888, 888, 888, 888, 888, 888, 890, - 890, 890, 890, 890, 890, 890, 890, 890, 876, 876, - 876, 876, 876, 876, 876, 876, 876, 940, 940, 940, - 940, 940, 940, 940, 940, 940, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 945, 945, 945, 945, 945, - 945, 945, 945, 945, 793, 793, 793, 793, 793, 793, - 793, 793, 793, 992, 992, 992, 992, 992, 992, 992, - 992, 992, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 375, 375, 375, 1152, 1152, 375, 375, 375, 92, - 92, 1152, 1152, 1152, 92, 92, 92, 924, 924, 924, - - 924, 924, 924, 924, 924, 924, 926, 926, 926, 926, - 926, 926, 926, 926, 926, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 967, 967, 967, 967, 967, 967, - 967, 967, 967, 851, 851, 851, 851, 851, 851, 851, - 851, 851, 972, 972, 972, 972, 972, 972, 972, 972, - 972, 853, 853, 853, 853, 853, 853, 853, 853, 853, - 985, 985, 985, 985, 985, 985, 985, 985, 985, 932, - 932, 932, 932, 932, 932, 932, 932, 932, 525, 525, - 525, 525, 525, 525, 525, 525, 525, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 888, 888, 888, 888, - - 888, 888, 888, 888, 888, 890, 890, 890, 890, 890, - 890, 890, 890, 890, 992, 992, 992, 992, 992, 992, - 992, 992, 992, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, - 1016, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 1024, - 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1027, 1027, - 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1033, 1033, 1033, - 1033, 1033, 1033, 1033, 1033, 1033, 945, 945, 945, 945, - 945, 945, 945, 945, 945, 375, 375, 375, 1152, 1152, - - 375, 375, 375, 924, 924, 924, 924, 924, 924, 924, - 924, 924, 926, 926, 926, 926, 926, 926, 926, 926, - 926, 972, 972, 972, 972, 972, 972, 972, 972, 972, - 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 907, - 907, 907, 907, 907, 907, 907, 907, 907, 1053, 1053, - 1053, 1053, 1053, 1053, 1053, 1053, 1053, 992, 992, 992, - 992, 992, 992, 992, 992, 992, 1016, 1016, 1016, 1016, - 1016, 1016, 1016, 1016, 1016, 1060, 1060, 1060, 1060, 1060, - 1060, 1060, 1060, 1060, 1065, 1065, 1065, 1065, 1065, 1065, - 1065, 1065, 1065, 996, 996, 996, 996, 996, 996, 996, - - 996, 996, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, - 1024, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, - 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 1095, 1095, - 1095, 1095, 1095, 1095, 1095, 1095, 1095, 525, 525, 1152, - 525, 525, 525, 525, 525, 525, 992, 992, 992, 992, - 992, 992, 992, 992, 992, 1060, 1060, 1060, 1060, 1060, - 1060, 1060, 1060, 1060, 1065, 1065, 1065, 1065, 1065, 1065, - 1065, 1065, 1065, 528, 528, 1152, 528, 528, 528, 528, - 528, 528, 996, 996, 996, 996, 996, 996, 996, 996, - - 996, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, - 791, 791, 791, 791, 791, 791, 791, 791, 791, 1077, - 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 793, 793, - 793, 793, 793, 793, 793, 793, 793, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 876, 876, 876, 876, 876, - 876, 876, 876, 876, 1116, 1116, 1116, 1116, 1116, 1116, - 1116, 1116, 1116, 1118, 1118, 1118, 1118, 1118, 1118, 1118, - 1118, 1118, 866, 866, 866, 866, 866, 866, 866, 866, - 866, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, - - 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 888, - 888, 888, 888, 888, 888, 888, 888, 888, 890, 890, - 890, 890, 890, 890, 890, 890, 890, 1129, 1129, 1129, - 1129, 1129, 1129, 1129, 1129, 1129, 1140, 1140, 1140, 1140, - 1140, 1140, 1140, 1140, 1140, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1147, 1147, 1147, 1147, 1147, 1147, - 1147, 1147, 1147, 3, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152 + 1102, 1102, 1102, 1102, 1083, 1083, 1083, 1083, 1083, 1083, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 962, 1102, 1102, 1102, 1102, 1102, 1102, 1083, 1083, 1083, + + 1083, 1083, 1083, 1084, 1084, 1084, 1084, 1084, 1084, 1084, + 1084, 1084, 1084, 1102, 1102, 1102, 1102, 1084, 1084, 1084, + 1084, 1084, 1084, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1084, 1084, 1084, 1084, 1084, 1084, 1091, 1091, 1091, 1091, + 1091, 1091, 1091, 1091, 1091, 1091, 1102, 1102, 1102, 1102, + 1091, 1091, 1091, 1091, 1091, 1091, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1091, 1091, 1091, 1091, 1091, 1091, 1092, + 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1102, + + 1102, 1102, 1102, 1092, 1092, 1092, 1092, 1092, 1092, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1092, 1092, 1092, 1092, + 1092, 1092, 451, 451, 451, 451, 451, 451, 451, 451, + 451, 451, 1102, 1102, 1102, 1102, 451, 451, 451, 451, + 451, 451, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 451, + 451, 451, 451, 451, 451, 1093, 1093, 1093, 1093, 1093, + 1093, 1093, 1093, 1093, 1093, 1102, 1102, 1102, 1102, 1093, + 1093, 1093, 1093, 1093, 1093, 1102, 1102, 1102, 1102, 1102, + + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1093, 1093, 1093, 1093, 1093, 1093, 1094, 1094, + 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1102, 1102, + 1102, 1102, 1094, 1094, 1094, 1094, 1094, 1094, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1094, 1094, 1094, 1094, 1094, + 1094, 639, 639, 639, 639, 639, 639, 639, 639, 639, + 639, 1102, 1102, 1102, 1102, 639, 639, 639, 639, 639, + 639, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 639, 639, + + 639, 639, 639, 639, 642, 642, 642, 642, 642, 642, + 642, 642, 642, 642, 1102, 1102, 1102, 1102, 642, 642, + 642, 642, 642, 642, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 642, 642, 642, 642, 642, 642, 1099, 1099, 1099, + 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1102, 1102, 1102, + 1102, 1099, 1099, 1099, 1099, 1099, 1099, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1099, 1099, 1099, 1099, 1099, 1099, + 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, + + 1102, 1102, 1102, 1102, 1101, 1101, 1101, 1101, 1101, 1101, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1101, 1101, 1101, + 1101, 1101, 1101, 27, 27, 1102, 27, 27, 27, 27, + 27, 27, 30, 30, 30, 30, 33, 33, 1102, 33, + 33, 33, 33, 33, 33, 36, 1102, 1102, 36, 64, + 64, 1102, 64, 64, 67, 67, 1102, 67, 67, 67, + 67, 67, 67, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 82, 82, 1102, 82, 82, 82, 82, 82, + 82, 84, 84, 84, 84, 84, 84, 84, 84, 84, + + 88, 88, 88, 88, 88, 88, 88, 88, 88, 91, + 1102, 91, 91, 148, 148, 1102, 148, 148, 148, 148, + 148, 148, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 175, + 175, 1102, 175, 175, 175, 175, 175, 175, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 294, 294, 294, + 294, 294, 294, 294, 294, 294, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 451, 451, 451, 1102, 451, + 451, 451, 451, 457, 457, 457, 457, 457, 457, 457, + + 457, 457, 472, 472, 472, 472, 472, 472, 472, 472, + 472, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 639, 639, 1102, 639, 639, 639, 639, 639, 639, 642, + 642, 1102, 642, 642, 642, 642, 642, 642, 457, 457, + 457, 457, 457, 457, 457, 457, 457, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 472, 472, 472, 472, 472, + 472, 472, 472, 472, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 811, 811, 811, 811, 811, 811, 811, + 811, 811, 814, 814, 814, 814, 814, 814, 814, 814, + + 814, 961, 961, 1102, 1102, 961, 961, 961, 961, 3, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102 } ; -static const flex_int16_t yy_chk[17346] = +static const flex_int16_t yy_chk[7190] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2757,1907 +1598,789 @@ static const flex_int16_t yy_chk[17346] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 5, 5, 5, 5, 5, 6, 6, 6, 6, - 6, 8, 10, 13, 20, 5, 5, 34, 40, 5, - - 6, 6, 53, 52, 6, 7, 7, 7, 7, 7, - 35, 65, 5, 52, 43, 55, 85, 6, 34, 58, - 53, 55, 67, 7, 52, 53, 32, 32, 32, 32, - 32, 70, 13, 65, 58, 1163, 55, 10, 20, 66, - 8, 58, 61, 40, 32, 67, 7, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 5, 43, 35, - 66, 85, 6, 843, 61, 61, 843, 32, 7, 16, - 56, 56, 544, 90, 544, 70, 16, 16, 90, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 32, - 151, 56, 1147, 16, 16, 16, 16, 16, 16, 16, - - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 19, 21, 68, 16, - 73, 79, 19, 144, 151, 1146, 19, 57, 144, 19, - 54, 26, 26, 26, 26, 26, 57, 125, 54, 19, - 54, 68, 79, 125, 19, 26, 26, 19, 57, 26, - 19, 54, 134, 205, 555, 21, 555, 205, 125, 54, - 80, 21, 26, 45, 73, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 134, 21, 22, 22, 22, - - 22, 22, 22, 22, 22, 22, 22, 138, 140, 101, - 1140, 22, 22, 22, 22, 22, 22, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 26, 81, 80, - 60, 101, 101, 81, 22, 22, 22, 22, 22, 37, - 37, 37, 146, 153, 148, 1139, 60, 146, 60, 178, - 60, 138, 140, 60, 178, 136, 178, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 60, 96, 60, - 86, 37, 37, 37, 37, 37, 37, 72, 136, 86, - 822, 207, 81, 97, 96, 207, 822, 97, 153, 97, - 96, 107, 107, 148, 37, 37, 37, 37, 37, 39, - - 39, 39, 39, 39, 39, 39, 39, 39, 39, 97, - 72, 1132, 107, 39, 39, 39, 39, 39, 39, 1129, - 251, 72, 161, 59, 86, 251, 137, 116, 59, 215, - 97, 72, 123, 59, 123, 135, 39, 39, 39, 39, - 39, 41, 41, 41, 59, 161, 116, 120, 137, 59, - 116, 120, 120, 120, 120, 123, 135, 123, 147, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 126, - 126, 1121, 127, 41, 41, 41, 41, 41, 41, 147, - 160, 127, 149, 215, 160, 106, 160, 149, 117, 106, - 126, 106, 117, 127, 117, 1120, 41, 41, 41, 41, - - 41, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 106, 106, 236, 117, 44, 44, 44, 44, 44, - 44, 122, 162, 122, 122, 122, 122, 122, 122, 578, - 1118, 578, 106, 106, 236, 117, 149, 1116, 44, 44, - 44, 44, 44, 63, 63, 162, 1095, 1076, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 1075, 1072, 128, 131, 71, 71, - 71, 71, 71, 71, 154, 584, 1050, 584, 170, 172, - 100, 128, 183, 154, 100, 100, 100, 100, 128, 131, - 131, 71, 71, 71, 71, 71, 74, 74, 74, 74, - 74, 170, 172, 181, 166, 183, 100, 74, 166, 312, - 166, 1049, 1034, 312, 100, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 181, 181, 100, 154, 74, - - 74, 74, 74, 74, 74, 100, 182, 1031, 1015, 184, - 104, 182, 238, 182, 104, 104, 104, 104, 1014, 376, - 187, 74, 74, 74, 74, 74, 74, 82, 82, 82, - 82, 82, 184, 82, 238, 124, 104, 124, 124, 124, - 124, 124, 124, 187, 985, 104, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 130, 104, 176, 377, - 82, 82, 82, 82, 82, 82, 104, 186, 376, 971, - 383, 186, 130, 186, 130, 383, 130, 176, 970, 130, - 188, 176, 82, 82, 82, 82, 82, 82, 84, 84, - 84, 84, 84, 130, 169, 130, 195, 195, 169, 169, - - 169, 169, 314, 188, 377, 197, 314, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 195, 199, 237, - 967, 84, 84, 84, 84, 84, 84, 141, 197, 192, - 944, 239, 177, 192, 385, 192, 177, 141, 177, 385, - 237, 199, 252, 84, 84, 84, 84, 84, 84, 87, - 87, 87, 87, 87, 239, 220, 196, 220, 177, 87, - 196, 196, 196, 196, 525, 368, 255, 943, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 220, 177, - 220, 141, 87, 87, 87, 87, 87, 87, 212, 255, - 246, 940, 212, 240, 212, 102, 252, 256, 932, 102, - - 102, 102, 102, 240, 87, 87, 87, 87, 87, 87, - 91, 246, 268, 525, 91, 91, 91, 91, 254, 368, - 256, 102, 254, 129, 254, 102, 927, 270, 129, 528, - 91, 91, 91, 129, 91, 268, 91, 924, 280, 91, - 91, 91, 102, 280, 129, 280, 102, 240, 911, 129, - 270, 284, 91, 91, 91, 91, 284, 91, 284, 910, - 91, 91, 91, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 397, 528, 417, 285, 93, 93, 93, - 93, 93, 93, 203, 589, 907, 589, 203, 203, 203, - 203, 217, 286, 290, 291, 217, 217, 217, 217, 285, - - 93, 93, 93, 93, 93, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 286, 290, 291, 295, 95, - 95, 95, 95, 95, 95, 296, 891, 397, 108, 417, - 419, 95, 108, 111, 108, 303, 888, 111, 111, 111, - 111, 295, 95, 95, 95, 95, 95, 259, 296, 108, - 294, 259, 95, 259, 108, 294, 115, 294, 303, 111, - 115, 115, 115, 115, 111, 257, 257, 257, 257, 257, - 263, 108, 665, 211, 263, 108, 263, 211, 789, 211, - 111, 344, 115, 789, 419, 111, 875, 305, 115, 121, - 115, 344, 121, 121, 121, 121, 121, 121, 121, 211, - - 874, 277, 344, 115, 121, 277, 121, 277, 871, 115, - 305, 115, 119, 119, 119, 119, 119, 665, 866, 219, - 211, 219, 219, 219, 219, 219, 219, 121, 601, 121, - 601, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 329, 627, 329, 627, 119, 119, 119, 119, 119, - 119, 258, 258, 258, 258, 258, 191, 353, 353, 351, - 191, 191, 191, 191, 329, 351, 329, 119, 119, 119, - 119, 119, 119, 139, 139, 139, 139, 139, 353, 371, - 351, 221, 191, 221, 221, 221, 221, 221, 221, 854, - 851, 191, 139, 139, 139, 139, 139, 139, 139, 139, - - 139, 139, 371, 191, 357, 364, 139, 139, 139, 139, - 139, 139, 191, 232, 232, 232, 232, 232, 267, 357, - 850, 392, 267, 267, 267, 267, 357, 364, 364, 139, - 139, 139, 139, 139, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 392, 369, 232, 346, 142, 142, - 142, 142, 142, 142, 272, 272, 272, 272, 272, 273, - 273, 273, 273, 273, 393, 346, 369, 370, 232, 232, - 346, 142, 142, 142, 142, 142, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 440, 393, 370, 409, - 150, 150, 150, 150, 150, 150, 274, 274, 274, 274, - - 274, 287, 287, 287, 287, 287, 288, 288, 288, 288, - 288, 794, 409, 150, 150, 150, 150, 150, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 386, 791, - 790, 411, 152, 152, 152, 152, 152, 152, 782, 778, - 440, 224, 224, 224, 224, 224, 289, 298, 775, 386, - 289, 298, 289, 298, 411, 152, 152, 152, 152, 152, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 634, 406, 634, 634, 155, 155, 155, 155, 155, 155, - 292, 292, 292, 292, 292, 774, 224, 406, 157, 157, - 157, 157, 157, 406, 224, 433, 224, 155, 155, 155, - - 155, 155, 157, 157, 165, 318, 157, 224, 165, 318, - 165, 318, 662, 520, 433, 224, 302, 356, 433, 157, - 302, 302, 302, 302, 165, 293, 293, 293, 293, 293, - 165, 654, 218, 355, 520, 218, 218, 218, 218, 218, - 218, 218, 355, 354, 321, 772, 165, 218, 321, 218, - 321, 165, 654, 751, 355, 266, 266, 266, 266, 266, - 783, 662, 356, 750, 157, 159, 159, 159, 159, 159, - 218, 356, 218, 307, 307, 307, 307, 307, 308, 308, - 308, 308, 308, 356, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 266, 435, 354, 354, 159, 159, - - 159, 159, 159, 159, 283, 283, 283, 283, 283, 783, - 266, 309, 309, 309, 309, 309, 266, 354, 435, 748, - 747, 159, 159, 159, 159, 159, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 447, 283, 741, 436, - 216, 216, 216, 216, 216, 216, 315, 315, 315, 315, - 315, 223, 223, 223, 223, 223, 352, 431, 739, 283, - 283, 347, 436, 216, 216, 216, 216, 216, 222, 222, - 222, 222, 222, 225, 225, 225, 225, 225, 735, 431, - 431, 226, 226, 226, 226, 226, 442, 222, 223, 1051, - 447, 222, 222, 222, 222, 678, 223, 347, 443, 227, - - 227, 227, 227, 227, 352, 733, 223, 427, 365, 442, - 352, 223, 427, 222, 427, 347, 678, 223, 225, 449, - 347, 443, 225, 222, 730, 352, 226, 786, 225, 228, - 228, 228, 228, 228, 222, 226, 226, 473, 1051, 225, - 365, 473, 449, 225, 227, 227, 729, 226, 229, 229, - 229, 229, 229, 712, 227, 358, 226, 301, 301, 301, - 301, 301, 365, 365, 391, 227, 227, 398, 391, 228, - 391, 398, 786, 398, 228, 233, 233, 233, 233, 233, - 807, 310, 468, 711, 228, 310, 310, 310, 310, 345, - 470, 228, 359, 229, 358, 228, 709, 359, 229, 480, - - 326, 807, 359, 229, 326, 326, 326, 326, 233, 358, - 708, 301, 301, 359, 229, 233, 358, 705, 359, 229, - 230, 230, 230, 230, 230, 316, 316, 316, 316, 316, - 233, 233, 301, 345, 450, 703, 468, 233, 234, 234, - 234, 234, 234, 345, 470, 702, 242, 242, 242, 242, - 242, 460, 242, 480, 345, 230, 242, 450, 242, 317, - 317, 317, 317, 317, 242, 230, 394, 394, 394, 394, - 394, 230, 697, 230, 460, 230, 402, 475, 230, 349, - 402, 475, 402, 234, 457, 457, 230, 349, 234, 349, - 482, 695, 230, 234, 230, 231, 231, 231, 231, 231, - - 349, 242, 462, 615, 234, 457, 363, 615, 349, 234, - 363, 363, 363, 363, 231, 692, 691, 434, 231, 231, - 231, 231, 434, 617, 434, 462, 327, 617, 231, 327, - 327, 327, 327, 327, 327, 327, 395, 395, 395, 395, - 395, 327, 519, 327, 482, 324, 324, 324, 324, 324, - 231, 231, 241, 241, 241, 241, 241, 401, 401, 401, - 401, 401, 689, 348, 327, 519, 327, 348, 348, 348, - 348, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 324, 688, 348, 493, 241, 241, 241, 241, 241, - 241, 328, 671, 328, 328, 328, 328, 328, 328, 348, - - 324, 668, 740, 493, 324, 348, 740, 493, 241, 241, - 241, 241, 241, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 497, 497, 497, 497, 243, 243, 243, - 243, 243, 243, 330, 661, 330, 330, 330, 330, 330, - 330, 408, 687, 823, 687, 408, 408, 408, 408, 823, - 243, 243, 243, 243, 243, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 516, 516, 516, 516, 247, - 247, 247, 247, 247, 247, 341, 341, 341, 341, 341, - 413, 413, 413, 413, 413, 414, 414, 414, 414, 414, - 657, 629, 247, 247, 247, 247, 247, 248, 248, 248, - - 248, 248, 248, 248, 248, 248, 248, 628, 341, 539, - 545, 248, 248, 248, 248, 248, 248, 415, 415, 415, - 415, 415, 420, 423, 625, 623, 420, 423, 420, 423, - 341, 341, 539, 545, 248, 248, 248, 248, 248, 249, - 249, 249, 249, 249, 249, 249, 249, 249, 249, 484, - 554, 546, 560, 249, 249, 249, 249, 249, 249, 430, - 430, 430, 430, 430, 437, 437, 437, 437, 437, 438, - 438, 438, 438, 438, 546, 560, 249, 249, 249, 249, - 249, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 1063, 430, 562, 585, 253, 253, 253, 253, 253, - - 253, 432, 441, 484, 554, 707, 441, 707, 441, 444, - 444, 444, 444, 444, 430, 430, 562, 585, 253, 253, - 253, 253, 253, 276, 276, 276, 276, 276, 276, 276, - 276, 276, 276, 432, 600, 575, 1063, 276, 276, 276, - 276, 276, 276, 445, 445, 445, 445, 445, 518, 518, - 518, 518, 448, 586, 575, 432, 432, 448, 575, 448, - 276, 276, 276, 276, 276, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 458, 586, 590, 591, 325, - 325, 325, 325, 325, 325, 622, 616, 407, 600, 626, - 332, 332, 332, 332, 332, 451, 451, 451, 451, 451, - - 590, 591, 325, 325, 325, 325, 325, 331, 331, 331, - 331, 331, 333, 333, 333, 333, 333, 360, 494, 334, - 334, 334, 334, 334, 614, 407, 331, 332, 458, 458, - 331, 331, 331, 331, 609, 332, 335, 335, 335, 335, - 335, 407, 453, 626, 607, 332, 453, 407, 453, 458, - 332, 742, 331, 494, 485, 742, 332, 333, 485, 603, - 485, 360, 331, 706, 334, 333, 360, 333, 334, 602, - 594, 360, 494, 331, 334, 594, 494, 594, 333, 849, - 595, 335, 360, 599, 849, 334, 333, 360, 650, 334, - 335, 335, 336, 336, 336, 336, 336, 350, 559, 559, - - 559, 559, 335, 595, 650, 337, 337, 337, 337, 337, - 650, 335, 452, 452, 452, 452, 452, 706, 338, 338, - 338, 338, 338, 580, 342, 342, 342, 342, 342, 724, - 579, 724, 343, 343, 343, 343, 343, 336, 336, 844, - 489, 350, 844, 596, 489, 337, 489, 336, 459, 350, - 337, 350, 459, 459, 459, 459, 573, 342, 336, 336, - 337, 362, 350, 338, 342, 361, 596, 337, 338, 572, - 350, 337, 549, 338, 606, 569, 549, 343, 549, 342, - 342, 361, 343, 361, 338, 361, 342, 343, 361, 338, - 339, 339, 339, 339, 339, 362, 568, 606, 343, 563, - - 663, 608, 361, 343, 361, 663, 456, 456, 456, 456, - 456, 362, 746, 362, 746, 362, 567, 561, 362, 582, - 567, 867, 567, 366, 608, 339, 867, 366, 366, 366, - 366, 870, 362, 571, 362, 339, 870, 571, 582, 571, - 366, 339, 582, 339, 636, 339, 636, 636, 339, 426, - 426, 426, 426, 426, 663, 557, 339, 683, 556, 366, - 456, 456, 339, 366, 339, 340, 340, 340, 340, 340, - 464, 464, 464, 464, 464, 465, 465, 465, 465, 465, - 683, 456, 872, 553, 340, 426, 684, 872, 340, 340, - 340, 340, 551, 374, 374, 374, 374, 374, 340, 374, - - 819, 550, 819, 374, 426, 374, 621, 491, 426, 684, - 621, 374, 621, 490, 405, 405, 405, 405, 405, 487, - 340, 340, 373, 373, 373, 373, 373, 373, 373, 373, - 373, 373, 605, 605, 605, 605, 373, 373, 373, 373, - 373, 373, 466, 466, 466, 466, 466, 906, 374, 694, - 471, 486, 906, 405, 471, 471, 471, 471, 483, 373, - 373, 373, 373, 373, 375, 375, 375, 375, 375, 405, - 375, 820, 694, 820, 375, 405, 375, 379, 379, 379, - 379, 379, 375, 379, 481, 479, 474, 379, 472, 379, - 379, 613, 613, 613, 613, 379, 476, 476, 476, 476, - - 476, 477, 477, 477, 477, 477, 478, 478, 478, 478, - 478, 488, 488, 488, 488, 488, 469, 467, 499, 375, - 499, 499, 499, 499, 499, 499, 547, 547, 547, 547, - 547, 463, 379, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 381, 381, 381, 381, 381, 548, - 548, 548, 548, 548, 461, 492, 492, 492, 492, 492, - 455, 576, 454, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 446, 439, 652, 696, 381, 381, 381, - 381, 381, 381, 498, 498, 498, 498, 498, 498, 498, - 716, 492, 429, 714, 652, 498, 576, 498, 652, 696, - 381, 381, 381, 381, 381, 387, 387, 387, 387, 387, - 492, 387, 714, 716, 492, 576, 714, 701, 498, 576, - 498, 701, 428, 701, 387, 387, 387, 387, 387, 387, - - 387, 387, 387, 387, 717, 425, 720, 424, 387, 387, - 387, 387, 387, 387, 500, 500, 500, 500, 500, 500, - 500, 552, 552, 552, 552, 552, 500, 717, 500, 720, - 387, 387, 387, 387, 387, 387, 388, 388, 388, 388, - 388, 501, 721, 501, 501, 501, 501, 501, 501, 500, - 422, 500, 388, 421, 418, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 721, 416, 412, 410, 388, - 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, - - 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 404, 403, 400, 388, 389, 389, 389, 389, - 389, 564, 564, 564, 564, 564, 389, 399, 908, 515, - 515, 515, 515, 908, 396, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 515, 725, 726, 1052, 389, - 389, 389, 389, 389, 389, 1052, 512, 512, 512, 512, - 512, 515, 565, 565, 565, 565, 565, 515, 384, 725, - 726, 389, 389, 389, 389, 389, 389, 390, 390, 390, - 390, 390, 390, 390, 390, 390, 390, 382, 367, 512, - 732, 390, 390, 390, 390, 390, 390, 1052, 323, 504, - - 504, 504, 504, 504, 322, 320, 502, 502, 502, 502, - 502, 512, 512, 732, 390, 390, 390, 390, 390, 496, - 496, 496, 496, 496, 496, 496, 496, 496, 496, 502, - 502, 502, 502, 496, 496, 496, 496, 496, 496, 503, - 503, 503, 503, 503, 504, 319, 505, 505, 505, 505, - 505, 502, 504, 313, 504, 311, 496, 496, 496, 496, - 496, 502, 306, 304, 300, 504, 506, 506, 506, 506, - 506, 299, 502, 504, 666, 734, 503, 297, 507, 507, - 507, 507, 507, 666, 503, 508, 508, 508, 508, 508, - 282, 505, 784, 281, 503, 505, 832, 784, 734, 503, - - 279, 505, 278, 832, 275, 503, 566, 566, 566, 566, - 566, 506, 505, 787, 936, 271, 505, 269, 265, 936, - 506, 506, 787, 507, 507, 508, 832, 264, 666, 262, - 508, 261, 506, 507, 509, 509, 509, 509, 509, 260, - 508, 506, 250, 941, 507, 507, 784, 508, 941, 245, - 244, 508, 570, 570, 570, 570, 570, 511, 511, 511, - 511, 511, 513, 513, 513, 513, 513, 787, 214, 833, - 213, 514, 514, 514, 514, 514, 833, 210, 209, 509, - 511, 511, 511, 511, 509, 208, 206, 204, 202, 509, - 511, 517, 517, 517, 517, 513, 963, 201, 968, 833, - - 509, 963, 513, 968, 517, 509, 510, 510, 510, 510, - 510, 200, 511, 511, 986, 990, 514, 513, 513, 986, - 990, 514, 198, 517, 513, 194, 514, 517, 523, 523, - 523, 523, 523, 1005, 1043, 193, 190, 514, 1005, 1043, - 523, 510, 514, 1073, 1096, 189, 523, 1064, 1073, 1096, - 1064, 510, 558, 558, 558, 558, 558, 510, 1098, 510, - 185, 510, 180, 1098, 510, 587, 587, 587, 587, 587, - 179, 175, 510, 574, 574, 574, 574, 574, 510, 174, - 510, 522, 522, 522, 522, 522, 522, 522, 522, 522, - 522, 558, 1064, 173, 171, 522, 522, 522, 522, 522, - - 522, 588, 588, 588, 588, 588, 1109, 558, 168, 574, - 1117, 1109, 1130, 558, 167, 1117, 164, 1130, 522, 522, - 522, 522, 522, 524, 524, 524, 524, 524, 574, 524, - 163, 158, 574, 524, 1133, 524, 524, 156, 145, 1133, - 143, 524, 526, 526, 526, 526, 526, 592, 592, 592, - 592, 592, 133, 132, 526, 531, 531, 531, 531, 531, - 526, 531, 118, 114, 113, 531, 112, 531, 593, 593, - 593, 593, 593, 531, 110, 109, 105, 103, 524, 527, - 527, 527, 597, 597, 597, 597, 597, 581, 581, 581, - 581, 581, 598, 598, 598, 598, 598, 527, 527, 527, - - 527, 527, 527, 527, 527, 527, 527, 99, 98, 94, - 531, 527, 527, 527, 527, 527, 527, 92, 89, 83, - 581, 610, 610, 610, 610, 610, 611, 611, 611, 611, - 611, 78, 77, 64, 527, 527, 527, 527, 527, 529, - 529, 529, 581, 581, 612, 612, 612, 612, 612, 618, - 618, 618, 618, 618, 62, 51, 48, 529, 529, 529, - 529, 529, 529, 529, 529, 529, 529, 46, 42, 38, - 33, 529, 529, 529, 529, 529, 529, 619, 619, 619, - 619, 619, 620, 620, 620, 620, 620, 624, 624, 624, - 624, 624, 29, 25, 529, 529, 529, 529, 529, 530, - - 530, 530, 530, 530, 530, 24, 530, 17, 15, 1148, - 530, 530, 530, 530, 1148, 9, 3, 0, 530, 532, - 532, 532, 532, 532, 0, 532, 0, 0, 0, 532, - 0, 532, 533, 533, 533, 533, 533, 532, 533, 0, - 0, 0, 533, 0, 533, 604, 604, 604, 604, 604, - 533, 0, 0, 0, 0, 530, 0, 534, 534, 534, - 534, 534, 0, 534, 0, 0, 0, 534, 0, 534, - 0, 0, 0, 0, 532, 534, 535, 535, 535, 535, - 535, 0, 535, 0, 0, 0, 535, 533, 535, 535, - 1028, 1028, 0, 0, 535, 0, 0, 0, 1028, 604, - - 604, 1028, 633, 633, 633, 0, 633, 633, 633, 950, - 950, 950, 534, 0, 633, 0, 633, 0, 950, 0, - 604, 950, 0, 0, 0, 630, 630, 630, 630, 630, - 0, 535, 536, 536, 536, 536, 536, 633, 536, 633, - 0, 0, 536, 1028, 536, 647, 647, 647, 647, 647, - 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, - 536, 630, 0, 950, 0, 536, 536, 536, 536, 536, - 536, 685, 685, 685, 685, 685, 0, 0, 0, 0, - 630, 0, 0, 0, 630, 0, 0, 536, 536, 536, - 536, 536, 536, 537, 537, 537, 537, 537, 537, 537, - - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 538, 538, 538, 538, 538, 686, - 686, 686, 686, 686, 0, 679, 679, 679, 679, 679, - 0, 679, 0, 538, 538, 538, 538, 538, 538, 538, - - 538, 538, 538, 0, 0, 0, 0, 538, 538, 538, - 538, 538, 538, 635, 635, 635, 0, 635, 635, 635, - 637, 637, 637, 637, 637, 635, 0, 635, 0, 0, - 538, 538, 538, 538, 538, 540, 540, 540, 540, 540, - 679, 540, 690, 690, 690, 690, 690, 0, 635, 0, - 635, 0, 0, 0, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 0, 637, 0, 0, 540, 540, - 540, 540, 540, 540, 0, 637, 0, 639, 639, 639, - 639, 639, 0, 0, 0, 0, 637, 0, 0, 0, - 540, 540, 540, 540, 540, 540, 541, 541, 541, 541, - - 541, 541, 541, 541, 541, 541, 0, 0, 0, 0, - 541, 541, 541, 541, 541, 541, 698, 698, 698, 698, - 698, 0, 639, 642, 642, 642, 642, 642, 0, 0, - 639, 0, 639, 541, 541, 541, 541, 541, 542, 542, - 542, 542, 542, 639, 0, 0, 0, 0, 542, 0, - 0, 639, 699, 699, 699, 699, 699, 542, 542, 542, - 542, 542, 542, 542, 542, 542, 542, 0, 0, 642, - 0, 542, 542, 542, 542, 542, 542, 0, 642, 641, - 641, 641, 641, 641, 700, 700, 700, 700, 700, 0, - 642, 0, 0, 542, 542, 542, 542, 542, 542, 543, - - 543, 543, 543, 543, 543, 543, 543, 543, 543, 0, - 0, 0, 0, 543, 543, 543, 543, 543, 543, 640, - 640, 640, 640, 640, 0, 0, 0, 0, 638, 638, - 638, 638, 638, 641, 641, 0, 543, 543, 543, 543, - 543, 632, 632, 632, 632, 632, 632, 632, 632, 632, - 632, 0, 0, 0, 641, 632, 632, 632, 632, 632, - 632, 0, 0, 0, 0, 638, 0, 0, 640, 643, - 643, 643, 643, 643, 640, 0, 0, 0, 632, 632, - 632, 632, 632, 638, 0, 0, 0, 0, 638, 640, - 644, 644, 644, 644, 644, 645, 645, 645, 645, 645, - - 0, 0, 0, 646, 646, 646, 646, 646, 0, 643, - 0, 648, 648, 648, 648, 648, 693, 693, 693, 693, - 693, 0, 0, 0, 643, 649, 649, 649, 649, 649, - 645, 643, 0, 0, 0, 644, 646, 0, 0, 0, - 644, 1066, 1066, 0, 0, 644, 645, 0, 645, 1066, - 645, 648, 1066, 645, 0, 693, 644, 0, 646, 646, - 0, 644, 0, 0, 0, 0, 648, 645, 0, 645, - 649, 693, 0, 648, 0, 649, 0, 693, 0, 0, - 649, 704, 704, 704, 704, 704, 718, 718, 718, 718, - 718, 649, 0, 0, 1066, 0, 649, 656, 656, 656, - - 656, 656, 656, 656, 656, 656, 656, 0, 0, 0, - 0, 656, 656, 656, 656, 656, 656, 0, 0, 0, - 0, 710, 710, 710, 710, 710, 719, 719, 719, 719, - 719, 0, 0, 0, 656, 656, 656, 656, 656, 658, - 658, 658, 658, 658, 658, 0, 658, 0, 0, 0, - 658, 658, 658, 658, 0, 0, 0, 710, 658, 659, - 659, 659, 659, 659, 0, 0, 669, 669, 669, 669, - 669, 659, 0, 996, 996, 996, 710, 659, 669, 669, - 710, 0, 996, 0, 669, 996, 0, 0, 0, 675, - 675, 675, 675, 675, 0, 658, 664, 664, 664, 664, - - 664, 675, 664, 0, 0, 0, 0, 675, 713, 713, - 713, 713, 713, 0, 0, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 0, 0, 996, 0, 664, - 664, 664, 664, 664, 664, 722, 722, 722, 722, 722, - 0, 713, 0, 0, 675, 723, 723, 723, 723, 723, - 0, 664, 664, 664, 664, 664, 664, 667, 667, 667, - 667, 667, 0, 713, 713, 0, 0, 667, 727, 727, - 727, 727, 727, 0, 0, 0, 667, 667, 667, 667, - 667, 667, 667, 667, 667, 667, 0, 0, 0, 0, - 667, 667, 667, 667, 667, 667, 728, 728, 728, 728, - - 728, 736, 736, 736, 736, 736, 731, 731, 731, 731, - 731, 0, 667, 667, 667, 667, 667, 667, 670, 670, - 670, 670, 670, 670, 0, 670, 0, 0, 0, 670, - 670, 670, 670, 0, 0, 0, 0, 670, 737, 737, - 737, 737, 737, 738, 738, 738, 738, 738, 743, 743, - 743, 743, 743, 744, 744, 744, 744, 744, 0, 0, - 731, 731, 745, 745, 745, 745, 745, 749, 749, 749, - 749, 749, 0, 0, 670, 672, 672, 672, 672, 672, - 672, 731, 672, 0, 0, 0, 672, 672, 672, 672, - 0, 0, 0, 0, 672, 754, 754, 754, 754, 754, - - 0, 0, 752, 752, 752, 752, 752, 755, 755, 755, - 755, 755, 756, 756, 756, 756, 756, 0, 0, 760, - 760, 760, 760, 760, 0, 764, 764, 764, 764, 764, - 0, 672, 673, 673, 673, 673, 673, 673, 752, 673, - 0, 0, 0, 673, 673, 673, 673, 0, 0, 756, - 754, 673, 755, 0, 0, 0, 0, 752, 764, 0, - 0, 752, 755, 0, 0, 760, 0, 756, 0, 0, - 0, 0, 756, 755, 760, 773, 773, 773, 773, 773, - 764, 764, 0, 0, 0, 0, 760, 0, 673, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 676, 676, 676, 676, 676, 813, 813, 813, 813, 813, - 0, 0, 676, 761, 761, 761, 761, 761, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 0, - - 0, 813, 0, 676, 676, 676, 676, 676, 676, 1021, - 1021, 0, 0, 1021, 821, 821, 821, 821, 821, 0, - 1021, 0, 0, 761, 0, 676, 676, 676, 676, 676, - 676, 677, 677, 677, 677, 677, 0, 821, 761, 821, - 901, 901, 901, 901, 901, 761, 0, 0, 0, 0, - 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, - 0, 0, 1021, 901, 677, 677, 677, 677, 677, 677, - 759, 759, 759, 759, 759, 0, 834, 834, 834, 834, - 834, 0, 0, 0, 0, 0, 0, 677, 677, 677, - 677, 677, 680, 680, 680, 680, 680, 680, 680, 680, - - 680, 680, 834, 0, 0, 0, 680, 680, 680, 680, - 680, 680, 0, 765, 765, 765, 765, 765, 835, 835, - 835, 835, 835, 0, 759, 759, 0, 0, 0, 680, - 680, 680, 680, 680, 681, 681, 681, 681, 681, 681, - 681, 681, 681, 681, 835, 759, 0, 0, 681, 681, - 681, 681, 681, 681, 757, 757, 757, 757, 757, 0, - 0, 0, 0, 758, 758, 758, 758, 758, 765, 0, - 0, 681, 681, 681, 681, 681, 682, 682, 682, 682, - 682, 682, 682, 682, 682, 682, 0, 0, 0, 0, - 682, 682, 682, 682, 682, 682, 0, 0, 0, 757, - - 762, 762, 762, 762, 762, 0, 0, 757, 0, 757, - 0, 0, 758, 682, 682, 682, 682, 682, 758, 0, - 757, 763, 763, 763, 763, 763, 0, 0, 757, 0, - 0, 0, 0, 758, 0, 766, 766, 766, 766, 766, - 0, 0, 949, 949, 949, 762, 0, 949, 0, 0, - 762, 0, 0, 0, 949, 762, 763, 767, 767, 767, - 767, 767, 0, 0, 0, 0, 762, 0, 0, 0, - 0, 762, 763, 0, 763, 766, 763, 0, 0, 763, - 768, 768, 768, 768, 768, 769, 769, 769, 769, 769, - 766, 0, 0, 763, 0, 763, 949, 766, 992, 992, - - 992, 0, 767, 992, 0, 0, 0, 767, 0, 0, - 992, 0, 767, 770, 770, 770, 770, 770, 0, 768, - 0, 0, 0, 767, 0, 0, 0, 0, 767, 771, - 771, 771, 771, 771, 0, 768, 0, 0, 0, 0, - 769, 768, 776, 776, 776, 776, 776, 1054, 1054, 770, - 0, 1054, 992, 0, 776, 776, 0, 0, 1054, 0, - 776, 792, 792, 792, 792, 792, 0, 0, 770, 0, - 0, 0, 770, 792, 792, 0, 0, 0, 0, 792, - 0, 0, 0, 0, 771, 777, 777, 777, 777, 777, - 777, 0, 777, 0, 0, 0, 777, 777, 777, 777, - - 1054, 0, 0, 0, 777, 795, 795, 795, 795, 795, - 0, 795, 0, 0, 0, 795, 0, 795, 795, 0, - 0, 0, 0, 795, 808, 808, 808, 808, 808, 809, - 809, 809, 809, 809, 810, 810, 810, 810, 810, 0, - 0, 777, 779, 779, 779, 779, 779, 779, 0, 779, - 0, 0, 0, 779, 779, 779, 779, 0, 0, 0, - 795, 779, 0, 0, 0, 0, 814, 814, 814, 814, - 814, 815, 815, 815, 815, 815, 0, 0, 0, 808, - 0, 0, 0, 0, 809, 0, 0, 0, 0, 810, - 816, 816, 816, 816, 816, 0, 0, 0, 779, 780, - - 780, 780, 780, 780, 780, 814, 780, 0, 0, 0, - 780, 780, 780, 780, 0, 0, 0, 0, 780, 0, - 0, 814, 0, 0, 0, 0, 815, 814, 845, 845, - 845, 845, 845, 0, 852, 852, 852, 852, 852, 0, - 0, 0, 0, 0, 0, 816, 852, 852, 0, 0, - 0, 0, 852, 0, 845, 780, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 785, 785, 785, - 785, 785, 0, 785, 0, 0, 0, 0, 817, 817, - 817, 817, 817, 0, 0, 0, 785, 785, 785, 785, - 785, 785, 785, 785, 785, 785, 0, 0, 0, 0, - 785, 785, 785, 785, 785, 785, 1016, 1016, 1016, 0, - 0, 1016, 825, 825, 825, 825, 825, 0, 1016, 0, - 0, 0, 785, 785, 785, 785, 785, 785, 788, 788, - - 788, 788, 788, 817, 0, 0, 0, 0, 788, 0, - 0, 0, 0, 0, 0, 825, 0, 788, 788, 788, - 788, 788, 788, 788, 788, 788, 788, 0, 0, 0, - 1016, 788, 788, 788, 788, 788, 788, 825, 825, 824, - 824, 824, 824, 824, 826, 826, 826, 826, 826, 0, - 0, 0, 0, 788, 788, 788, 788, 788, 788, 793, - 793, 793, 793, 793, 793, 824, 793, 0, 0, 0, - 793, 793, 793, 793, 0, 824, 0, 0, 793, 0, - 826, 0, 0, 873, 873, 873, 873, 873, 1119, 1119, - 1119, 1119, 1119, 0, 824, 873, 873, 0, 824, 826, - - 1119, 873, 0, 826, 0, 0, 1119, 0, 0, 0, - 0, 0, 0, 0, 0, 793, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 797, 797, 797, - - 797, 797, 797, 0, 797, 0, 0, 0, 797, 797, - 797, 797, 0, 0, 0, 0, 797, 827, 827, 827, - 827, 827, 828, 828, 828, 828, 828, 829, 829, 829, - 829, 829, 830, 830, 830, 830, 830, 831, 831, 831, - 831, 831, 836, 836, 836, 836, 836, 837, 837, 837, - 837, 837, 0, 797, 798, 798, 798, 798, 798, 798, - 0, 798, 0, 0, 0, 798, 798, 798, 798, 0, - 0, 0, 827, 798, 994, 994, 994, 828, 0, 994, - 0, 0, 829, 0, 0, 0, 994, 830, 0, 0, - 0, 994, 831, 0, 0, 0, 836, 836, 0, 0, - - 0, 0, 837, 838, 838, 838, 838, 838, 0, 0, - 798, 799, 799, 799, 799, 799, 799, 836, 799, 0, - 0, 0, 799, 799, 799, 799, 0, 0, 994, 0, - 799, 839, 839, 839, 839, 839, 840, 840, 840, 840, - 840, 841, 841, 841, 841, 841, 842, 842, 842, 842, - 842, 0, 846, 846, 846, 846, 846, 0, 838, 847, - 847, 847, 847, 847, 0, 0, 0, 799, 800, 800, - 800, 800, 800, 800, 0, 800, 0, 0, 0, 800, - 800, 800, 800, 0, 0, 0, 839, 800, 846, 0, - 0, 840, 0, 0, 0, 0, 841, 1020, 1020, 1020, - - 0, 842, 1020, 0, 0, 0, 0, 846, 0, 1020, - 0, 846, 0, 0, 847, 0, 898, 898, 898, 898, - 898, 0, 0, 0, 800, 801, 801, 801, 801, 801, - 801, 0, 801, 0, 0, 0, 801, 801, 801, 801, - 0, 0, 0, 0, 801, 855, 855, 855, 855, 855, - 0, 1020, 889, 889, 889, 889, 889, 855, 855, 0, - 0, 0, 0, 855, 889, 889, 0, 0, 0, 0, - 889, 898, 902, 902, 902, 902, 902, 0, 0, 0, - 0, 801, 802, 802, 802, 802, 802, 802, 0, 802, - 0, 0, 0, 802, 802, 802, 802, 0, 0, 0, - - 855, 802, 903, 903, 903, 903, 903, 0, 902, 904, - 904, 904, 904, 904, 905, 905, 905, 905, 905, 962, - 962, 962, 962, 962, 1024, 1024, 1024, 902, 0, 0, - 0, 902, 0, 1024, 0, 0, 1024, 0, 802, 803, - 803, 803, 803, 803, 803, 0, 803, 0, 0, 0, - 803, 803, 803, 803, 0, 0, 0, 903, 803, 909, - 909, 909, 909, 909, 904, 0, 0, 0, 0, 905, - 0, 909, 909, 0, 962, 0, 0, 909, 1024, 0, - 0, 1010, 1010, 1010, 1010, 1010, 0, 1010, 0, 0, - 0, 0, 0, 0, 0, 803, 804, 804, 804, 804, - - 804, 804, 0, 804, 0, 0, 0, 804, 804, 804, - 804, 0, 0, 0, 0, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 0, 0, 0, 0, - 804, 804, 804, 804, 804, 804, 1010, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 804, 804, 804, 804, 804, 804, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, - - 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, 805, 806, - 806, 806, 806, 806, 0, 0, 0, 0, 0, 0, - 0, 806, 0, 0, 0, 0, 0, 806, 806, 806, - 806, 806, 806, 806, 806, 806, 806, 806, 0, 0, - 0, 0, 806, 806, 806, 806, 806, 806, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 806, 806, 806, 806, 806, 806, - - 811, 811, 811, 811, 811, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 811, - 811, 811, 811, 811, 811, 811, 811, 811, 811, 0, - 997, 997, 997, 811, 811, 811, 811, 811, 811, 997, - 0, 0, 997, 0, 0, 0, 0, 997, 0, 0, - 0, 0, 0, 0, 0, 811, 811, 811, 811, 811, - 811, 818, 818, 818, 818, 818, 818, 818, 818, 818, - 818, 0, 0, 0, 0, 818, 818, 818, 818, 818, - 818, 0, 0, 0, 997, 1011, 1011, 1011, 1011, 1011, - 0, 0, 0, 0, 0, 1011, 0, 0, 818, 818, - - 818, 818, 818, 853, 853, 853, 853, 853, 853, 0, - 853, 0, 0, 0, 853, 853, 853, 853, 0, 0, - 0, 0, 853, 925, 925, 925, 925, 925, 0, 0, - 942, 942, 942, 942, 942, 925, 925, 0, 0, 0, - 1011, 925, 942, 942, 0, 0, 0, 0, 942, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 853, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 857, 857, 857, 857, 857, 857, 0, 857, 0, - 0, 0, 857, 857, 857, 857, 0, 0, 0, 0, - 857, 969, 969, 969, 969, 969, 0, 0, 993, 993, - 993, 993, 993, 969, 969, 0, 0, 0, 0, 969, - 993, 993, 0, 0, 0, 0, 993, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 857, 858, 858, - - 858, 858, 858, 858, 0, 858, 0, 0, 0, 858, - 858, 858, 858, 0, 0, 0, 0, 858, 1003, 1003, - 1003, 1003, 1003, 0, 0, 1013, 1013, 1013, 1013, 1013, - 1003, 0, 0, 0, 0, 0, 1003, 1013, 1013, 0, - 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 858, 859, 859, 859, 859, 859, - 859, 0, 859, 0, 0, 0, 859, 859, 859, 859, - 0, 0, 0, 1003, 859, 1017, 1017, 1017, 1017, 1017, - 1018, 1018, 1018, 1018, 1018, 0, 1018, 1017, 1017, 1022, - 1022, 1022, 1018, 1017, 1022, 1027, 1027, 1027, 1018, 0, - - 0, 1022, 0, 0, 1027, 0, 1022, 1027, 0, 0, - 0, 859, 860, 860, 860, 860, 860, 860, 0, 860, - 0, 0, 0, 860, 860, 860, 860, 0, 0, 0, - 0, 860, 1060, 1060, 1060, 1018, 1025, 1025, 1025, 1025, - 1025, 1060, 0, 1022, 1060, 0, 1025, 0, 1025, 1027, - 1029, 1029, 1029, 0, 1025, 0, 0, 0, 0, 1029, - 0, 0, 1029, 0, 0, 0, 0, 1029, 860, 861, - 861, 861, 861, 861, 861, 0, 861, 0, 0, 0, - 861, 861, 861, 861, 0, 0, 1060, 0, 861, 0, - 0, 1025, 0, 1032, 1032, 1032, 1032, 1032, 1044, 1044, - - 1044, 0, 0, 1044, 1029, 1032, 1032, 1046, 1046, 1046, - 1044, 1032, 1046, 0, 0, 0, 0, 0, 0, 1046, - 0, 0, 0, 0, 1046, 861, 862, 862, 862, 862, - 862, 862, 0, 862, 0, 0, 0, 862, 862, 862, - 862, 0, 0, 0, 0, 862, 1045, 1045, 1045, 1045, - 1045, 0, 1044, 1048, 1048, 1048, 1048, 1048, 1045, 1045, - 0, 1046, 0, 0, 1045, 1048, 1048, 1053, 1053, 1053, - 0, 1048, 1053, 0, 0, 0, 0, 0, 0, 1053, - 0, 0, 862, 863, 863, 863, 863, 863, 863, 0, - 863, 0, 0, 0, 863, 863, 863, 863, 0, 0, - - 0, 0, 863, 1055, 1055, 1055, 0, 0, 1055, 0, - 0, 0, 0, 0, 0, 1055, 0, 1057, 1057, 1057, - 1055, 1053, 1057, 0, 0, 0, 1058, 1058, 1058, 1057, - 0, 1058, 0, 0, 0, 0, 0, 0, 1058, 863, - 864, 864, 864, 864, 864, 864, 0, 864, 0, 0, - 0, 864, 864, 864, 864, 0, 0, 1055, 0, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, - 0, 1057, 0, 0, 864, 864, 864, 864, 864, 864, - 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 864, 864, 864, 864, - - 864, 864, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 868, 868, 868, 868, 868, 0, 868, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 868, 868, 868, 868, 868, 868, 868, 868, - 868, 868, 0, 0, 0, 0, 868, 868, 868, 868, - 868, 868, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 868, 868, - 868, 868, 868, 868, 869, 869, 869, 869, 869, 0, - 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, - 0, 0, 0, 869, 869, 869, 869, 869, 869, 869, - 869, 869, 869, 0, 1061, 1061, 1061, 869, 869, 869, - 869, 869, 869, 1061, 0, 0, 1061, 0, 0, 0, - 0, 1061, 0, 0, 0, 0, 0, 0, 0, 869, - - 869, 869, 869, 869, 869, 876, 876, 876, 876, 876, - 876, 0, 876, 0, 0, 0, 876, 876, 876, 876, - 0, 0, 0, 0, 876, 1065, 1065, 1065, 1061, 1067, - 1067, 1067, 0, 0, 1065, 0, 0, 1065, 1067, 0, - 0, 1067, 1069, 1069, 1069, 0, 1067, 1070, 1070, 1070, - 0, 1069, 0, 0, 1069, 0, 1070, 0, 0, 1070, - 0, 876, 877, 877, 877, 877, 877, 877, 0, 877, - 0, 0, 0, 877, 877, 877, 877, 0, 0, 1065, - 0, 877, 0, 1067, 0, 1074, 1074, 1074, 1074, 1074, - 1099, 1099, 1099, 0, 0, 1099, 1069, 1074, 1074, 0, - - 0, 1070, 1099, 1074, 1100, 1100, 1100, 0, 0, 1100, - 0, 0, 0, 0, 0, 0, 1100, 0, 877, 878, - 878, 878, 878, 878, 878, 0, 878, 0, 0, 0, - 878, 878, 878, 878, 0, 0, 0, 0, 878, 1097, - 1097, 1097, 1097, 1097, 1099, 0, 0, 0, 0, 0, - 0, 1097, 1097, 0, 0, 0, 0, 1097, 1100, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 878, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 880, 880, 880, - 880, 880, 880, 0, 880, 0, 0, 0, 880, 880, - 880, 880, 0, 0, 0, 0, 880, 1101, 1101, 1101, - 0, 0, 1101, 1104, 1104, 1104, 0, 0, 0, 1101, - 0, 0, 1104, 0, 0, 1104, 1105, 1105, 1105, 0, - - 1106, 1106, 1106, 0, 0, 1105, 0, 0, 1105, 1106, - 0, 0, 1106, 880, 881, 881, 881, 881, 881, 881, - 0, 881, 0, 0, 0, 881, 881, 881, 881, 0, - 0, 1101, 0, 881, 0, 0, 0, 1104, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1105, 0, 0, 0, 1106, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 881, 882, 882, 882, 882, 882, 882, 0, 882, 0, - 0, 0, 882, 882, 882, 882, 0, 0, 0, 0, - 882, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 882, 883, 883, - 883, 883, 883, 883, 0, 883, 0, 0, 0, 883, - 883, 883, 883, 0, 0, 0, 0, 883, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 883, 884, 884, 884, 884, 884, - 884, 0, 884, 0, 0, 0, 884, 884, 884, 884, - - 0, 0, 0, 0, 884, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 884, 885, 885, 885, 885, 885, 885, 0, 885, - 0, 0, 0, 885, 885, 885, 885, 0, 0, 0, - 0, 885, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 885, 886, - - 886, 886, 886, 886, 886, 0, 886, 0, 0, 0, - 886, 886, 886, 886, 0, 0, 0, 0, 886, 886, - 886, 886, 886, 886, 886, 886, 886, 886, 886, 0, - 0, 0, 0, 886, 886, 886, 886, 886, 886, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 886, 886, 886, 886, 886, - 886, 890, 890, 890, 890, 890, 890, 0, 890, 0, - 0, 0, 890, 890, 890, 890, 0, 0, 0, 0, - 890, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 890, 892, 892, - 892, 892, 892, 892, 0, 892, 0, 0, 0, 892, - 892, 892, 892, 0, 0, 0, 0, 892, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 892, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 894, 894, 894, 894, - 894, 894, 0, 894, 0, 0, 0, 894, 894, 894, - 894, 0, 0, 0, 0, 894, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 894, 895, 895, 895, 895, 895, 895, 0, - 895, 0, 0, 0, 895, 895, 895, 895, 0, 0, - 0, 0, 895, 895, 895, 895, 895, 895, 895, 895, - 895, 895, 895, 0, 0, 0, 0, 895, 895, 895, - 895, 895, 895, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 895, - 895, 895, 895, 895, 895, 896, 896, 896, 896, 896, - 0, 0, 0, 0, 0, 0, 0, 896, 0, 0, - 0, 0, 0, 896, 896, 896, 896, 896, 896, 896, - - 896, 896, 896, 896, 0, 0, 0, 0, 896, 896, - 896, 896, 896, 896, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 896, 896, 896, 896, 896, 896, 899, 899, 899, 899, - 899, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 0, 0, 0, 0, 899, - 899, 899, 899, 899, 899, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 899, 899, 899, 899, 899, 899, 912, 912, 912, - - 912, 912, 912, 0, 912, 0, 0, 0, 912, 912, - 912, 912, 0, 0, 0, 0, 912, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 912, 913, 913, 913, 913, 913, 913, - 0, 913, 0, 0, 0, 913, 913, 913, 913, 0, - 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 913, 914, 914, 914, 914, 914, 914, 0, 914, 0, - 0, 0, 914, 914, 914, 914, 0, 0, 0, 0, - 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 914, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 916, - 916, 916, 916, 916, 916, 0, 916, 0, 0, 0, - 916, 916, 916, 916, 0, 0, 0, 0, 916, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 916, 917, 917, 917, 917, - 917, 917, 0, 917, 0, 0, 0, 917, 917, 917, - 917, 0, 0, 0, 0, 917, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 917, 918, 918, 918, 918, 918, 918, 0, - 918, 0, 0, 0, 918, 918, 918, 918, 0, 0, - 0, 0, 918, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 918, - 919, 919, 919, 919, 919, 919, 0, 919, 0, 0, - 0, 919, 919, 919, 919, 0, 0, 0, 0, 919, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 919, 920, 920, 920, - 920, 920, 920, 0, 920, 0, 0, 0, 920, 920, - 920, 920, 0, 0, 0, 0, 920, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 920, 921, 921, 921, 921, 921, 921, - 0, 921, 0, 0, 0, 921, 921, 921, 921, 0, - 0, 0, 0, 921, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 921, 922, 922, 922, 922, 922, 922, 0, 922, 0, - - 0, 0, 922, 922, 922, 922, 0, 0, 0, 0, - 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, - 922, 0, 0, 0, 0, 922, 922, 922, 922, 922, - 922, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 922, 922, 922, - 922, 922, 922, 926, 926, 926, 926, 926, 926, 0, - 926, 0, 0, 0, 926, 926, 926, 926, 0, 0, - 0, 0, 926, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 926, - 928, 928, 928, 928, 928, 928, 0, 928, 0, 0, - 0, 928, 928, 928, 928, 0, 0, 0, 0, 928, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 928, 929, 929, 929, - 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, - 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, - 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, - - 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, - 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, - 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, - 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, - 929, 929, 929, 929, 929, 929, 929, 929, 930, 930, - 930, 930, 930, 930, 0, 930, 0, 0, 0, 930, - 930, 930, 930, 0, 0, 0, 0, 930, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 930, 931, 931, 931, 931, 931, - 931, 0, 931, 0, 0, 0, 931, 931, 931, 931, - 0, 0, 0, 0, 931, 931, 931, 931, 931, 931, - 931, 931, 931, 931, 931, 0, 0, 0, 0, 931, - 931, 931, 931, 931, 931, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 931, 931, 931, 931, 931, 931, 933, 933, 933, - 933, 933, 0, 933, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 933, 933, 933, 933, - 933, 933, 933, 933, 933, 933, 0, 0, 0, 0, - - 933, 933, 933, 933, 933, 933, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 933, 933, 933, 933, 933, 933, 934, 934, - 934, 934, 934, 0, 0, 0, 0, 0, 934, 0, - 0, 0, 0, 0, 0, 0, 0, 934, 934, 934, - 934, 934, 934, 934, 934, 934, 934, 0, 0, 0, - 0, 934, 934, 934, 934, 934, 934, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 934, 934, 934, 934, 934, 934, 935, - 935, 935, 935, 935, 935, 0, 935, 0, 0, 0, - - 935, 935, 935, 935, 0, 0, 0, 0, 935, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 935, 937, 937, 937, 937, - 937, 937, 0, 937, 0, 0, 0, 937, 937, 937, - 937, 0, 0, 0, 0, 937, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 937, 938, 938, 938, 938, 938, 938, 0, - 938, 0, 0, 0, 938, 938, 938, 938, 0, 0, - 0, 0, 938, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, - 939, 939, 939, 939, 939, 939, 0, 939, 0, 0, - 0, 939, 939, 939, 939, 0, 0, 0, 0, 939, - 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, - 0, 0, 0, 0, 939, 939, 939, 939, 939, 939, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 939, 939, 939, 939, - 939, 939, 945, 945, 945, 945, 945, 945, 0, 945, - 0, 0, 0, 945, 945, 945, 945, 0, 0, 0, - 0, 945, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 945, 946, - 946, 946, 946, 946, 946, 0, 946, 0, 0, 0, - 946, 946, 946, 946, 0, 0, 0, 0, 946, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 946, 947, 947, 947, 947, - 947, 947, 0, 947, 0, 0, 0, 947, 947, 947, - 947, 0, 0, 0, 0, 947, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 947, 948, 948, 948, 948, 948, 948, 948, - - 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 948, 948, 948, 951, 951, 951, 951, 951, 951, - 0, 951, 0, 0, 0, 951, 951, 951, 951, 0, - 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 951, 952, 952, 952, 952, 952, 952, 0, 952, 0, - 0, 0, 952, 952, 952, 952, 0, 0, 0, 0, - 952, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 952, 953, 953, - 953, 953, 953, 953, 0, 953, 0, 0, 0, 953, - - 953, 953, 953, 0, 0, 0, 0, 953, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 953, 954, 954, 954, 954, 954, - 954, 0, 954, 0, 0, 0, 954, 954, 954, 954, - 0, 0, 0, 0, 954, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 954, 955, 955, 955, 955, 955, 955, 0, 955, - 0, 0, 0, 955, 955, 955, 955, 0, 0, 0, - 0, 955, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 955, 956, - 956, 956, 956, 956, 956, 0, 956, 0, 0, 0, - 956, 956, 956, 956, 0, 0, 0, 0, 956, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 956, 957, 957, 957, 957, - 957, 957, 0, 957, 0, 0, 0, 957, 957, 957, - 957, 0, 0, 0, 0, 957, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 957, 958, 958, 958, 958, 958, 958, 0, - 958, 0, 0, 0, 958, 958, 958, 958, 0, 0, - 0, 0, 958, 958, 958, 958, 958, 958, 958, 958, - - 958, 958, 958, 0, 0, 0, 0, 958, 958, 958, - 958, 958, 958, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 958, - 958, 958, 958, 958, 958, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 961, 961, 961, 961, - 961, 0, 0, 0, 0, 0, 0, 0, 961, 0, - 0, 0, 0, 0, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 0, 0, 0, 0, 961, - 961, 961, 961, 961, 961, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 961, 961, 961, 961, 961, 961, 964, 964, 964, - 964, 964, 964, 0, 964, 0, 0, 0, 964, 964, - 964, 964, 0, 0, 0, 0, 964, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 964, 965, 965, 965, 965, 965, 965, - 0, 965, 0, 0, 0, 965, 965, 965, 965, 0, - 0, 0, 0, 965, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 965, 966, 966, 966, 966, 966, 966, 0, 966, 0, - - 0, 0, 966, 966, 966, 966, 0, 0, 0, 0, - 966, 966, 966, 966, 966, 966, 966, 966, 966, 966, - 966, 0, 0, 0, 0, 966, 966, 966, 966, 966, - 966, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 966, 966, 966, - 966, 966, 966, 972, 972, 972, 972, 972, 972, 0, - 972, 0, 0, 0, 972, 972, 972, 972, 0, 0, - 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, - 973, 973, 973, 973, 973, 973, 0, 973, 0, 0, - 0, 973, 973, 973, 973, 0, 0, 0, 0, 973, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 973, 974, 974, 974, - 974, 974, 974, 0, 974, 0, 0, 0, 974, 974, - 974, 974, 0, 0, 0, 0, 974, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 974, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - - 975, 975, 975, 975, 975, 976, 976, 976, 976, 976, - 976, 0, 976, 0, 0, 0, 976, 976, 976, 976, - 0, 0, 0, 0, 976, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 976, 977, 977, 977, 977, 977, 977, 0, 977, - 0, 0, 0, 977, 977, 977, 977, 0, 0, 0, - 0, 977, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 977, 978, - 978, 978, 978, 978, 978, 0, 978, 0, 0, 0, - 978, 978, 978, 978, 0, 0, 0, 0, 978, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 978, 979, 979, 979, 979, - 979, 979, 0, 979, 0, 0, 0, 979, 979, 979, - 979, 0, 0, 0, 0, 979, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 979, 980, 980, 980, 980, 980, 980, 0, - 980, 0, 0, 0, 980, 980, 980, 980, 0, 0, - 0, 0, 980, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 980, - 981, 981, 981, 981, 981, 981, 0, 981, 0, 0, - - 0, 981, 981, 981, 981, 0, 0, 0, 0, 981, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 981, 982, 982, 982, - 982, 982, 982, 0, 982, 0, 0, 0, 982, 982, - 982, 982, 0, 0, 0, 0, 982, 982, 982, 982, - 982, 982, 982, 982, 982, 982, 982, 0, 0, 0, - 0, 982, 982, 982, 982, 982, 982, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 982, 982, 982, 982, 982, 982, 984, - 984, 984, 984, 984, 984, 0, 984, 0, 0, 0, - 984, 984, 984, 984, 0, 0, 0, 0, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 0, - 0, 0, 0, 984, 984, 984, 984, 984, 984, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 984, 984, 984, 984, 984, - 984, 987, 987, 987, 987, 987, 0, 987, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, - - 0, 0, 0, 0, 987, 987, 987, 987, 987, 987, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 987, 987, 987, 987, - 987, 987, 988, 988, 988, 988, 988, 0, 0, 0, - 0, 0, 988, 0, 0, 0, 0, 0, 0, 0, - 0, 988, 988, 988, 988, 988, 988, 988, 988, 988, - 988, 0, 0, 0, 0, 988, 988, 988, 988, 988, - 988, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 988, 988, 988, - 988, 988, 988, 989, 989, 989, 989, 989, 989, 989, - - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 989, 989, 989, 989, 991, 991, 991, 991, 991, 991, - 0, 991, 0, 0, 0, 991, 991, 991, 991, 0, - 0, 0, 0, 991, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 991, 995, 995, 995, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 995, 0, 0, 0, 0, 0, 995, - 995, 995, 995, 995, 995, 995, 995, 995, 995, 0, - 0, 0, 0, 995, 995, 995, 995, 995, 995, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 995, 995, 995, 995, - 995, 998, 998, 998, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 998, 0, 0, 0, 0, 0, 998, - 998, 998, 998, 998, 998, 998, 998, 998, 998, 0, - 0, 0, 0, 998, 998, 998, 998, 998, 998, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 998, 998, 998, 998, - 998, 999, 999, 999, 999, 999, 999, 0, 999, 0, - 0, 0, 999, 999, 999, 999, 0, 0, 0, 0, - 999, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 999, 1000, 1000, - 1000, 1000, 1000, 1000, 0, 1000, 0, 0, 0, 1000, - 1000, 1000, 1000, 0, 0, 0, 0, 1000, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1000, 1001, 1001, 1001, 1001, 1001, - 1001, 0, 1001, 0, 0, 0, 1001, 1001, 1001, 1001, - 0, 0, 0, 0, 1001, 1001, 1001, 1001, 1001, 1001, - 1001, 1001, 1001, 1001, 1001, 0, 0, 0, 0, 1001, - - 1001, 1001, 1001, 1001, 1001, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1001, 1001, 1001, 1001, 1001, 1001, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1006, - 1006, 1006, 1006, 1006, 1006, 0, 1006, 0, 0, 0, - - 1006, 1006, 1006, 1006, 0, 0, 0, 0, 1006, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1006, 1007, 1007, 1007, 1007, - 1007, 1007, 0, 1007, 0, 0, 0, 1007, 1007, 1007, - 1007, 0, 0, 0, 0, 1007, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 1007, 1008, 1008, 1008, 1008, 1008, 1008, 0, - 1008, 0, 0, 0, 1008, 1008, 1008, 1008, 0, 0, - 0, 0, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, - 1008, 1008, 1008, 0, 0, 0, 0, 1008, 1008, 1008, - 1008, 1008, 1008, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, + 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, + 7, 7, 7, 7, 8, 9, 10, 11, 17, 22, + + 22, 22, 22, 22, 36, 7, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 25, 30, 82, 470, + 1113, 470, 58, 27, 16, 46, 25, 26, 7, 64, + 16, 26, 9, 26, 16, 1097, 11, 16, 25, 10, + 17, 8, 7, 46, 16, 58, 36, 16, 46, 26, + 133, 7, 14, 16, 30, 82, 16, 14, 14, 16, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 27, 64, 26, 133, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 18, 33, + 14, 38, 67, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 49, 49, 23, 23, 23, 23, 23, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 48, 23, 1069, 45, 18, 49, 48, 84, 78, 1068, + 18, 74, 33, 45, 67, 74, 89, 74, 154, 89, + 167, 154, 48, 167, 23, 45, 18, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 51, 23, 170, + 50, 19, 19, 19, 19, 19, 19, 23, 1058, 50, + + 84, 47, 51, 52, 54, 78, 61, 1050, 52, 47, + 51, 47, 50, 52, 19, 19, 19, 19, 19, 19, + 29, 29, 29, 47, 59, 52, 54, 54, 61, 61, + 52, 47, 170, 664, 59, 664, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 59, 60, 148, 72, + 29, 29, 29, 29, 29, 29, 72, 150, 79, 85, + 66, 299, 195, 79, 299, 60, 1049, 195, 85, 195, + 60, 72, 1025, 29, 29, 29, 29, 29, 29, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 53, + 148, 66, 126, 32, 32, 32, 32, 32, 32, 150, + + 73, 126, 66, 1012, 73, 53, 73, 53, 100, 53, + 79, 85, 53, 66, 126, 77, 32, 32, 32, 32, + 32, 32, 34, 34, 34, 77, 73, 53, 124, 53, + 100, 100, 222, 1011, 124, 95, 222, 77, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 73, 151, + 124, 95, 34, 34, 34, 34, 34, 34, 95, 151, + 224, 991, 990, 163, 224, 96, 105, 988, 453, 96, + 105, 96, 105, 987, 980, 34, 34, 34, 34, 34, + 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 96, 105, 105, 130, 37, 37, 37, 37, 37, + + 37, 151, 119, 979, 106, 106, 119, 119, 119, 119, + 163, 453, 969, 96, 105, 105, 130, 130, 37, 37, + 37, 37, 37, 37, 56, 56, 106, 968, 951, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + + 56, 56, 56, 62, 115, 935, 134, 62, 62, 62, + 62, 137, 669, 134, 669, 137, 158, 137, 116, 125, + 125, 253, 116, 115, 116, 62, 138, 115, 134, 62, + 127, 121, 62, 121, 121, 121, 121, 121, 121, 158, + 934, 125, 138, 253, 116, 127, 139, 932, 62, 138, + 139, 62, 139, 127, 62, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 911, 116, 159, 136, 65, + 65, 65, 65, 65, 65, 458, 157, 910, 458, 99, + 157, 141, 157, 99, 99, 99, 99, 136, 129, 141, + 159, 136, 65, 65, 65, 65, 65, 65, 68, 68, + + 68, 68, 68, 160, 129, 99, 129, 642, 129, 68, + 160, 129, 141, 99, 147, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 160, 129, 99, 129, 68, + 68, 68, 68, 68, 68, 99, 147, 147, 360, 103, + 908, 155, 360, 103, 103, 103, 103, 232, 452, 155, + 642, 68, 68, 68, 68, 68, 68, 68, 80, 80, + 80, 80, 80, 155, 80, 103, 123, 907, 123, 123, + 123, 123, 123, 123, 103, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 473, 178, 103, 473, 80, + 80, 80, 80, 80, 80, 452, 103, 135, 901, 232, + + 140, 135, 143, 135, 140, 140, 140, 140, 146, 178, + 143, 80, 80, 80, 80, 80, 80, 80, 83, 83, + 83, 83, 83, 135, 161, 179, 146, 680, 161, 680, + 161, 146, 899, 143, 83, 83, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 135, 145, 187, 179, 83, + 83, 83, 83, 83, 83, 156, 145, 177, 895, 893, + 156, 177, 156, 177, 164, 703, 890, 703, 145, 164, + 187, 83, 83, 83, 83, 83, 83, 83, 86, 86, + 86, 86, 86, 183, 156, 189, 186, 183, 86, 183, + 186, 186, 186, 186, 300, 86, 86, 86, 86, 86, + + 86, 86, 86, 86, 86, 168, 156, 814, 189, 86, + 86, 86, 86, 86, 86, 194, 164, 198, 199, 194, + 168, 194, 101, 199, 200, 199, 101, 101, 101, 101, + 193, 86, 86, 86, 86, 86, 86, 86, 90, 198, + 198, 194, 90, 90, 90, 90, 300, 200, 101, 193, + 814, 128, 101, 193, 201, 889, 128, 168, 90, 90, + 90, 128, 90, 194, 90, 204, 171, 90, 90, 90, + 101, 872, 362, 128, 101, 171, 362, 201, 128, 205, + 214, 90, 90, 90, 90, 709, 90, 709, 204, 90, + 90, 90, 92, 92, 92, 92, 92, 92, 92, 92, + + 92, 92, 205, 214, 216, 257, 92, 92, 92, 92, + 92, 92, 871, 162, 162, 162, 162, 162, 171, 203, + 209, 869, 258, 203, 209, 203, 209, 216, 257, 92, + 92, 92, 92, 92, 92, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 258, 639, 868, 865, 94, + 94, 94, 94, 94, 94, 559, 162, 260, 107, 559, + 863, 94, 107, 110, 107, 862, 162, 110, 110, 110, + 110, 260, 94, 94, 94, 94, 94, 94, 162, 107, + 260, 114, 265, 94, 107, 114, 114, 114, 114, 110, + 212, 212, 213, 639, 110, 254, 213, 213, 213, 213, + + 265, 286, 107, 254, 182, 265, 107, 114, 182, 286, + 182, 110, 212, 114, 220, 114, 110, 254, 220, 220, + 220, 220, 229, 286, 182, 857, 229, 228, 229, 114, + 182, 228, 561, 228, 855, 114, 561, 114, 118, 118, + 118, 118, 118, 303, 234, 304, 852, 182, 234, 234, + 234, 234, 182, 228, 316, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 714, 303, 714, 304, 118, + 118, 118, 118, 118, 118, 228, 256, 316, 259, 255, + 256, 416, 256, 208, 255, 259, 255, 208, 208, 208, + 208, 118, 118, 118, 118, 118, 118, 118, 120, 851, + + 259, 120, 120, 120, 120, 120, 120, 120, 255, 208, + 261, 318, 333, 120, 261, 120, 261, 236, 208, 236, + 236, 236, 236, 236, 236, 242, 242, 242, 242, 242, + 255, 208, 849, 416, 318, 333, 120, 483, 120, 122, + 208, 334, 122, 122, 122, 122, 122, 122, 122, 305, + 305, 305, 305, 305, 122, 238, 122, 238, 238, 238, + 238, 238, 238, 262, 334, 275, 283, 262, 242, 262, + 267, 283, 242, 283, 267, 275, 267, 122, 242, 122, + 149, 149, 149, 149, 149, 848, 281, 266, 831, 483, + 242, 266, 281, 266, 242, 338, 830, 149, 149, 149, + + 149, 149, 149, 149, 149, 149, 149, 266, 281, 339, + 343, 149, 149, 149, 149, 149, 149, 275, 338, 249, + 249, 249, 249, 249, 726, 282, 726, 795, 344, 282, + 266, 282, 339, 343, 149, 149, 149, 149, 149, 149, + 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, + 249, 344, 794, 282, 152, 152, 152, 152, 152, 152, + 270, 752, 784, 752, 270, 270, 270, 270, 957, 783, + 287, 351, 249, 249, 287, 282, 287, 152, 152, 152, + 152, 152, 152, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 754, 351, 292, 417, 165, 165, 165, + + 165, 165, 165, 753, 272, 272, 272, 272, 272, 290, + 302, 957, 328, 290, 302, 290, 302, 328, 417, 328, + 165, 165, 165, 165, 165, 165, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 291, 292, 353, 272, + 169, 169, 169, 169, 169, 169, 291, 292, 750, 792, + 503, 792, 241, 241, 241, 241, 241, 272, 291, 292, + 779, 353, 272, 169, 169, 169, 169, 169, 169, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 401, + 401, 748, 779, 172, 172, 172, 172, 172, 172, 306, + 306, 306, 306, 306, 811, 241, 244, 244, 244, 244, + + 244, 401, 503, 241, 405, 241, 172, 172, 172, 172, + 172, 172, 176, 176, 176, 176, 176, 241, 307, 405, + 747, 332, 307, 741, 307, 241, 332, 405, 332, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 244, + 244, 811, 392, 176, 176, 176, 176, 176, 176, 244, + 739, 954, 392, 273, 273, 273, 273, 273, 734, 311, + 412, 244, 244, 311, 392, 311, 176, 176, 176, 176, + 176, 176, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 412, 412, 273, 462, 233, 233, 233, 233, + 233, 233, 240, 240, 240, 240, 240, 801, 954, 801, + + 505, 271, 271, 271, 271, 271, 273, 273, 462, 233, + 233, 233, 233, 233, 233, 235, 526, 533, 235, 235, + 235, 235, 235, 235, 235, 325, 732, 240, 463, 325, + 235, 325, 235, 728, 727, 240, 468, 243, 243, 243, + 243, 243, 315, 468, 271, 240, 315, 315, 315, 315, + 240, 463, 505, 235, 271, 235, 237, 240, 468, 237, + 237, 237, 237, 237, 237, 237, 271, 724, 526, 533, + 403, 237, 478, 237, 245, 245, 245, 245, 245, 403, + 243, 246, 246, 246, 246, 246, 402, 337, 705, 243, + 243, 337, 403, 337, 237, 478, 237, 239, 239, 239, + + 239, 239, 243, 704, 251, 251, 251, 251, 251, 346, + 479, 243, 245, 346, 239, 346, 554, 245, 239, 239, + 239, 239, 324, 698, 246, 342, 324, 245, 324, 246, + 342, 697, 342, 479, 246, 245, 556, 402, 402, 245, + 239, 250, 250, 250, 250, 250, 246, 251, 324, 350, + 239, 246, 251, 350, 350, 350, 350, 251, 759, 402, + 759, 759, 239, 247, 247, 247, 247, 247, 554, 251, + 324, 358, 250, 694, 251, 358, 358, 358, 358, 250, + 288, 288, 288, 288, 288, 807, 693, 807, 556, 274, + 274, 274, 274, 274, 250, 250, 247, 277, 277, 277, + + 277, 277, 250, 277, 366, 566, 247, 277, 366, 277, + 366, 369, 247, 397, 247, 369, 247, 369, 740, 247, + 688, 397, 740, 397, 274, 374, 288, 686, 247, 374, + 374, 374, 374, 288, 247, 397, 247, 248, 248, 248, + 248, 248, 274, 397, 838, 399, 838, 274, 288, 424, + 277, 399, 742, 424, 248, 424, 742, 566, 248, 248, + 248, 248, 320, 320, 320, 320, 320, 399, 248, 280, + 280, 280, 280, 280, 321, 321, 321, 321, 321, 322, + 322, 322, 322, 322, 495, 280, 583, 583, 583, 583, + 248, 248, 276, 276, 276, 276, 276, 335, 335, 335, + + 335, 335, 336, 336, 336, 336, 336, 495, 280, 276, + 276, 276, 276, 276, 276, 276, 276, 276, 276, 682, + 681, 423, 280, 276, 276, 276, 276, 276, 276, 423, + 678, 280, 289, 289, 289, 289, 289, 340, 340, 340, + 340, 340, 427, 423, 676, 675, 276, 276, 276, 276, + 276, 276, 278, 278, 278, 278, 278, 278, 278, 278, + 278, 278, 656, 492, 427, 427, 278, 278, 278, 278, + 278, 278, 341, 341, 341, 341, 341, 655, 289, 492, + 331, 331, 331, 331, 331, 289, 492, 630, 629, 278, + 278, 278, 278, 278, 278, 355, 355, 355, 355, 355, + + 289, 293, 293, 293, 293, 293, 293, 293, 293, 293, + 293, 331, 621, 447, 497, 293, 293, 293, 293, 293, + 293, 620, 577, 349, 349, 349, 349, 349, 356, 356, + 356, 356, 356, 331, 331, 447, 447, 497, 293, 293, + 293, 293, 293, 293, 296, 296, 296, 296, 296, 296, + 296, 296, 296, 296, 576, 517, 394, 521, 296, 296, + 296, 296, 296, 296, 357, 357, 357, 357, 357, 363, + 363, 363, 363, 363, 394, 349, 349, 517, 517, 394, + 521, 296, 296, 296, 296, 296, 296, 297, 297, 297, + 297, 297, 297, 297, 297, 297, 297, 349, 847, 573, + + 847, 297, 297, 297, 297, 297, 297, 364, 364, 364, + 364, 364, 572, 314, 314, 314, 314, 314, 365, 365, + 365, 365, 365, 393, 297, 297, 297, 297, 297, 297, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, + 761, 522, 761, 761, 301, 301, 301, 301, 301, 301, + 314, 372, 372, 372, 372, 372, 376, 569, 376, 376, + 376, 376, 376, 376, 522, 393, 314, 301, 301, 301, + 301, 301, 301, 314, 378, 393, 378, 378, 378, 378, + 378, 378, 409, 568, 459, 372, 567, 393, 459, 565, + 389, 389, 389, 389, 389, 429, 560, 418, 409, 429, + + 409, 429, 409, 418, 372, 409, 459, 558, 372, 373, + 373, 373, 373, 373, 373, 373, 373, 373, 373, 418, + 409, 389, 409, 373, 373, 373, 373, 373, 373, 380, + 380, 380, 380, 380, 867, 568, 867, 555, 381, 381, + 381, 381, 381, 389, 389, 553, 373, 373, 373, 373, + 373, 373, 375, 549, 547, 375, 375, 375, 375, 375, + 375, 375, 900, 420, 380, 528, 900, 375, 420, 375, + 420, 395, 380, 400, 382, 382, 382, 382, 382, 411, + 398, 381, 380, 411, 411, 411, 411, 380, 528, 381, + 375, 381, 375, 377, 380, 541, 377, 377, 377, 377, + + 377, 377, 377, 381, 662, 395, 529, 884, 377, 884, + 377, 381, 662, 406, 419, 540, 532, 382, 419, 400, + 419, 382, 398, 395, 404, 400, 662, 382, 395, 529, + 398, 377, 398, 377, 379, 379, 379, 379, 379, 382, + 570, 400, 419, 382, 398, 383, 383, 383, 383, 383, + 406, 379, 398, 543, 543, 379, 379, 379, 379, 384, + 384, 384, 384, 384, 419, 406, 525, 404, 385, 385, + 385, 385, 385, 406, 679, 543, 404, 379, 464, 386, + 386, 386, 386, 386, 464, 515, 407, 379, 383, 404, + 413, 407, 570, 906, 514, 906, 407, 383, 383, 379, + + 464, 432, 384, 384, 493, 432, 385, 432, 407, 544, + 383, 385, 384, 407, 391, 391, 391, 391, 391, 383, + 413, 385, 386, 465, 384, 384, 679, 386, 465, 385, + 465, 511, 386, 385, 390, 390, 390, 390, 390, 510, + 493, 414, 413, 413, 386, 414, 414, 414, 414, 386, + 387, 387, 387, 387, 387, 535, 493, 391, 414, 410, + 544, 544, 391, 493, 435, 390, 408, 391, 435, 396, + 435, 536, 390, 396, 396, 396, 396, 414, 535, 391, + 725, 414, 544, 387, 391, 508, 436, 390, 390, 396, + 436, 410, 436, 387, 536, 390, 546, 507, 428, 387, + + 443, 387, 428, 387, 428, 396, 387, 410, 408, 410, + 443, 410, 396, 408, 410, 387, 504, 502, 408, 546, + 428, 387, 443, 387, 388, 388, 388, 388, 388, 410, + 408, 410, 725, 498, 496, 408, 425, 425, 425, 425, + 425, 388, 446, 428, 439, 388, 388, 388, 388, 426, + 426, 426, 426, 426, 444, 388, 433, 433, 433, 433, + 433, 490, 439, 448, 440, 548, 489, 439, 440, 445, + 440, 441, 441, 441, 441, 441, 446, 388, 388, 442, + 486, 485, 425, 442, 442, 442, 442, 445, 548, 425, + 433, 482, 445, 448, 446, 426, 444, 461, 472, 446, + + 513, 461, 426, 461, 425, 513, 444, 513, 441, 433, + 942, 457, 942, 433, 460, 448, 448, 426, 444, 460, + 438, 460, 467, 477, 441, 437, 467, 477, 467, 477, + 518, 441, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 605, 469, 460, 609, 449, 449, 449, 449, + 449, 449, 450, 450, 450, 450, 450, 484, 450, 431, + 518, 484, 450, 484, 450, 605, 460, 430, 609, 449, + 449, 449, 449, 449, 449, 451, 451, 451, 451, 451, + 488, 451, 518, 518, 488, 451, 488, 451, 469, 480, + 480, 480, 480, 480, 422, 469, 481, 481, 481, 481, + + 481, 421, 494, 610, 670, 450, 494, 494, 494, 494, + 469, 487, 487, 487, 487, 487, 499, 499, 499, 499, + 499, 500, 500, 500, 500, 500, 610, 670, 451, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + + 455, 455, 455, 455, 455, 455, 455, 455, 456, 456, + 456, 456, 456, 415, 371, 466, 466, 466, 466, 466, + 491, 491, 491, 491, 491, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 602, 602, 602, 602, 456, + 456, 456, 456, 456, 456, 501, 501, 501, 501, 501, + 506, 519, 370, 368, 506, 509, 506, 491, 367, 509, + 466, 509, 456, 456, 456, 456, 456, 456, 466, 361, + 519, 520, 359, 491, 519, 527, 520, 354, 520, 527, + 491, 527, 466, 471, 471, 471, 471, 471, 352, 471, + 523, 523, 523, 523, 523, 512, 512, 512, 512, 512, + + 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, + 604, 604, 604, 604, 471, 471, 471, 471, 471, 471, + 524, 524, 524, 524, 524, 948, 348, 948, 615, 512, + 530, 530, 530, 530, 530, 615, 471, 471, 471, 471, + 471, 471, 471, 474, 474, 474, 474, 474, 512, 534, + 615, 606, 512, 347, 534, 606, 534, 474, 345, 330, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 952, 329, 952, 606, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 327, 622, + 474, 475, 475, 475, 475, 475, 475, 475, 475, 475, + 475, 636, 636, 636, 636, 475, 475, 475, 475, 475, + 475, 622, 622, 516, 516, 516, 516, 516, 531, 531, + 531, 531, 531, 537, 537, 537, 537, 537, 475, 475, + 475, 475, 475, 475, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 516, 975, 634, 975, 476, 476, + 476, 476, 476, 476, 538, 538, 538, 538, 538, 539, + 326, 652, 634, 539, 571, 539, 516, 516, 571, 634, + + 571, 476, 476, 476, 476, 476, 476, 542, 542, 542, + 542, 542, 545, 652, 652, 671, 545, 545, 545, 545, + 550, 550, 550, 550, 550, 551, 551, 551, 551, 551, + 552, 552, 552, 552, 552, 557, 580, 751, 671, 557, + 557, 557, 557, 562, 562, 562, 562, 562, 563, 563, + 563, 563, 563, 564, 564, 564, 564, 564, 323, 542, + 542, 574, 574, 574, 574, 574, 575, 579, 319, 580, + 575, 317, 575, 578, 578, 578, 578, 578, 608, 902, + 612, 542, 608, 902, 608, 612, 579, 612, 580, 751, + 579, 585, 580, 585, 585, 585, 585, 585, 585, 587, + + 313, 587, 587, 587, 587, 587, 587, 578, 614, 618, + 815, 654, 614, 618, 614, 618, 654, 312, 654, 815, + 598, 598, 598, 598, 598, 986, 578, 986, 310, 309, + 578, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 598, 598, 598, 598, 582, 582, 582, 582, 582, + 582, 584, 584, 584, 584, 584, 584, 584, 601, 601, + 601, 601, 815, 584, 308, 584, 616, 298, 582, 582, + 582, 582, 582, 582, 601, 586, 586, 586, 586, 586, + 586, 586, 684, 684, 684, 684, 584, 586, 584, 586, + 601, 603, 603, 603, 603, 607, 685, 601, 294, 611, + + 607, 661, 607, 619, 603, 611, 661, 619, 661, 619, + 586, 616, 586, 588, 588, 588, 588, 588, 616, 685, + 623, 611, 285, 603, 623, 607, 623, 603, 672, 672, + 672, 672, 672, 616, 588, 588, 588, 588, 626, 613, + 613, 613, 613, 613, 625, 657, 687, 607, 625, 657, + 625, 624, 624, 624, 624, 624, 588, 626, 628, 631, + 627, 626, 628, 631, 628, 631, 588, 657, 284, 687, + 632, 632, 632, 632, 632, 635, 279, 269, 588, 589, + 589, 589, 589, 589, 613, 633, 710, 711, 268, 633, + 624, 633, 613, 627, 264, 638, 638, 638, 638, 638, + + 589, 589, 589, 589, 624, 632, 613, 638, 263, 710, + 711, 635, 627, 624, 589, 231, 627, 640, 640, 640, + 640, 640, 1022, 632, 1022, 812, 653, 635, 632, 640, + 812, 653, 589, 653, 635, 230, 866, 589, 590, 590, + 590, 590, 590, 644, 644, 644, 644, 644, 658, 644, + 227, 226, 658, 644, 658, 644, 715, 225, 653, 590, + 590, 590, 590, 223, 645, 645, 645, 645, 645, 674, + 645, 221, 716, 674, 645, 674, 645, 812, 219, 715, + 653, 590, 646, 646, 646, 646, 646, 663, 866, 590, + 1026, 590, 1026, 218, 646, 716, 644, 217, 647, 647, + + 647, 647, 647, 590, 647, 1027, 215, 1027, 647, 720, + 647, 590, 591, 591, 591, 591, 591, 645, 648, 648, + 648, 648, 648, 692, 648, 211, 210, 692, 648, 692, + 648, 663, 720, 591, 591, 591, 591, 207, 206, 663, + 659, 659, 659, 659, 659, 660, 660, 660, 660, 660, + 1047, 647, 1047, 663, 673, 673, 673, 673, 673, 591, + 677, 677, 677, 677, 677, 591, 689, 689, 689, 689, + 689, 648, 700, 683, 683, 683, 683, 683, 707, 721, + 202, 591, 592, 592, 592, 592, 592, 659, 731, 733, + 696, 700, 660, 659, 696, 700, 696, 707, 660, 701, + + 197, 707, 721, 592, 592, 592, 592, 196, 192, 659, + 683, 731, 733, 191, 660, 690, 690, 690, 690, 690, + 691, 691, 691, 691, 691, 190, 683, 695, 695, 695, + 695, 695, 701, 683, 592, 592, 699, 699, 699, 699, + 699, 706, 706, 706, 706, 706, 712, 712, 712, 712, + 712, 701, 1059, 188, 1059, 701, 592, 593, 593, 593, + 593, 593, 713, 713, 713, 713, 713, 843, 185, 777, + 699, 184, 706, 717, 717, 717, 717, 717, 593, 593, + 593, 593, 718, 718, 718, 718, 718, 181, 777, 699, + 843, 719, 777, 699, 706, 706, 719, 1060, 719, 1060, + + 790, 593, 722, 722, 722, 722, 722, 958, 790, 180, + 593, 723, 723, 723, 723, 723, 958, 729, 729, 729, + 729, 729, 790, 593, 594, 594, 594, 594, 594, 730, + 730, 730, 730, 735, 735, 735, 735, 735, 736, 736, + 736, 736, 736, 175, 173, 594, 594, 594, 594, 737, + 737, 737, 737, 737, 738, 738, 738, 738, 166, 958, + 775, 844, 594, 743, 743, 743, 743, 743, 153, 729, + 729, 744, 744, 744, 744, 744, 775, 594, 745, 745, + 745, 745, 745, 775, 844, 594, 595, 595, 595, 595, + 595, 729, 746, 144, 142, 854, 746, 856, 746, 749, + + 749, 749, 749, 749, 132, 758, 758, 758, 799, 758, + 758, 758, 755, 755, 755, 755, 755, 758, 854, 758, + 856, 131, 799, 762, 762, 762, 762, 762, 782, 595, + 832, 799, 785, 782, 595, 782, 785, 595, 117, 595, + 758, 113, 758, 760, 760, 760, 755, 760, 760, 760, + 112, 595, 832, 832, 785, 760, 595, 760, 791, 595, + 596, 596, 596, 596, 596, 755, 762, 111, 874, 755, + 763, 763, 763, 763, 763, 1077, 762, 1077, 760, 109, + 760, 772, 772, 772, 772, 772, 786, 874, 762, 805, + 786, 874, 786, 596, 108, 104, 764, 764, 764, 764, + + 764, 789, 791, 596, 102, 763, 789, 805, 789, 596, + 791, 596, 805, 596, 98, 97, 596, 765, 765, 765, + 765, 765, 781, 763, 791, 596, 793, 781, 763, 781, + 793, 596, 793, 596, 597, 597, 597, 597, 597, 764, + 93, 827, 766, 766, 766, 766, 766, 764, 91, 764, + 827, 1079, 88, 1079, 781, 597, 597, 597, 597, 81, + 76, 764, 796, 827, 765, 597, 796, 75, 796, 764, + 765, 767, 767, 767, 767, 767, 781, 71, 876, 768, + 768, 768, 768, 768, 800, 877, 765, 597, 597, 599, + 599, 599, 599, 599, 766, 766, 769, 769, 769, 769, + + 769, 876, 57, 771, 771, 771, 771, 771, 877, 55, + 599, 599, 599, 599, 798, 767, 766, 768, 798, 802, + 798, 1075, 800, 802, 767, 802, 806, 599, 44, 804, + 1075, 41, 768, 804, 771, 804, 800, 767, 39, 769, + 768, 829, 599, 1075, 769, 800, 829, 35, 829, 769, + 599, 600, 600, 600, 600, 600, 771, 771, 828, 835, + 806, 769, 828, 835, 828, 835, 769, 787, 787, 787, + 787, 787, 803, 803, 803, 803, 803, 880, 806, 1090, + 1098, 1090, 1098, 806, 773, 773, 773, 773, 773, 809, + 809, 809, 809, 809, 600, 881, 31, 24, 833, 600, + + 880, 809, 600, 833, 600, 833, 774, 774, 774, 774, + 774, 861, 21, 836, 787, 861, 600, 861, 881, 836, + 787, 600, 773, 885, 600, 637, 637, 637, 637, 637, + 637, 637, 637, 637, 637, 836, 787, 773, 886, 637, + 637, 637, 637, 637, 637, 773, 885, 20, 933, 774, + 892, 894, 939, 933, 774, 933, 939, 15, 939, 774, + 946, 886, 637, 637, 637, 637, 637, 637, 641, 641, + 641, 774, 1000, 892, 894, 13, 774, 797, 797, 797, + 797, 797, 946, 946, 641, 641, 641, 641, 641, 641, + 641, 641, 641, 641, 3, 1000, 1001, 1039, 641, 641, + + 641, 641, 641, 641, 1100, 0, 1100, 0, 797, 845, + 845, 845, 845, 845, 846, 846, 846, 846, 846, 1001, + 1039, 641, 641, 641, 641, 641, 641, 643, 643, 643, + 797, 797, 850, 850, 850, 850, 850, 858, 858, 858, + 858, 858, 0, 643, 643, 643, 643, 643, 643, 643, + 643, 643, 643, 0, 1040, 0, 0, 643, 643, 643, + 643, 643, 643, 817, 817, 817, 817, 817, 943, 817, + 0, 937, 943, 817, 943, 817, 937, 1040, 937, 0, + 643, 643, 643, 643, 643, 643, 649, 649, 649, 649, + 649, 940, 649, 0, 0, 945, 649, 940, 649, 945, + + 0, 945, 0, 649, 649, 649, 649, 649, 649, 649, + 649, 649, 649, 940, 0, 0, 817, 649, 649, 649, + 649, 649, 649, 859, 859, 859, 859, 859, 860, 860, + 860, 860, 860, 864, 864, 864, 864, 864, 0, 649, + 649, 649, 649, 649, 649, 649, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + + 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 651, 651, 651, 651, 651, + 651, 651, 651, 651, 651, 0, 0, 0, 0, 651, + 651, 651, 651, 651, 651, 818, 818, 818, 818, 818, + 949, 818, 0, 970, 949, 818, 949, 818, 970, 0, + 970, 0, 651, 651, 651, 651, 651, 651, 665, 665, + 665, 665, 665, 1045, 665, 878, 878, 878, 878, 878, + 879, 879, 879, 879, 879, 665, 665, 665, 665, 665, + 665, 665, 665, 665, 665, 1045, 1045, 0, 818, 665, + + 665, 665, 665, 665, 665, 820, 820, 820, 820, 820, + 834, 834, 834, 834, 834, 0, 965, 820, 0, 0, + 965, 665, 665, 665, 665, 665, 665, 665, 666, 666, + 666, 666, 666, 666, 666, 666, 666, 666, 965, 0, + 0, 0, 666, 666, 666, 666, 666, 666, 821, 821, + 821, 821, 821, 873, 873, 873, 873, 873, 820, 834, + 821, 0, 0, 834, 0, 666, 666, 666, 666, 666, + 666, 667, 667, 667, 667, 667, 667, 667, 667, 667, + 667, 834, 0, 0, 873, 667, 667, 667, 667, 667, + 667, 0, 822, 822, 822, 822, 822, 0, 822, 967, + + 0, 821, 822, 967, 822, 967, 873, 873, 667, 667, + 667, 667, 667, 667, 668, 668, 668, 668, 668, 668, + 668, 668, 668, 668, 0, 0, 0, 0, 668, 668, + 668, 668, 668, 668, 0, 0, 788, 788, 788, 788, + 788, 837, 0, 0, 0, 822, 882, 882, 882, 882, + 882, 668, 668, 668, 668, 668, 668, 757, 757, 757, + 757, 757, 757, 757, 757, 757, 757, 0, 0, 0, + 0, 757, 757, 757, 757, 757, 757, 947, 823, 823, + 823, 823, 823, 788, 973, 0, 0, 837, 973, 788, + 823, 0, 0, 837, 757, 757, 757, 757, 757, 757, + + 770, 770, 770, 770, 770, 788, 973, 947, 0, 837, + 839, 839, 839, 839, 839, 0, 839, 883, 883, 883, + 883, 883, 887, 887, 887, 887, 887, 0, 1020, 947, + 947, 823, 1020, 770, 888, 888, 888, 888, 888, 896, + 896, 896, 896, 896, 897, 897, 897, 897, 897, 770, + 1020, 770, 0, 770, 0, 0, 770, 898, 898, 898, + 898, 898, 0, 839, 903, 903, 903, 903, 903, 0, + 0, 770, 0, 770, 808, 808, 808, 808, 808, 808, + 808, 808, 808, 808, 0, 0, 0, 0, 808, 808, + 808, 808, 808, 808, 853, 853, 853, 853, 853, 904, + + 904, 904, 904, 904, 905, 905, 905, 905, 905, 0, + 0, 808, 808, 808, 808, 808, 808, 813, 813, 813, + 813, 813, 0, 813, 909, 909, 909, 909, 909, 0, + 0, 853, 0, 0, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 0, 0, 0, 853, 813, 813, + 813, 813, 813, 813, 853, 944, 944, 944, 944, 944, + 953, 953, 953, 953, 953, 981, 981, 981, 981, 981, + 813, 813, 813, 813, 813, 813, 813, 816, 816, 816, + 816, 816, 1041, 972, 1017, 0, 1041, 816, 972, 1017, + 972, 1017, 0, 0, 816, 816, 816, 816, 816, 816, + + 816, 816, 816, 816, 1041, 0, 0, 0, 816, 816, + 816, 816, 816, 816, 870, 870, 870, 870, 870, 0, + 891, 891, 891, 891, 891, 989, 989, 989, 989, 989, + 816, 816, 816, 816, 816, 816, 816, 819, 819, 819, + 819, 819, 819, 819, 819, 819, 819, 0, 870, 0, + 0, 819, 819, 819, 819, 819, 819, 914, 914, 914, + 914, 914, 1023, 0, 0, 955, 1023, 870, 1023, 0, + 955, 870, 891, 891, 819, 819, 819, 819, 819, 819, + 824, 824, 824, 824, 824, 1002, 1002, 1002, 1002, 1002, + 0, 0, 0, 0, 891, 0, 0, 824, 824, 824, + + 824, 824, 824, 824, 824, 824, 824, 0, 0, 0, + 914, 824, 824, 824, 824, 824, 824, 955, 1003, 1003, + 1003, 1003, 1003, 1013, 1013, 1013, 1013, 1013, 1018, 1018, + 1018, 1018, 1018, 0, 824, 824, 824, 824, 824, 824, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 826, + 826, 826, 826, 826, 826, 826, 826, 826, 826, 0, + 0, 0, 0, 826, 826, 826, 826, 826, 826, 912, + 912, 912, 912, 912, 924, 924, 924, 924, 924, 1038, + 1088, 0, 0, 1038, 1088, 1038, 826, 826, 826, 826, + 826, 826, 840, 840, 840, 840, 840, 840, 840, 840, + 840, 840, 1088, 912, 0, 924, 840, 840, 840, 840, + 840, 840, 916, 916, 916, 916, 916, 0, 0, 966, + 0, 0, 912, 966, 0, 966, 912, 924, 924, 840, + + 840, 840, 840, 840, 840, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 0, 966, 916, 0, 841, + 841, 841, 841, 841, 841, 0, 915, 915, 915, 915, + 915, 0, 1019, 0, 0, 916, 0, 1019, 966, 1019, + 916, 0, 841, 841, 841, 841, 841, 841, 842, 842, + 842, 842, 842, 842, 842, 842, 842, 842, 0, 0, + 0, 0, 842, 842, 842, 842, 842, 842, 0, 915, + 917, 917, 917, 917, 917, 0, 0, 974, 941, 915, + 918, 918, 918, 918, 918, 842, 842, 842, 842, 842, + 842, 915, 919, 919, 919, 919, 919, 920, 920, 920, + + 920, 920, 0, 0, 921, 921, 921, 921, 921, 1046, + 0, 0, 0, 917, 0, 0, 922, 922, 922, 922, + 922, 917, 1042, 917, 941, 974, 1042, 918, 1042, 974, + 941, 1044, 0, 918, 0, 917, 1044, 0, 1044, 1046, + 0, 920, 921, 917, 919, 919, 941, 974, 0, 918, + 920, 925, 925, 925, 925, 925, 0, 921, 0, 922, + 0, 1046, 1046, 920, 922, 921, 919, 0, 0, 922, + 926, 926, 926, 926, 926, 0, 927, 927, 927, 927, + 927, 922, 1076, 0, 0, 0, 922, 923, 923, 923, + 923, 923, 0, 0, 0, 928, 928, 928, 928, 928, + + 1056, 0, 0, 0, 925, 1056, 0, 1056, 926, 929, + 929, 929, 929, 929, 931, 931, 931, 931, 931, 927, + 923, 1067, 0, 926, 927, 1076, 1067, 0, 1067, 927, + 0, 926, 928, 1071, 1076, 0, 923, 1071, 923, 1071, + 923, 927, 0, 923, 0, 0, 927, 1076, 928, 930, + 930, 930, 930, 930, 0, 928, 0, 1074, 923, 1085, + 923, 1074, 929, 1074, 1085, 0, 1085, 931, 938, 938, + 938, 938, 938, 961, 961, 961, 961, 961, 963, 963, + 963, 963, 963, 930, 0, 961, 0, 0, 0, 0, + 963, 1051, 1051, 1051, 1051, 1051, 0, 971, 971, 971, + + 971, 971, 930, 0, 0, 0, 930, 976, 976, 976, + 976, 976, 977, 977, 977, 977, 977, 938, 1087, 0, + 1037, 938, 1087, 1021, 1087, 1037, 961, 1037, 971, 0, + 0, 963, 1086, 1086, 1086, 1086, 1086, 0, 0, 938, + 956, 956, 956, 956, 956, 956, 956, 956, 956, 956, + 971, 971, 1037, 0, 956, 956, 956, 956, 956, 956, + 976, 0, 0, 0, 0, 977, 978, 978, 978, 978, + 978, 1021, 0, 0, 1037, 1021, 0, 956, 956, 956, + 956, 956, 956, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 1021, 0, 0, 0, 959, 959, 959, + + 959, 959, 959, 983, 983, 983, 983, 983, 984, 984, + 984, 984, 984, 1094, 1094, 1094, 1094, 1094, 0, 978, + 959, 959, 959, 959, 959, 959, 960, 960, 960, 960, + 960, 960, 960, 960, 960, 960, 0, 0, 0, 0, + 960, 960, 960, 960, 960, 960, 1095, 0, 0, 0, + 0, 1095, 0, 1095, 0, 0, 983, 0, 0, 0, + 0, 984, 0, 960, 960, 960, 960, 960, 960, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, + + 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 964, 964, + 964, 964, 964, 964, 964, 964, 964, 964, 0, 0, + 0, 0, 964, 964, 964, 964, 964, 964, 982, 982, + 982, 982, 982, 985, 985, 985, 985, 985, 992, 992, + 992, 992, 992, 0, 0, 964, 964, 964, 964, 964, + 964, 993, 993, 993, 993, 993, 994, 994, 994, 994, + + 994, 0, 0, 0, 0, 982, 995, 995, 995, 995, + 995, 0, 992, 996, 996, 996, 996, 996, 0, 0, + 0, 982, 993, 0, 0, 0, 985, 0, 982, 0, + 994, 992, 0, 0, 0, 992, 997, 997, 997, 997, + 997, 0, 0, 0, 993, 993, 0, 0, 0, 994, + 0, 0, 0, 994, 998, 998, 998, 998, 998, 995, + 999, 999, 999, 999, 999, 0, 996, 1004, 1004, 1004, + 1004, 1004, 1005, 1005, 1005, 1005, 1005, 1006, 1006, 1006, + 1006, 1006, 1007, 1007, 1007, 1007, 1007, 0, 1089, 997, 1008, 1008, 1008, 1008, 1008, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, - - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1012, 1012, 1012, 1012, - 1012, 1012, 1012, 1012, 1012, 1012, 0, 0, 0, 0, - 1012, 1012, 1012, 1012, 1012, 1012, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1012, 1012, 1012, 1012, 1012, 1019, 1019, - 1019, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 1019, 0, 0, 0, 0, 0, 1019, 1019, 1019, 1019, - 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, - 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 1023, 1023, - 1023, 1023, 1023, 0, 1023, 0, 0, 0, 0, 0, - 0, 1023, 0, 0, 0, 0, 0, 1023, 1023, 1023, - 1023, 1023, 1023, 1023, 1023, 1023, 1023, 0, 0, 0, - 0, 1023, 1023, 1023, 1023, 1023, 1023, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 1023, 1023, 1023, 1023, 1023, 1023, 1026, - 1026, 1026, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1026, 0, 0, 0, 0, 0, 1026, 1026, 1026, - 1026, 1026, 1026, 1026, 1026, 1026, 1026, 0, 0, 0, - 0, 1026, 1026, 1026, 1026, 1026, 1026, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1026, 1026, 1026, 1026, 1026, 1030, - 1030, 1030, 1030, 1030, 0, 0, 0, 0, 0, 1030, - 0, 0, 1030, 0, 0, 0, 0, 0, 1030, 1030, - 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 0, 0, - - 0, 0, 1030, 1030, 1030, 1030, 1030, 1030, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1030, 1030, 1030, 1030, 1030, 1030, - 1033, 1033, 1033, 1033, 1033, 1033, 0, 1033, 0, 0, - 0, 1033, 1033, 1033, 1033, 0, 0, 0, 0, 1033, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1033, 1035, 1035, 1035, - 1035, 1035, 1035, 0, 1035, 0, 0, 0, 1035, 1035, - 1035, 1035, 0, 0, 0, 0, 1035, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1035, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - - 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 1036, 1036, 1036, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, - - 1037, 1037, 1037, 1037, 1037, 1037, 1038, 1038, 1038, 1038, - 1038, 1038, 0, 1038, 0, 0, 0, 1038, 1038, 1038, - 1038, 0, 0, 0, 0, 1038, 1038, 1038, 1038, 1038, - 1038, 1038, 1038, 1038, 1038, 1038, 0, 0, 0, 0, - 1038, 1038, 1038, 1038, 1038, 1038, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1038, 1038, 1038, 1038, 1038, 1038, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 0, 0, 0, 0, 1042, 1042, 1042, 1042, 1042, - 1042, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1042, 1042, - 1042, 1042, 1042, 1047, 1047, 1047, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1047, 0, 0, 0, 0, - 0, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, - 1047, 0, 0, 0, 0, 1047, 1047, 1047, 1047, 1047, - 1047, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 1047, 1047, - 1047, 1047, 1047, 1056, 1056, 1056, 1056, 1056, 0, 1056, - 0, 0, 0, 0, 0, 0, 1056, 0, 0, 0, - 0, 0, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, - 1056, 1056, 0, 0, 0, 0, 1056, 1056, 1056, 1056, - 1056, 1056, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1056, 1056, - 1056, 1056, 1056, 1056, 1059, 1059, 1059, 1059, 1059, 0, - 1059, 0, 0, 0, 0, 0, 0, 1059, 0, 0, - 0, 0, 0, 1059, 1059, 1059, 1059, 1059, 1059, 1059, - - 1059, 1059, 1059, 0, 0, 0, 0, 1059, 1059, 1059, - 1059, 1059, 1059, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1059, - 1059, 1059, 1059, 1059, 1059, 1062, 1062, 1062, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1062, 0, 0, - 0, 0, 0, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 0, 0, 0, 0, 1062, 1062, 1062, - 1062, 1062, 1062, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1062, 1062, 1062, 1062, 1062, 1068, 1068, 1068, 1068, 1068, - - 0, 0, 0, 0, 0, 1068, 0, 0, 1068, 0, - 0, 0, 0, 0, 1068, 1068, 1068, 1068, 1068, 1068, - 1068, 1068, 1068, 1068, 0, 0, 0, 0, 1068, 1068, - 1068, 1068, 1068, 1068, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1068, 1068, 1068, 1068, 1068, 1068, 1071, 1071, 1071, 1071, - 1071, 0, 0, 0, 0, 0, 1071, 0, 0, 1071, - 0, 0, 0, 0, 0, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 0, 0, 0, 0, 1071, - 1071, 1071, 1071, 1071, 1071, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1071, 1071, 1071, 1071, 1071, 1071, 1077, 1077, 1077, - 1077, 1077, 1077, 0, 1077, 0, 0, 0, 1077, 1077, - 1077, 1077, 0, 0, 0, 0, 1077, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1077, 1078, 1078, 1078, 1078, 1078, 1078, - 0, 1078, 0, 0, 0, 1078, 1078, 1078, 1078, 0, - 0, 0, 0, 1078, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1078, 1079, 1079, 1079, 1079, 1079, 1079, 0, 1079, 0, - 0, 0, 1079, 1079, 1079, 1079, 0, 0, 0, 0, - 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1079, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, - - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1081, - 1081, 1081, 1081, 1081, 1081, 0, 1081, 0, 0, 0, - 1081, 1081, 1081, 1081, 0, 0, 0, 0, 1081, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1081, 1082, 1082, 1082, 1082, - 1082, 1082, 0, 1082, 0, 0, 0, 1082, 1082, 1082, - 1082, 0, 0, 0, 0, 1082, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1082, 1083, 1083, 1083, 1083, 1083, 1083, 0, - 1083, 0, 0, 0, 1083, 1083, 1083, 1083, 0, 0, - - 0, 0, 1083, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1083, - 1084, 1084, 1084, 1084, 1084, 1084, 0, 1084, 0, 0, - 0, 1084, 1084, 1084, 1084, 0, 0, 0, 0, 1084, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1084, 1085, 1085, 1085, - - 1085, 1085, 1085, 0, 1085, 0, 0, 0, 1085, 1085, - 1085, 1085, 0, 0, 0, 0, 1085, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1085, 1086, 1086, 1086, 1086, 1086, 1086, - 0, 1086, 0, 0, 0, 1086, 1086, 1086, 1086, 0, - 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1086, 1087, 1087, 1087, 1087, 1087, 1087, 0, 1087, 0, - 0, 0, 1087, 1087, 1087, 1087, 0, 0, 0, 0, - 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, - 1087, 0, 0, 0, 0, 1087, 1087, 1087, 1087, 1087, - 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1087, 1087, 1087, - 1087, 1087, 1087, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - - 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1090, 1090, 1090, 1090, 1090, 1090, - 0, 1090, 0, 0, 0, 1090, 1090, 1090, 1090, 0, - 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1090, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - 1092, 1092, 1092, 1093, 1093, 1093, 1093, 1093, 1093, 0, - 1093, 0, 0, 0, 1093, 1093, 1093, 1093, 0, 0, - 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, - 1094, 1094, 1094, 1094, 1094, 1094, 0, 1094, 0, 0, - 0, 1094, 1094, 1094, 1094, 0, 0, 0, 0, 1094, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1094, 1102, 1102, 1102, - 1102, 1102, 0, 1102, 0, 0, 0, 0, 0, 0, - - 1102, 0, 0, 0, 0, 0, 1102, 1102, 1102, 1102, - 1102, 1102, 1102, 1102, 1102, 1102, 0, 0, 0, 0, - 1102, 1102, 1102, 1102, 1102, 1102, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1102, 1102, 1102, 1102, 1102, 1102, 1103, 1103, - 1103, 1103, 1103, 0, 1103, 0, 0, 0, 0, 0, - 0, 1103, 0, 0, 0, 0, 0, 1103, 1103, 1103, - 1103, 1103, 1103, 1103, 1103, 1103, 1103, 0, 0, 0, - 0, 1103, 1103, 1103, 1103, 1103, 1103, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 1103, 1103, 1103, 1103, 1103, 1103, 1107, - 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 0, - 0, 0, 0, 1107, 1107, 1107, 1107, 1107, 1107, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1107, 1107, 1107, 1107, - 1107, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, - 1108, 0, 0, 0, 0, 1108, 1108, 1108, 1108, 1108, - 1108, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1108, 1108, - 1108, 1108, 1108, 1110, 1110, 1110, 1110, 1110, 1110, 0, - - 1110, 0, 0, 0, 1110, 1110, 1110, 1110, 0, 0, - 0, 0, 1110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1110, - 1111, 1111, 1111, 1111, 1111, 1111, 0, 1111, 0, 0, - 0, 1111, 1111, 1111, 1111, 0, 0, 0, 0, 1111, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 1111, 1112, 1112, 1112, - 1112, 1112, 1112, 1112, 1112, 1112, 1112, 0, 0, 0, - 0, 1112, 1112, 1112, 1112, 1112, 1112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1112, 1112, 1112, 1112, 1112, 1113, - 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 0, - 0, 0, 0, 1113, 1113, 1113, 1113, 1113, 1113, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1113, 1113, 1113, 1113, - 1113, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, - - 1114, 0, 0, 0, 0, 1114, 1114, 1114, 1114, 1114, - 1114, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1114, 1114, - 1114, 1114, 1114, 1115, 1115, 1115, 1115, 1115, 1115, 1115, - 1115, 1115, 1115, 0, 0, 0, 0, 1115, 1115, 1115, - 1115, 1115, 1115, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1115, 1115, 1115, 1115, 1115, 1122, 1122, 1122, 1122, 1122, - 1122, 1122, 1122, 1122, 1122, 0, 0, 0, 0, 1122, - 1122, 1122, 1122, 1122, 1122, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1122, 1122, 1122, 1122, 1122, 1123, 1123, 1123, - 1123, 1123, 1123, 1123, 1123, 1123, 1123, 0, 0, 0, - 0, 1123, 1123, 1123, 1123, 1123, 1123, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1123, 1123, 1123, 1123, 1123, 1124, - 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 0, - 0, 0, 0, 1124, 1124, 1124, 1124, 1124, 1124, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1124, 1124, 1124, 1124, - - 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, - 1125, 0, 0, 0, 0, 1125, 1125, 1125, 1125, 1125, - 1125, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1125, 1125, - 1125, 1125, 1125, 1126, 1126, 1126, 1126, 1126, 1126, 1126, - 1126, 1126, 1126, 0, 0, 0, 0, 1126, 1126, 1126, - 1126, 1126, 1126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1126, 1126, 1126, 1126, 1126, 1127, 1127, 1127, 1127, 1127, - 1127, 1127, 1127, 1127, 1127, 0, 0, 0, 0, 1127, - - 1127, 1127, 1127, 1127, 1127, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1127, 1127, 1127, 1127, 1127, 1128, 1128, 1128, - 1128, 1128, 1128, 1128, 1128, 1128, 1128, 0, 0, 0, - 0, 1128, 1128, 1128, 1128, 1128, 1128, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1128, 1128, 1128, 1128, 1128, 1134, - 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 0, - 0, 0, 0, 1134, 1134, 1134, 1134, 1134, 1134, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 1134, 1134, 1134, 1134, - 1134, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, - 1135, 0, 0, 0, 0, 1135, 1135, 1135, 1135, 1135, - 1135, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1135, 1135, - 1135, 1135, 1135, 1136, 1136, 1136, 1136, 1136, 1136, 1136, - 1136, 1136, 1136, 0, 0, 0, 0, 1136, 1136, 1136, - 1136, 1136, 1136, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1136, 1136, 1136, 1136, 1136, 1137, 1137, 1137, 1137, 1137, - - 1137, 1137, 1137, 1137, 1137, 0, 0, 0, 0, 1137, - 1137, 1137, 1137, 1137, 1137, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1137, 1137, 1137, 1137, 1137, 1138, 1138, 1138, - 1138, 1138, 1138, 1138, 1138, 1138, 1138, 0, 0, 0, - 0, 1138, 1138, 1138, 1138, 1138, 1138, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1138, 1138, 1138, 1138, 1138, 1141, - 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 0, - 0, 0, 0, 1141, 1141, 1141, 1141, 1141, 1141, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1141, 1141, 1141, 1141, - 1141, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, - 1142, 0, 0, 0, 0, 1142, 1142, 1142, 1142, 1142, - 1142, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1142, 1142, - 1142, 1142, 1142, 1143, 1143, 1143, 1143, 1143, 1143, 1143, - 1143, 1143, 1143, 0, 0, 0, 0, 1143, 1143, 1143, - 1143, 1143, 1143, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 1143, 1143, 1143, 1143, 1143, 1144, 1144, 1144, 1144, 1144, - 1144, 1144, 1144, 1144, 1144, 0, 0, 0, 0, 1144, - 1144, 1144, 1144, 1144, 1144, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1144, 1144, 1144, 1144, 1144, 1145, 1145, 1145, - 1145, 1145, 1145, 1145, 1145, 1145, 1145, 0, 0, 0, - 0, 1145, 1145, 1145, 1145, 1145, 1145, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1145, 1145, 1145, 1145, 1145, 1149, - 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 0, - - 0, 0, 0, 1149, 1149, 1149, 1149, 1149, 1149, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1149, 1149, 1149, 1149, - 1149, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 0, 0, 0, 0, 1150, 1150, 1150, 1150, 1150, - 1150, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1150, 1150, - 1150, 1150, 1150, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 0, 0, 0, 0, 1151, 1151, 1151, - 1151, 1151, 1151, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1151, 1151, 1151, 1151, 1151, 1153, 1153, 0, 1153, 1153, - 1153, 1153, 1153, 1153, 1154, 1154, 1154, 1155, 1155, 0, - 1155, 1155, 1155, 1155, 1155, 1155, 1156, 0, 1156, 1157, - 1157, 1157, 1157, 1158, 1158, 0, 1158, 1158, 1158, 1158, - 1158, 1158, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, - 1159, 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160, 1160, - 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1162, - 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1164, 1164, - 1164, 1165, 1165, 0, 1165, 1165, 1165, 1165, 1165, 1165, - - 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1167, - 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1168, 1168, - 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1169, 1169, 0, - 1169, 1169, 1169, 1169, 1169, 1169, 1170, 1170, 1170, 1170, - 1170, 1170, 1170, 1170, 1170, 1171, 1171, 1171, 1171, 1171, - 1171, 1171, 1171, 1171, 1172, 1172, 1172, 1172, 1172, 1172, - 1172, 1172, 1172, 1173, 1173, 1173, 1173, 0, 1173, 1173, - 1173, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, - 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1176, - 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177, 1177, - - 0, 1177, 1177, 1177, 1177, 1177, 1177, 1178, 1178, 0, - 1178, 1178, 1178, 1178, 1178, 1178, 1179, 1179, 0, 1179, - 1179, 1179, 1179, 1179, 1179, 1180, 1180, 1180, 1180, 1180, - 1180, 1180, 1180, 1180, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1182, 1182, 1182, 1182, 1182, 1182, 1182, - 1182, 1182, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, - 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1186, - 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1187, 1187, - 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1188, 1188, 1188, - - 1188, 1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1189, - 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1190, 1190, 1190, - 1190, 1190, 1190, 1190, 1191, 1191, 1191, 1191, 1191, 1191, - 1191, 1191, 1191, 1192, 1192, 1192, 0, 0, 1192, 1192, - 1192, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, - 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, - 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1196, 1196, - 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1197, 1197, 1197, - 1197, 1197, 1197, 1197, 1197, 1197, 1198, 1198, 1198, 1198, - 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1199, 1199, 1199, - - 1199, 1199, 1199, 1199, 1200, 1200, 1200, 1200, 1200, 1200, - 1200, 1200, 1200, 1201, 1201, 1201, 1201, 1201, 1201, 1201, - 1201, 1201, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1205, - 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1206, 1206, - 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1207, 1207, 1207, - 1207, 1207, 1207, 1207, 1207, 1207, 1208, 1208, 1208, 1208, - 1208, 1208, 1208, 1208, 1208, 1209, 1209, 1209, 1209, 1209, - 1209, 1209, 1209, 1209, 1210, 1210, 1210, 1210, 1210, 1210, - - 1210, 1210, 1210, 1211, 1211, 1211, 1211, 1211, 1211, 1211, - 1211, 1211, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, - 1212, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, - 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1215, - 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1216, 1216, - 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1217, 1217, 1217, - 1217, 1217, 1217, 1217, 1217, 1217, 1218, 1218, 1218, 1218, - 1218, 1218, 1218, 1218, 1218, 1219, 1219, 1219, 1219, 1219, - 1219, 1219, 1219, 1219, 1220, 1220, 1220, 1220, 1220, 1220, - 1220, 1220, 1220, 1221, 1221, 1221, 1221, 1221, 1221, 1221, - - 1221, 1221, 1222, 1222, 0, 0, 0, 1222, 1222, 1222, - 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1224, - 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1225, 1225, - 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1227, 1227, 1227, 1227, - 1227, 1227, 1227, 1227, 1227, 1228, 1228, 1228, 1228, 1228, - 1228, 1228, 1228, 1228, 1229, 1229, 1229, 1229, 1229, 1229, - 1229, 1229, 1229, 1230, 1230, 1230, 1230, 1230, 1230, 1230, - 1230, 1230, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, - 1231, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, - - 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1234, - 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1235, 1235, - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1236, 1236, 1236, - 1236, 1236, 1236, 1236, 1236, 1236, 1237, 1237, 1237, 1237, - 1237, 1237, 1237, 1237, 1237, 1238, 1238, 1238, 1238, 1238, - 1238, 1238, 1238, 1238, 1239, 1239, 1239, 1239, 1239, 1239, - 1239, 1239, 1239, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - 1240, 1240, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1242, 1242, 1242, 0, 0, 1242, 1242, 1242, 1243, - 1243, 0, 0, 0, 1243, 1243, 1243, 1244, 1244, 1244, - - 1244, 1244, 1244, 1244, 1244, 1244, 1245, 1245, 1245, 1245, - 1245, 1245, 1245, 1245, 1245, 1246, 1246, 1246, 1246, 1246, - 1246, 1246, 1246, 1246, 1247, 1247, 1247, 1247, 1247, 1247, - 1247, 1247, 1247, 1248, 1248, 1248, 1248, 1248, 1248, 1248, - 1248, 1248, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, - 1249, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1252, - 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1253, 1253, - 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1254, 1254, 1254, - 1254, 1254, 1254, 1254, 1254, 1254, 1255, 1255, 1255, 1255, - - 1255, 1255, 1255, 1255, 1255, 1256, 1256, 1256, 1256, 1256, - 1256, 1256, 1256, 1256, 1257, 1257, 1257, 1257, 1257, 1257, - 1257, 1257, 1257, 1258, 1258, 1258, 1258, 1258, 1258, 1258, - 1258, 1258, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, - 1259, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, - 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1262, - 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1263, 1263, - 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1264, 1264, 1264, - 1264, 1264, 1264, 1264, 1264, 1264, 1265, 1265, 1265, 1265, - 1265, 1265, 1265, 1265, 1265, 1266, 1266, 1266, 0, 0, - - 1266, 1266, 1266, 1267, 1267, 1267, 1267, 1267, 1267, 1267, - 1267, 1267, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, - 1268, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, - 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1271, - 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1272, 1272, - 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1273, 1273, 1273, - 1273, 1273, 1273, 1273, 1273, 1273, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1275, 1275, 1275, 1275, 1275, - 1275, 1275, 1275, 1275, 1276, 1276, 1276, 1276, 1276, 1276, - 1276, 1276, 1276, 1277, 1277, 1277, 1277, 1277, 1277, 1277, - - 1277, 1277, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, - 1278, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, - 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1283, 1283, 0, - 1283, 1283, 1283, 1283, 1283, 1283, 1284, 1284, 1284, 1284, - 1284, 1284, 1284, 1284, 1284, 1285, 1285, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1287, 1287, 0, 1287, 1287, 1287, 1287, - 1287, 1287, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, - - 1288, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, - 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1291, - 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1292, 1292, - 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1293, 1293, 1293, - 1293, 1293, 1293, 1293, 1293, 1293, 1294, 1294, 1294, 1294, - 1294, 1294, 1294, 1294, 1294, 1295, 1295, 1295, 1295, 1295, - 1295, 1295, 1295, 1295, 1296, 1296, 1296, 1296, 1296, 1296, - 1296, 1296, 1296, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - 1297, 1297, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, - 1298, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - - 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1301, - 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1303, 1303, 1303, - 1303, 1303, 1303, 1303, 1303, 1303, 1304, 1304, 1304, 1304, - 1304, 1304, 1304, 1304, 1304, 1305, 1305, 1305, 1305, 1305, - 1305, 1305, 1305, 1305, 1306, 1306, 1306, 1306, 1306, 1306, - 1306, 1306, 1306, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152 + 1010, 1010, 1010, 1010, 1010, 0, 0, 998, 1014, 1014, + 1014, 1014, 1014, 999, 1015, 1015, 1015, 1015, 1015, 1004, + 1004, 0, 0, 0, 0, 1005, 0, 0, 0, 0, + 1006, 0, 0, 0, 0, 1007, 1089, 0, 0, 0, + 1089, 1004, 1014, 1008, 0, 0, 0, 0, 1009, 0, + 0, 0, 0, 1010, 0, 0, 0, 0, 1089, 0, + 0, 1014, 0, 0, 0, 1014, 0, 1015, 1028, 1028, + 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028, 0, 0, + 0, 0, 1028, 1028, 1028, 1028, 1028, 1028, 1031, 1031, + 1031, 1031, 1031, 1048, 1048, 1048, 1048, 1048, 0, 0, + + 1031, 0, 0, 0, 0, 1028, 1028, 1028, 1028, 1028, + 1028, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, + 1029, 0, 0, 0, 0, 1029, 1029, 1029, 1029, 1029, + 1029, 1032, 1032, 1032, 1032, 1032, 1043, 1043, 1043, 1043, + 1043, 1031, 0, 1032, 0, 0, 1048, 0, 1029, 1029, + 1029, 1029, 1029, 1029, 1030, 1030, 1030, 1030, 1030, 1030, + 1030, 1030, 1030, 1030, 0, 0, 0, 0, 1030, 1030, + 1030, 1030, 1030, 1030, 1053, 1053, 1053, 1053, 1053, 0, + 1043, 0, 0, 0, 1032, 0, 0, 0, 0, 1043, + 0, 1030, 1030, 1030, 1030, 1030, 1030, 1033, 1033, 1033, + + 1033, 1033, 1043, 0, 0, 0, 0, 0, 0, 1033, + 0, 0, 0, 0, 1033, 1033, 1033, 1033, 1033, 1033, + 1033, 1033, 1033, 1033, 0, 0, 0, 1053, 1033, 1033, + 1033, 1033, 1033, 1033, 1052, 1052, 1052, 1052, 1052, 1054, + 1054, 1054, 1054, 1054, 0, 0, 0, 0, 0, 0, + 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1035, 1035, 1035, + 1035, 1035, 1035, 1035, 1035, 1035, 1035, 0, 1052, 0, + 0, 1035, 1035, 1035, 1035, 1035, 1035, 1055, 1055, 1055, + 1055, 1055, 0, 0, 0, 0, 0, 1052, 0, 0, + 0, 1052, 1054, 0, 1035, 1035, 1035, 1035, 1035, 1035, + + 1064, 1064, 1064, 1064, 1064, 0, 0, 0, 0, 0, + 0, 0, 1064, 1072, 1072, 1072, 1072, 1072, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1055, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, + 1061, 0, 0, 0, 0, 1061, 1061, 1061, 1061, 1061, + 1061, 0, 0, 1064, 0, 0, 1073, 1073, 1073, 1073, + 1073, 0, 1072, 0, 0, 0, 1072, 0, 1061, 1061, + 1061, 1061, 1061, 1061, 1062, 1062, 1062, 1062, 1062, 1062, + 1062, 1062, 1062, 1062, 1072, 0, 0, 0, 1062, 1062, + 1062, 1062, 1062, 1062, 1078, 1078, 1078, 1078, 1078, 0, + + 0, 0, 0, 0, 0, 1073, 0, 0, 0, 1073, + 0, 1062, 1062, 1062, 1062, 1062, 1062, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1073, 0, 0, + 0, 1063, 1063, 1063, 1063, 1063, 1063, 1101, 1101, 1101, + 1101, 1101, 0, 0, 0, 0, 0, 1078, 0, 1101, + 0, 0, 0, 0, 1063, 1063, 1063, 1063, 1063, 1063, + 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, + 0, 0, 0, 0, 1065, 1065, 1065, 1065, 1065, 1065, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1101, 0, 0, 0, 0, 0, 0, 1065, 1065, 1065, + + 1065, 1065, 1065, 1066, 1066, 1066, 1066, 1066, 1066, 1066, + 1066, 1066, 1066, 0, 0, 0, 0, 1066, 1066, 1066, + 1066, 1066, 1066, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1066, 1066, 1066, 1066, 1066, 1066, 1080, 1080, 1080, 1080, + 1080, 1080, 1080, 1080, 1080, 1080, 0, 0, 0, 0, + 1080, 1080, 1080, 1080, 1080, 1080, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1080, 1080, 1080, 1080, 1080, 1080, 1081, + 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 0, + + 0, 0, 0, 1081, 1081, 1081, 1081, 1081, 1081, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1081, 1081, 1081, 1081, + 1081, 1081, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, + 1082, 1082, 0, 0, 0, 0, 1082, 1082, 1082, 1082, + 1082, 1082, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1082, + 1082, 1082, 1082, 1082, 1082, 1083, 1083, 1083, 1083, 1083, + 1083, 1083, 1083, 1083, 1083, 0, 0, 0, 0, 1083, + 1083, 1083, 1083, 1083, 1083, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1083, 1083, 1083, 1083, 1083, 1083, 1084, 1084, + 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 0, 0, + 0, 0, 1084, 1084, 1084, 1084, 1084, 1084, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1084, 1084, 1084, 1084, 1084, + 1084, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, + 1091, 0, 0, 0, 0, 1091, 1091, 1091, 1091, 1091, + 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1091, 1091, + + 1091, 1091, 1091, 1091, 1092, 1092, 1092, 1092, 1092, 1092, + 1092, 1092, 1092, 1092, 0, 0, 0, 0, 1092, 1092, + 1092, 1092, 1092, 1092, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1092, 1092, 1092, 1092, 1092, 1092, 1093, 1093, 1093, + 1093, 1093, 1093, 1093, 1093, 1093, 1093, 0, 0, 0, + 0, 1093, 1093, 1093, 1093, 1093, 1093, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1093, 1093, 1093, 1093, 1093, 1093, + 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, + + 0, 0, 0, 0, 1099, 1099, 1099, 1099, 1099, 1099, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1099, 1099, 1099, + 1099, 1099, 1099, 1103, 1103, 0, 1103, 1103, 1103, 1103, + 1103, 1103, 1104, 1104, 1104, 1104, 1105, 1105, 0, 1105, + 1105, 1105, 1105, 1105, 1105, 1106, 0, 0, 1106, 1107, + 1107, 0, 1107, 1107, 1108, 1108, 0, 1108, 1108, 1108, + 1108, 1108, 1108, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1110, 1110, 0, 1110, 1110, 1110, 1110, 1110, + 1110, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, + + 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1114, + 0, 1114, 1114, 1115, 1115, 0, 1115, 1115, 1115, 1115, + 1115, 1115, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, + 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119, + 1119, 0, 1119, 1119, 1119, 1119, 1119, 1119, 1120, 1120, + 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1121, 1121, 1121, + 1121, 1121, 1121, 1121, 1121, 1121, 1122, 1122, 1122, 1122, + 1122, 1122, 1122, 1122, 1122, 1123, 1123, 1123, 0, 1123, + 1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1124, + + 1124, 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, + 1125, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, + 1127, 1127, 0, 1127, 1127, 1127, 1127, 1127, 1127, 1128, + 1128, 0, 1128, 1128, 1128, 1128, 1128, 1128, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1130, 1130, 1130, + 1130, 1130, 1130, 1130, 1130, 1130, 1131, 1131, 1131, 1131, + 1131, 1131, 1131, 1131, 1131, 1132, 1132, 1132, 1132, 1132, + 1132, 1132, 1132, 1132, 1133, 1133, 1133, 1133, 1133, 1133, + 1133, 1133, 1133, 1134, 1134, 1134, 1134, 1134, 1134, 1134, + 1134, 1134, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, + + 1135, 1136, 1136, 0, 0, 1136, 1136, 1136, 1136, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102 } ; static yy_state_type yy_last_accepting_state; @@ -4675,7 +2398,8 @@ int yy_flex_debug = 0; #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #line 1 "css.l" -#line 7 "css.l" + +#line 13 "css.l" /* Lex source for CSS tokenizing. Taken from http://www.w3.org/TR/CSS21/grammar.html#q2 Copyright (C) 2006, 2009-2011, 2015, 2018 Free Software Foundation, @@ -4711,8 +2435,22 @@ as that of the covered work. */ #include "css-tokens.h" -#line 4714 "css.c" -#line 4715 "css.c" +#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + #pragma GCC diagnostic ignored "-Wunknown-pragmas" // clang mourns about the next one + #pragma GCC diagnostic ignored "-Wunused-function" + #pragma GCC diagnostic ignored "-Wunused-macros" + #pragma GCC diagnostic ignored "-Wunused-parameter" + #pragma GCC diagnostic ignored "-Wsign-compare" + #pragma GCC diagnostic ignored "-Wswitch-default" + #pragma GCC diagnostic ignored "-Wunreachable-code" // clang + #pragma clang diagnostic ignored "-Wshorten-64-to-32" + #ifndef __clang__ + #pragma GCC diagnostic ignored "-Wsuggest-attribute=pure" + #endif +#endif + +#line 2453 "css.c" +#line 2454 "css.c" #define INITIAL 0 @@ -4927,10 +2665,10 @@ YY_DECL } { -#line 83 "css.l" +#line 112 "css.l" -#line 4933 "css.c" +#line 2672 "css.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -4957,13 +2695,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 >= 1153 ) + if ( yy_current_state >= 1103 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1152 ); + while ( yy_current_state != 1102 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -4986,244 +2724,241 @@ do_action: /* This label is used only to access EOF actions. */ case 1: /* rule 1 can match eol */ YY_RULE_SETUP -#line 85 "css.l" +#line 114 "css.l" {return S;} YY_BREAK case 2: /* rule 2 can match eol */ YY_RULE_SETUP -#line 87 "css.l" -{return S;} /* ignore comments */ +#line 116 "css.l" +{return COMMENT;} YY_BREAK case 3: +/* rule 3 can match eol */ YY_RULE_SETUP -#line 89 "css.l" -{return CDO;} +#line 117 "css.l" +/* ignore comments */ YY_BREAK case 4: +/* rule 4 can match eol */ YY_RULE_SETUP -#line 90 "css.l" -{return CDC;} +#line 118 "css.l" +/* unclosed comment at EOF */ YY_BREAK case 5: YY_RULE_SETUP -#line 91 "css.l" -{return INCLUDES;} +#line 120 "css.l" +{return CDO;} YY_BREAK case 6: YY_RULE_SETUP -#line 92 "css.l" -{return DASHMATCH;} +#line 121 "css.l" +{return CDC;} YY_BREAK case 7: -/* rule 7 can match eol */ YY_RULE_SETUP -#line 94 "css.l" -{return LBRACE;} +#line 122 "css.l" +{return INCLUDES;} YY_BREAK case 8: -/* rule 8 can match eol */ YY_RULE_SETUP -#line 95 "css.l" -{return PLUS;} +#line 123 "css.l" +{return DASHMATCH;} YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP -#line 96 "css.l" -{return GREATER;} +#line 125 "css.l" +{return STRING;} YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP -#line 97 "css.l" -{return COMMA;} +#line 126 "css.l" +{return BAD_STRING;} YY_BREAK case 11: /* rule 11 can match eol */ YY_RULE_SETUP -#line 99 "css.l" -{return STRING;} +#line 128 "css.l" +{return IDENT;} YY_BREAK case 12: /* rule 12 can match eol */ YY_RULE_SETUP -#line 100 "css.l" -{return INVALID; /* unclosed string */} +#line 130 "css.l" +{return HASH;} YY_BREAK case 13: /* rule 13 can match eol */ YY_RULE_SETUP -#line 102 "css.l" -{return IDENT;} +#line 132 "css.l" +{return IMPORT_SYM;} YY_BREAK case 14: /* rule 14 can match eol */ YY_RULE_SETUP -#line 104 "css.l" -{return HASH;} +#line 133 "css.l" +{return PAGE_SYM;} YY_BREAK case 15: +/* rule 15 can match eol */ YY_RULE_SETUP -#line 106 "css.l" -{return IMPORT_SYM;} +#line 134 "css.l" +{return MEDIA_SYM;} YY_BREAK case 16: YY_RULE_SETUP -#line 107 "css.l" -{return PAGE_SYM;} +#line 135 "css.l" +{return CHARSET_SYM;} YY_BREAK case 17: +/* rule 17 can match eol */ YY_RULE_SETUP -#line 108 "css.l" -{return MEDIA_SYM;} +#line 137 "css.l" +{return IMPORTANT_SYM;} YY_BREAK case 18: +/* rule 18 can match eol */ YY_RULE_SETUP -#line 109 "css.l" -{return CHARSET_SYM;} +#line 139 "css.l" +{return EMS;} YY_BREAK case 19: /* rule 19 can match eol */ YY_RULE_SETUP -#line 111 "css.l" -{return IMPORTANT_SYM;} +#line 140 "css.l" +{return EXS;} YY_BREAK case 20: /* rule 20 can match eol */ YY_RULE_SETUP -#line 113 "css.l" -{return EMS;} +#line 141 "css.l" +{return LENGTH;} YY_BREAK case 21: /* rule 21 can match eol */ YY_RULE_SETUP -#line 114 "css.l" -{return EXS;} +#line 142 "css.l" +{return LENGTH;} YY_BREAK case 22: /* rule 22 can match eol */ YY_RULE_SETUP -#line 115 "css.l" +#line 143 "css.l" {return LENGTH;} YY_BREAK case 23: /* rule 23 can match eol */ YY_RULE_SETUP -#line 116 "css.l" +#line 144 "css.l" {return LENGTH;} YY_BREAK case 24: /* rule 24 can match eol */ YY_RULE_SETUP -#line 117 "css.l" +#line 145 "css.l" {return LENGTH;} YY_BREAK case 25: /* rule 25 can match eol */ YY_RULE_SETUP -#line 118 "css.l" +#line 146 "css.l" {return LENGTH;} YY_BREAK case 26: /* rule 26 can match eol */ YY_RULE_SETUP -#line 119 "css.l" -{return LENGTH;} +#line 147 "css.l" +{return ANGLE;} YY_BREAK case 27: /* rule 27 can match eol */ YY_RULE_SETUP -#line 120 "css.l" -{return LENGTH;} +#line 148 "css.l" +{return ANGLE;} YY_BREAK case 28: /* rule 28 can match eol */ YY_RULE_SETUP -#line 121 "css.l" +#line 149 "css.l" {return ANGLE;} YY_BREAK case 29: /* rule 29 can match eol */ YY_RULE_SETUP -#line 122 "css.l" -{return ANGLE;} +#line 150 "css.l" +{return TIME;} YY_BREAK case 30: /* rule 30 can match eol */ YY_RULE_SETUP -#line 123 "css.l" -{return ANGLE;} +#line 151 "css.l" +{return TIME;} YY_BREAK case 31: /* rule 31 can match eol */ YY_RULE_SETUP -#line 124 "css.l" -{return TIME;} +#line 152 "css.l" +{return FREQ;} YY_BREAK case 32: /* rule 32 can match eol */ YY_RULE_SETUP -#line 125 "css.l" -{return TIME;} +#line 153 "css.l" +{return FREQ;} YY_BREAK case 33: /* rule 33 can match eol */ YY_RULE_SETUP -#line 126 "css.l" -{return FREQ;} +#line 154 "css.l" +{return DIMENSION;} YY_BREAK case 34: -/* rule 34 can match eol */ YY_RULE_SETUP -#line 127 "css.l" -{return FREQ;} +#line 156 "css.l" +{return PERCENTAGE;} YY_BREAK case 35: -/* rule 35 can match eol */ YY_RULE_SETUP -#line 128 "css.l" -{return DIMENSION;} +#line 157 "css.l" +{return NUMBER;} YY_BREAK case 36: +/* rule 36 can match eol */ YY_RULE_SETUP -#line 130 "css.l" -{return PERCENTAGE;} +#line 159 "css.l" +{return URI;} YY_BREAK case 37: +/* rule 37 can match eol */ YY_RULE_SETUP -#line 131 "css.l" -{return NUMBER;} +#line 160 "css.l" +{return URI;} YY_BREAK case 38: /* rule 38 can match eol */ YY_RULE_SETUP -#line 133 "css.l" -{return URI;} +#line 161 "css.l" +{return BAD_URI;} YY_BREAK case 39: /* rule 39 can match eol */ YY_RULE_SETUP -#line 134 "css.l" -{return URI;} - YY_BREAK -case 40: -/* rule 40 can match eol */ -YY_RULE_SETUP -#line 135 "css.l" +#line 163 "css.l" {return FUNCTION;} YY_BREAK -case 41: +case 40: YY_RULE_SETUP -#line 137 "css.l" +#line 165 "css.l" {return *yytext;} YY_BREAK -case 42: +case 41: YY_RULE_SETUP -#line 139 "css.l" +#line 167 "css.l" ECHO; YY_BREAK -#line 5226 "css.c" +#line 2962 "css.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -5521,7 +3256,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 >= 1153 ) + if ( yy_current_state >= 1103 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5549,11 +3284,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 >= 1153 ) + if ( yy_current_state >= 1103 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1152); + yy_is_jam = (yy_current_state == 1102); return yy_is_jam ? 0 : yy_current_state; } @@ -6192,6 +3927,6 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 139 "css.l" +#line 167 "css.l" @@ -3,6 +3,12 @@ %option never-interactive %option nounput +%top{ +/* config.h must precede flex's inclusion of <stdio.h> + in order for its _GNU_SOURCE definition to take effect. */ +#include <config.h> +} + %{ /* Lex source for CSS tokenizing. Taken from http://www.w3.org/TR/CSS21/grammar.html#q2 @@ -39,101 +45,123 @@ as that of the covered work. */ #include "css-tokens.h" +#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + #pragma GCC diagnostic ignored "-Wunknown-pragmas" // clang mourns about the next one + #pragma GCC diagnostic ignored "-Wunused-function" + #pragma GCC diagnostic ignored "-Wunused-macros" + #pragma GCC diagnostic ignored "-Wunused-parameter" + #pragma GCC diagnostic ignored "-Wsign-compare" + #pragma GCC diagnostic ignored "-Wswitch-default" + #pragma GCC diagnostic ignored "-Wunreachable-code" // clang + #pragma clang diagnostic ignored "-Wshorten-64-to-32" + #ifndef __clang__ + #pragma GCC diagnostic ignored "-Wsuggest-attribute=pure" + #endif +#endif + %} -h [0-9a-f] -nonascii [\200-\377] -unicode \\{h}{1,6}(\r\n|[ \t\r\n\f])? -escape {unicode}|\\[^\r\n\f0-9a-f] -nmstart [_a-z]|{nonascii}|{escape} -nmchar [_a-z0-9-]|{nonascii}|{escape} -string1 \"([^\n\r\f\\"]|\\{nl}|{escape})*\" -string2 \'([^\n\r\f\\']|\\{nl}|{escape})*\' -invalid1 \"([^\n\r\f\\"]|\\{nl}|{escape})* -invalid2 \'([^\n\r\f\\']|\\{nl}|{escape})* - -comment \/\*[^*]*\*+([^/*][^*]*\*+)*\/ -ident -?{nmstart}{nmchar}* -name {nmchar}+ -num [0-9]+|[0-9]*"."[0-9]+ -string {string1}|{string2} -invalid {invalid1}|{invalid2} -url ([!#$%&*-~]|{nonascii}|{escape})* -s [ \t\r\n\f] -w ({s}|{comment})* -nl \n|\r\n|\r|\f - -A a|\\0{0,4}(41|61)(\r\n|[ \t\r\n\f])? -C c|\\0{0,4}(43|63)(\r\n|[ \t\r\n\f])? -D d|\\0{0,4}(44|64)(\r\n|[ \t\r\n\f])? -E e|\\0{0,4}(45|65)(\r\n|[ \t\r\n\f])? -G g|\\0{0,4}(47|67)(\r\n|[ \t\r\n\f])?|\\g -H h|\\0{0,4}(48|68)(\r\n|[ \t\r\n\f])?|\\h -I i|\\0{0,4}(49|69)(\r\n|[ \t\r\n\f])?|\\i -K k|\\0{0,4}(4b|6b)(\r\n|[ \t\r\n\f])?|\\k -M m|\\0{0,4}(4d|6d)(\r\n|[ \t\r\n\f])?|\\m -N n|\\0{0,4}(4e|6e)(\r\n|[ \t\r\n\f])?|\\n -P p|\\0{0,4}(50|70)(\r\n|[ \t\r\n\f])?|\\p -R r|\\0{0,4}(52|72)(\r\n|[ \t\r\n\f])?|\\r -S s|\\0{0,4}(53|73)(\r\n|[ \t\r\n\f])?|\\s -T t|\\0{0,4}(54|74)(\r\n|[ \t\r\n\f])?|\\t -X x|\\0{0,4}(58|78)(\r\n|[ \t\r\n\f])?|\\x -Z z|\\0{0,4}(5a|7a)(\r\n|[ \t\r\n\f])?|\\z +h [0-9a-f] +nonascii [\240-\377] +unicode \\{h}{1,6}(\r\n|[ \t\r\n\f])? +escape {unicode}|\\[^\r\n\f0-9a-f] +nmstart [_a-z]|{nonascii}|{escape} +nmchar [_a-z0-9-]|{nonascii}|{escape} +string1 \"([^\n\r\f\\"]|\\{nl}|{escape})*\" +string2 \'([^\n\r\f\\']|\\{nl}|{escape})*\' +badstring1 \"([^\n\r\f\\"]|\\{nl}|{escape})*\\? +badstring2 \'([^\n\r\f\\']|\\{nl}|{escape})*\\? +badcomment1 \/\*[^*]*\*+([^/*][^*]*\*+)* +badcomment2 \/\*[^*]*(\*+[^/*][^*]*)* +baduri1 url\({w}([!#$%&*-\[\]-~]|{nonascii}|{escape})*{w} +baduri2 url\({w}{string}{w} +baduri3 url\({w}{badstring} +comment \/\*[^*]*\*+([^/*][^*]*\*+)*\/ +ident -?{nmstart}{nmchar}* +name {nmchar}+ +num [0-9]+|[0-9]*"."[0-9]+ +string {string1}|{string2} +badstring {badstring1}|{badstring2} +badcomment {badcomment1}|{badcomment2} +baduri {baduri1}|{baduri2}|{baduri3} +url ([!#$%&*-~]|{nonascii}|{escape})* +s [ \t\r\n\f]+ +w {s}? +nl \n|\r\n|\r|\f + +A a|\\0{0,4}(41|61)(\r\n|[ \t\r\n\f])? +C c|\\0{0,4}(43|63)(\r\n|[ \t\r\n\f])? +D d|\\0{0,4}(44|64)(\r\n|[ \t\r\n\f])? +E e|\\0{0,4}(45|65)(\r\n|[ \t\r\n\f])? +G g|\\0{0,4}(47|67)(\r\n|[ \t\r\n\f])?|\\g +H h|\\0{0,4}(48|68)(\r\n|[ \t\r\n\f])?|\\h +I i|\\0{0,4}(49|69)(\r\n|[ \t\r\n\f])?|\\i +K k|\\0{0,4}(4b|6b)(\r\n|[ \t\r\n\f])?|\\k +L l|\\0{0,4}(4c|6c)(\r\n|[ \t\r\n\f])?|\\l +M m|\\0{0,4}(4d|6d)(\r\n|[ \t\r\n\f])?|\\m +N n|\\0{0,4}(4e|6e)(\r\n|[ \t\r\n\f])?|\\n +O o|\\0{0,4}(4f|6f)(\r\n|[ \t\r\n\f])?|\\o +P p|\\0{0,4}(50|70)(\r\n|[ \t\r\n\f])?|\\p +R r|\\0{0,4}(52|72)(\r\n|[ \t\r\n\f])?|\\r +S s|\\0{0,4}(53|73)(\r\n|[ \t\r\n\f])?|\\s +T t|\\0{0,4}(54|74)(\r\n|[ \t\r\n\f])?|\\t +U u|\\0{0,4}(55|75)(\r\n|[ \t\r\n\f])?|\\u +X x|\\0{0,4}(58|78)(\r\n|[ \t\r\n\f])?|\\x +Z z|\\0{0,4}(5a|7a)(\r\n|[ \t\r\n\f])?|\\z %% -{s} {return S;} +{s} {return S;} -\/\*[^*]*\*+([^/*][^*]*\*+)*\/ {return S;} /* ignore comments */ +{comment} {return COMMENT;} +#\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */ +{badcomment} /* unclosed comment at EOF */ -"<!--" {return CDO;} -"-->" {return CDC;} -"~=" {return INCLUDES;} -"|=" {return DASHMATCH;} +"<!--" {return CDO;} +"-->" {return CDC;} +"~=" {return INCLUDES;} +"|=" {return DASHMATCH;} -{w}"{" {return LBRACE;} -{w}"+" {return PLUS;} -{w}">" {return GREATER;} -{w}"," {return COMMA;} +{string} {return STRING;} +{badstring} {return BAD_STRING;} -{string} {return STRING;} -{invalid} {return INVALID; /* unclosed string */} +{ident} {return IDENT;} -{ident} {return IDENT;} +"#"{name} {return HASH;} -"#"{name} {return HASH;} +@{I}{M}{P}{O}{R}{T} {return IMPORT_SYM;} +@{P}{A}{G}{E} {return PAGE_SYM;} +@{M}{E}{D}{I}{A} {return MEDIA_SYM;} +"@charset " {return CHARSET_SYM;} -"@import" {return IMPORT_SYM;} -"@page" {return PAGE_SYM;} -"@media" {return MEDIA_SYM;} -"@charset " {return CHARSET_SYM;} +"!"({w}|{comment})*{I}{M}{P}{O}{R}{T}{A}{N}{T} {return IMPORTANT_SYM;} -"!"{w}"important" {return IMPORTANT_SYM;} +{num}{E}{M} {return EMS;} +{num}{E}{X} {return EXS;} +{num}{P}{X} {return LENGTH;} +{num}{C}{M} {return LENGTH;} +{num}{M}{M} {return LENGTH;} +{num}{I}{N} {return LENGTH;} +{num}{P}{T} {return LENGTH;} +{num}{P}{C} {return LENGTH;} +{num}{D}{E}{G} {return ANGLE;} +{num}{R}{A}{D} {return ANGLE;} +{num}{G}{R}{A}{D} {return ANGLE;} +{num}{M}{S} {return TIME;} +{num}{S} {return TIME;} +{num}{H}{Z} {return FREQ;} +{num}{K}{H}{Z} {return FREQ;} +{num}{ident} {return DIMENSION;} -{num}{E}{M} {return EMS;} -{num}{E}{X} {return EXS;} -{num}{P}{X} {return LENGTH;} -{num}{C}{M} {return LENGTH;} -{num}{M}{M} {return LENGTH;} -{num}{I}{N} {return LENGTH;} -{num}{P}{T} {return LENGTH;} -{num}{P}{C} {return LENGTH;} -{num}{D}{E}{G} {return ANGLE;} -{num}{R}{A}{D} {return ANGLE;} -{num}{G}{R}{A}{D} {return ANGLE;} -{num}{M}{S} {return TIME;} -{num}{S} {return TIME;} -{num}{H}{Z} {return FREQ;} -{num}{K}{H}{Z} {return FREQ;} -{num}{ident} {return DIMENSION;} - -{num}% {return PERCENTAGE;} -{num} {return NUMBER;} +{num}% {return PERCENTAGE;} +{num} {return NUMBER;} "url("{w}{string}{w}")" {return URI;} "url("{w}{url}{w}")" {return URI;} -{ident}"(" {return FUNCTION;} +{baduri} {return BAD_URI;} + +{ident}"(" {return FUNCTION;} -. {return *yytext;} +. {return *yytext;} %% @@ -1,7 +1,10 @@ #include "wget.h" -#line 1 "css.c" +#line 2 "css.c" +/* config.h must precede flex's inclusion of <stdio.h> + in order for its _GNU_SOURCE definition to take effect. */ +#include <config.h> -#line 3 "css.c" +#line 7 "css.c" #define YY_INT_ALIGNED short int @@ -356,8 +359,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 42 -#define YY_END_OF_BUFFER 43 +#define YY_NUM_RULES 41 +#define YY_END_OF_BUFFER 42 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -365,134 +368,129 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[1153] = +static const flex_int16_t yy_accept[1103] = { 0, - 0, 0, 43, 41, 1, 1, 41, 12, 41, 12, - 8, 10, 41, 41, 41, 37, 41, 9, 41, 13, - 13, 41, 7, 41, 41, 0, 8, 10, 0, 9, - 7, 0, 0, 0, 12, 11, 0, 14, 0, 12, - 0, 0, 13, 0, 37, 0, 36, 0, 0, 37, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 32, 0, 0, 0, 0, 0, 0, 40, 13, - 0, 13, 13, 13, 6, 5, 0, 0, 0, 12, - 12, 12, 14, 14, 12, 12, 12, 4, 0, 0, - 0, 35, 0, 23, 0, 35, 0, 20, 21, 0, - - 35, 0, 33, 0, 25, 0, 35, 0, 24, 31, - 0, 27, 26, 22, 0, 35, 0, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 32, 0, 0, 0, 0, 0, 13, 13, 13, - 13, 13, 0, 0, 0, 0, 0, 12, 12, 12, - 14, 14, 12, 12, 12, 0, 2, 35, 35, 35, - 35, 35, 23, 28, 0, 35, 35, 35, 35, 35, - 35, 35, 35, 20, 21, 35, 0, 35, 35, 35, - 35, 35, 35, 35, 33, 35, 35, 35, 25, 34, - 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, - - 24, 31, 35, 35, 35, 35, 35, 26, 22, 29, - 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 32, 35, 35, 3, 0, 0, 0, 0, 13, - 13, 40, 13, 0, 0, 0, 12, 14, 12, 0, - 0, 35, 35, 35, 35, 35, 23, 23, 35, 35, - 35, 28, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 20, 21, 20, 30, 0, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 33, 33, 35, 35, - 35, 25, 25, 35, 35, 35, 34, 35, 35, 35, - - 35, 35, 35, 35, 35, 35, 24, 31, 24, 35, - 35, 35, 35, 35, 27, 26, 22, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 32, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 27, 35, 35, 35, 32, 32, 0, 0, - 0, 16, 13, 0, 0, 0, 0, 39, 0, 0, - 13, 0, 0, 0, 0, 0, 12, 14, 12, 35, - 35, 35, 35, 23, 23, 23, 23, 35, 35, 35, - - 28, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 20, 21, 20, 20, 20, 21, 21, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 33, 33, 33, 33, - 35, 35, 35, 25, 25, 25, 25, 35, 35, 35, - 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 24, 31, 24, 24, 24, 31, 31, - 35, 35, 35, 35, 35, 27, 26, 22, 27, 27, - 26, 26, 22, 22, 35, 35, 35, 29, 35, 35, - 35, 35, 35, 35, 29, 35, 35, 35, 35, 35, - - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 32, 35, 35, 35, 27, 35, 29, 0, 0, - 17, 13, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 39, 0, 0, 0, 13, 0, 12, - 14, 12, 35, 35, 35, 35, 23, 23, 35, 35, - 35, 28, 28, 28, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 20, 21, 20, 35, 35, 35, 30, - 35, 35, 35, 35, 35, 35, 30, 35, 35, 35, - 35, 35, 30, 35, 35, 35, 33, 33, 35, 35, - 35, 25, 25, 35, 35, 35, 34, 34, 34, 34, - - 35, 35, 35, 35, 35, 35, 35, 35, 35, 24, - 31, 24, 35, 35, 35, 35, 35, 27, 26, 22, - 35, 35, 35, 29, 29, 29, 35, 35, 35, 35, - 29, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 32, 35, 35, 35, - 27, 35, 29, 0, 15, 13, 0, 0, 0, 38, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 39, 0, 0, 0, 0, 0, 13, 0, 12, 14, - 12, 35, 35, 35, 23, 23, 35, 35, 35, 28, - 35, 35, 35, 35, 35, 35, 35, 20, 21, 20, - - 35, 35, 35, 30, 30, 30, 35, 35, 35, 35, - 35, 35, 35, 35, 30, 35, 35, 33, 33, 35, - 35, 25, 25, 35, 35, 35, 34, 34, 35, 35, - 35, 35, 35, 35, 35, 24, 31, 24, 35, 35, - 35, 35, 27, 26, 22, 35, 35, 35, 29, 35, - 35, 35, 29, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 32, 35, 35, 35, 27, 35, - 29, 0, 13, 0, 0, 0, 0, 39, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, - - 39, 0, 0, 0, 0, 0, 0, 35, 23, 23, - 35, 35, 28, 35, 20, 21, 20, 35, 35, 35, - 30, 35, 35, 35, 35, 35, 30, 33, 33, 25, - 25, 35, 35, 34, 34, 35, 24, 31, 24, 27, - 26, 22, 35, 35, 29, 35, 29, 18, 0, 0, - 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, - 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, - 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, - 39, 0, 0, 0, 0, 0, 19, 28, 35, 35, - - 30, 35, 34, 34, 29, 0, 0, 0, 0, 39, - 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, - 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, - 0, 30, 0, 0, 0, 0, 0, 0, 0, 39, - 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 42, 40, 1, 1, 40, 10, 40, 10, + 40, 40, 40, 35, 40, 40, 11, 11, 40, 40, + 40, 1, 0, 0, 0, 0, 10, 9, 10, 12, + 0, 0, 10, 10, 0, 11, 0, 35, 4, 34, + 0, 0, 35, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 30, 0, 0, 0, 0, 0, + 0, 0, 39, 11, 0, 11, 11, 11, 8, 7, + 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, + 0, 12, 12, 10, 10, 10, 6, 4, 4, 0, + 33, 0, 21, 0, 33, 0, 18, 19, 0, 33, + + 0, 31, 0, 23, 0, 33, 0, 22, 29, 0, + 25, 24, 20, 0, 33, 0, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, + 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10, 10, 10, 0, 0, 12, 12, 10, + 10, 10, 4, 2, 33, 33, 33, 33, 33, 21, + 26, 0, 33, 33, 33, 33, 33, 33, 33, 33, + 18, 19, 33, 0, 33, 33, 33, 33, 33, 33, + + 33, 31, 33, 33, 33, 23, 32, 0, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 22, 29, 33, + 33, 33, 33, 33, 24, 20, 27, 0, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 30, 33, + 33, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 11, 38, 11, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10, 0, 3, 12, 10, 4, 4, 33, + + 33, 33, 33, 33, 21, 21, 33, 33, 33, 26, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 18, + 19, 18, 28, 0, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 31, 31, 33, 33, 33, 23, + 23, 33, 33, 33, 32, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 22, 29, 22, 33, 33, 33, + 33, 33, 25, 24, 20, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 30, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 25, 33, 33, 33, 30, 30, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 11, 38, + 38, 38, 38, 37, 0, 11, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 12, 10, 33, 33, 33, 33, 21, + 21, 21, 21, 33, 33, 33, 26, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 18, 19, + + 18, 18, 18, 19, 19, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 31, 31, 31, 31, 33, 33, 33, 23, + 23, 23, 23, 33, 33, 33, 32, 32, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 22, + 29, 22, 22, 22, 29, 29, 33, 33, 33, 33, + 33, 25, 24, 20, 25, 25, 24, 24, 20, 20, + 33, 33, 33, 27, 33, 33, 33, 33, 33, 33, + 27, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 30, 33, 33, + + 33, 25, 33, 27, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 11, 38, 38, 38, + 38, 38, 38, 38, 38, 0, 38, 37, 38, 38, + 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 12, 10, 33, 33, 33, + 33, 21, 21, 33, 33, 33, 26, 26, 26, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 18, 19, + 18, 33, 33, 33, 28, 33, 33, 33, 33, 33, + + 33, 28, 33, 33, 33, 33, 33, 28, 33, 33, + 33, 31, 31, 33, 33, 33, 23, 23, 33, 33, + 33, 32, 32, 32, 32, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 22, 29, 22, 33, 33, 33, + 33, 33, 25, 24, 20, 33, 33, 33, 27, 27, + 27, 33, 33, 33, 33, 27, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 30, 33, 33, 33, 25, 33, 27, 0, 13, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 14, 0, 0, 0, 0, 11, 38, 36, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 0, + 38, 38, 37, 38, 0, 11, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10, 12, + 10, 33, 33, 33, 21, 21, 33, 33, 33, 26, + 33, 33, 33, 33, 33, 33, 33, 18, 19, 18, + 33, 33, 33, 28, 28, 28, 33, 33, 33, 33, + 33, 33, 33, 33, 28, 33, 33, 31, 31, 33, + 33, 23, 23, 33, 33, 33, 32, 32, 33, 33, + 33, 33, 33, 33, 33, 22, 29, 22, 33, 33, + + 33, 33, 25, 24, 20, 33, 33, 33, 27, 33, + 33, 33, 27, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 30, 33, 33, 33, 25, 33, + 27, 0, 0, 0, 0, 13, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, 0, 0, 0, 14, + 14, 0, 11, 38, 38, 38, 38, 38, 38, 38, + 0, 0, 38, 38, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 21, 21, 33, 33, + 26, 33, 18, 19, 18, 33, 33, 33, 28, 33, + 33, 33, 33, 33, 28, 31, 31, 23, 23, 33, + + 33, 32, 32, 33, 22, 29, 22, 25, 24, 20, + 33, 33, 27, 33, 27, 16, 0, 13, 0, 0, + 0, 0, 0, 15, 15, 0, 0, 38, 38, 38, + 0, 0, 0, 0, 38, 17, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 26, 33, 33, + 28, 33, 32, 32, 27, 0, 13, 13, 0, 0, + 38, 38, 38, 0, 0, 38, 0, 0, 0, 17, + 0, 0, 0, 0, 0, 0, 0, 28, 0, 38, + 38, 38, 0, 38, 0, 17, 0, 0, 0, 0, + 38, 38, 0, 38, 0, 17, 17, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, - 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ; @@ -502,2254 +500,1097 @@ static const YY_CHAR yy_ec[256] = 1, 4, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 7, 8, 9, 10, 11, 10, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 10, 10, 31, - 32, 33, 10, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 44, 51, 52, 53, 54, 44, 44, 55, 44, 56, - 10, 57, 10, 10, 44, 10, 58, 59, 60, 61, - - 62, 40, 63, 64, 65, 44, 66, 67, 68, 69, - 70, 71, 44, 72, 73, 74, 75, 44, 44, 76, - 44, 77, 78, 79, 10, 80, 1, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81 + 14, 15, 10, 10, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 10, 10, 29, + 30, 31, 10, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 42, 49, 50, 51, 52, 42, 42, 53, 42, 54, + 10, 55, 10, 10, 42, 10, 56, 57, 58, 59, + + 60, 61, 62, 63, 64, 42, 65, 66, 67, 68, + 69, 70, 42, 71, 72, 73, 74, 42, 42, 75, + 42, 76, 10, 77, 10, 78, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79 } ; -static const YY_CHAR yy_meta[82] = +static const YY_CHAR yy_meta[80] = { 0, - 1, 2, 3, 3, 3, 2, 4, 5, 4, 4, - 4, 5, 6, 4, 4, 4, 4, 7, 4, 4, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 4, 4, 4, 4, 9, 9, 9, 9, 9, 9, + 1, 2, 3, 3, 3, 2, 2, 4, 2, 2, + 2, 4, 5, 2, 2, 6, 2, 7, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, + 2, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 4, 4, 4, - 9 + 9, 9, 9, 9, 9, 9, 2, 2, 9 } ; -static const flex_int16_t yy_base[1307] = +static const flex_int16_t yy_base[1137] = { 0, - 0, 0, 3517,17264, 80, 85, 104, 84, 3459, 81, - 17264,17264, 76, 127, 3494, 159, 3501,17264, 200, 82, - 225, 277,17264, 3474, 3462, 250,17264,17264, 3478,17264, - 17264, 125, 3456, 51, 103,17264, 337, 3413, 379, 87, - 439, 3436, 102, 481, 265, 3453,17264, 3400, 297, 0, - 3399, 57, 64, 204, 65, 115, 200, 78, 377, 294, - 108, 3398, 543, 3416, 70, 93, 84, 204,17264, 119, - 604, 365, 228, 665,17264,17264, 3418, 3417, 192, 273, - 326, 726, 3363, 787, 105, 368, 848,17264, 3404, 159, - 890, 3361, 943, 3353, 985, 328, 363, 3352, 3351, 630, - - 275, 875, 3321, 690, 3320, 465, 336, 1008, 3319, 3318, - 1013, 3310, 3308, 3307, 1036, 390, 468, 3306, 1111, 427, - 1069, 501, 397, 715, 207, 414, 425, 595, 877, 720, - 603, 3297, 3335, 238, 386, 318, 386, 295, 1172, 296, - 825, 1214, 3326, 229, 3324, 328, 410, 337, 480, 1256, - 188, 1298, 332, 642, 1340, 3323, 1387, 3275, 1464, 460, - 385, 485, 3274, 3260, 1384, 654, 3289, 3283, 774, 611, - 3266, 612, 3265, 3223, 3215, 721, 812, 329, 3248, 3240, - 639, 686, 618, 675, 3204, 747, 682, 742, 3189, 3180, - 1136, 809, 3207, 3197, 741, 836, 768, 3199, 781, 3188, - - 3141, 3132, 963, 3164, 249, 3163, 357, 3129, 3122, 3121, - 1053, 868, 3149, 3147, 427, 1506, 971, 1412, 1099, 820, - 1161, 1567, 1550, 1340, 1572, 1580, 1598, 1628, 1647, 1719, - 1794, 1212, 1674, 1737,17264, 463, 771, 670, 793, 891, - 1851, 1745, 1893, 3136, 3135, 840, 1935, 1977, 2019, 3128, - 406, 840, 2061, 898, 829, 860, 1064, 1150, 1027, 3112, - 3104, 3073, 1050, 3102, 3093, 1454, 1198, 875, 3089, 890, - 3087, 1253, 1258, 1295, 3048, 2103, 1081, 3081, 3079, 918, - 3071, 3068, 1503, 931, 942, 958, 1300, 1305, 1326, 955, - 956, 1379, 1424, 1030, 984, 991, 3021, 1327, 3043, 3036, - - 1656, 1396, 998, 3040, 1050, 3039, 1472, 1477, 1510, 1661, - 3032, 655, 3030, 778, 1545, 1724, 1758, 1385, 3021, 2981, - 1424, 2983, 2977, 1844, 2145, 1680, 1806, 1871, 1106, 1913, - 2206, 2189, 2211, 2218, 2235, 2291, 2304, 2317, 2389, 2464, - 1974, 2323, 2331, 1035, 1687, 1209, 1559, 1843, 1733, 2295, - 1109, 1554, 1102, 1441, 1386, 1415, 1163, 1653, 1646, 2215, - 2329, 2359, 1786, 1171, 1606, 2403, 2932, 863, 1194, 1217, - 1145,17264, 2502, 2492, 2563, 712, 748,17264, 2576, 2633, - 2713, 2973, 756, 2954, 820, 1276, 2774, 2835, 2915, 2957, - 1644, 1184, 1227, 1765, 1835, 2878, 971, 1647, 2900, 2887, - - 1856, 1756, 2888, 2887, 2513, 1331, 2185, 1921, 1252, 2840, - 1294, 2839, 1979, 1984, 2016, 2810, 973, 2798, 1028, 2002, - 2829, 2826, 2003, 2786, 2784, 2448, 1587, 2770, 2740, 2058, - 1523, 2099, 1358, 1797, 1461, 1505, 2063, 2068, 2688, 1284, - 2082, 1548, 1560, 2108, 2142, 2687, 1534, 2132, 1585, 1700, - 2194, 2311, 2222, 2704, 2702, 2405, 1729, 2173, 2328, 1714, - 2701, 1765, 2608, 2469, 2474, 2541, 2561, 1680, 2560, 1688, - 2530, 2565, 1613, 2563, 1753, 2595, 2600, 2605, 2529, 1697, - 2528, 1788, 2502, 2047, 2234, 2527, 2495, 2610, 2320, 2492, - 2486, 2724, 1847, 2216, 0, 2999, 1899, 2730, 2598, 2791, - - 2821, 3005, 3038, 2998, 3045, 3065, 3077, 3084, 3133, 3205, - 3156, 2955, 3161, 3170, 2905, 1941, 3167, 2124, 1804, 1361, - 17264, 3261, 3227, 3322, 857, 3341, 3377, 918, 3437, 3499, - 3354, 3518, 3531, 3556, 3575, 3631, 3693, 3773, 1975, 3834, - 3876, 3937, 3979, 148, 1973, 2014, 2625, 2718, 2352, 2474, - 2465, 2820, 2427, 2048, 250, 2433, 2430, 3251, 2274, 2015, - 2389, 2056, 2371, 2920, 2961, 3105, 2396, 2372, 2351, 3151, - 2413, 2348, 2335, 3272, 2098, 2729, 0, 504, 2308, 2301, - 3386, 2382, 0, 620, 2060, 2119, 3264, 3300, 960, 2139, - 2140, 3346, 3367, 2250, 2246, 2309, 3381, 3391, 2227, 2132, - - 1104, 2241, 2231, 3544, 2508, 2337, 2221, 2364, 2211, 3420, - 3425, 3443, 2567, 2201, 1779, 2163, 1799, 3448, 3476, 3481, - 2486, 2161, 2001, 3486, 1968, 2187, 1118, 1986, 1970, 3624, - 0, 4021, 3579, 1350, 3790, 2424, 3819, 4027, 3876, 4018, - 3978, 3922, 4068, 4089, 4094, 4102, 3644, 4110, 4124, 2248, - 0, 2708, 0, 1379,17264, 4177, 1976, 4239, 4258,17264, - 1920, 1405, 2398, 4295, 1061, 3072, 4356, 1887, 4265, 4418, - 1878, 4475, 4532, 4589, 4288, 4669, 4730, 1548, 3784, 4772, - 4814, 4856, 2420, 2449, 3670, 3778, 1918, 1855, 1835, 3841, - 1791, 1790, 4115, 2512, 1763, 2709, 1744, 3915, 3951, 3983, - - 2767, 1721, 1711, 4180, 1661, 2261, 2081, 1689, 1675, 4220, - 1661, 1631, 4307, 2726, 0, 2726, 2770, 4185, 4225, 2768, - 2804, 4334, 4344, 2304, 2912, 2913, 4367, 4395, 1618, 1596, - 4405, 2953, 1582, 3038, 1555, 4400, 4437, 4442, 1535, 1878, - 1515, 2227, 4447, 4452, 4461, 2388, 1496, 1495, 4466, 1442, - 1432, 4501, 0, 4494, 4506, 4511, 4853, 4862, 4769, 4518, - 4682, 4899, 4920, 4524, 4812, 4934, 4956, 4979, 4984, 5012, - 5028, 1440, 4574, 1371, 1334, 5041, 5085, 1325, 5142, 5199, - 5256, 1324, 1453, 3090, 5336, 1616, 3111, 5397, 1064, 1316, - 1315, 5060, 5459, 1297, 5104, 5516, 5597, 5654, 5711, 5768, - - 5825, 5882, 5939, 5996, 6058, 6138, 1628, 5123, 5128, 5133, - 6199, 0, 4674, 5165, 5170, 5189, 5347, 6241, 2476, 2547, - 4713, 359, 1922, 5438, 5381, 5443, 5616, 5621, 5626, 5631, - 5636, 3069, 3142, 4775, 4817, 5641, 5646, 5702, 5730, 5735, - 5740, 5745, 139, 2315, 5227, 5751, 5758,17264, 2265, 1206, - 1176, 5233, 6303, 1175, 5844, 6360, 6441, 6498, 6555, 6612, - 6669, 6726, 6783, 6840, 6902, 1104, 2407, 6982, 7043, 2417, - 1094, 2468, 5482, 1086, 1072, 7105, 7162, 7219, 7276, 7357, - 7414, 7471, 7528, 7585, 7642, 7699, 0, 1022, 5851, 7761, - 1012, 7818, 7875, 7956, 8013, 8074,17264, 5815, 8135, 0, - - 4739, 5871, 5901, 5908, 5913, 2533, 971, 2914, 5958, 945, - 934, 8197, 8254, 8311, 8368, 8449, 8506, 8563, 8620, 8677, - 8734, 8791, 0, 923, 6322, 8853, 912, 8910, 8967, 9048, - 9105, 884, 9166, 9227, 9289, 3100, 9346, 9403, 9460, 877, - 3129, 6329, 853, 816, 9522, 9579, 9636, 9693, 4940, 3607, - 9774, 9831, 9888, 9945,10002,10059,10116,10173, 0,10235, - 10315, 5918, 3182,10377,10434,10491, 806, 3184, 6460, 764, - 755,10553,10610,10667,10724,10805,10862,10919,10976,11033, - 11090,11147, 0,11209, 730, 3200,11270,11331,11393, 3201, - 11474, 4996, 6467, 5672,11529, 4271, 6228,11589,11651,11708, - - 11765,11827, 6517,11908, 3219,11989,12046,12103,12165, 5980, - 6284,12226, 6524, 704, 694, 5374, 6574, 6579,12286, 5795, - 4706, 6587,12347, 5922, 6635,12407, 6593, 3587, 6648,12468, - 693, 6692,12530, 668,12587,12644,12725,12806,12868,12949, - 13030,13091, 3220, 6696, 6745, 6705,13151, 6752, 667, 632, - 1582, 2941, 6765, 5044, 6801,13212, 6815, 6824,13273, 6630, - 7072,13333, 2080, 3236, 7123, 4138, 7127,13394, 7140, 7145, - 13455, 621, 3229, 7184, 620, 533,13517,13574,13631,13688, - 13769,13826,13883,13940,13997,14054,14111, 0,14173,14254, - 14311,14392,14473,14530, 532, 3230, 7238, 3244, 7188, 7202, - - 7375,14586,14647, 7381, 7394, 7398,14689,14731, 3292,14793, - 14850,14887,14929,14971,15013, 523, 3296, 516, 5487, 481, - 457,15055,15097,15139,15181,15223,15265,15307, 405, 3298, - 17264, 397, 3320,15349,15391,15433,15475,15517, 331, 296, - 15559,15601,15643,15685,15727, 231, 178, 3495,15769,15811, - 15853,17264,15915,15918,15927,15930,15934,15943,15952,15961, - 15970,15979, 127,15982,15991,16000,16009,16018,16027,16036, - 16045,16054,16062,16071,16080,16089,16098,16107,16116,16125, - 16134,16143,16152,16161,16170,16179,16188,16197,16206,16215, - 16224,16232,16241,16250,16259,16268,16277,16286,16295,16304, - - 16313,16322,16331,16340,16349,16358,16367,16376,16385,16394, - 16403,16412,16421,16430,16439,16448,16457,16466,16475,16484, - 16493,16501,16510,16519,16528,16537,16546,16555,16564,16573, - 16582,16591,16600,16609,16618,16627,16636,16645,16654,16663, - 16672,16680,16688,16697,16706,16715,16724,16733,16742,16751, - 16760,16769,16778,16787,16796,16805,16814,16823,16832,16841, - 16850,16859,16868,16877,16886,16894,16903,16912,16921,16930, - 16939,16948,16957,16966,16975,16984,16993,17002,17011,17020, - 17029,17038,17047,17056,17065,17074,17083,17092,17101,17110, - 17119,17128,17137,17146,17155,17164,17173,17182,17191,17200, - - 17209,17218,17227,17236,17245,17254 + 0, 0, 4195, 7110, 78, 83, 88, 87, 78, 85, + 82, 88, 4161, 142, 4151, 90, 86, 206, 259, 4118, + 4083, 98, 234, 4083, 72, 109, 116, 7110, 318, 100, + 4082, 361, 208, 420, 4017, 92, 463, 205, 4024, 7110, + 3977, 222, 0, 3974, 209, 89, 257, 202, 180, 245, + 248, 259, 355, 272, 3955, 524, 3987, 83, 280, 311, + 274, 585, 7110, 117, 637, 348, 210, 697, 7110, 7110, + 3963, 302, 382, 243, 3940, 3933, 371, 251, 356, 757, + 3945, 101, 817, 246, 357, 877, 7110, 3938, 252, 920, + 3894, 974, 3886, 1017, 397, 447, 3861, 3860, 661, 376, + + 904, 3850, 721, 3841, 448, 451, 1040, 3840, 3825, 1045, + 3813, 3796, 3787, 1063, 569, 600, 3784, 1137, 484, 1180, + 613, 1221, 748, 380, 566, 347, 591, 907, 654, 462, + 3767, 3789, 118, 559, 779, 633, 593, 588, 628, 782, + 654, 3776, 775, 3775, 802, 772, 682, 336, 1279, 345, + 447, 1322, 3754, 254, 695, 837, 658, 581, 632, 656, + 806, 1012, 456, 862, 1365, 3744, 256, 903, 1408, 278, + 964, 1451, 3730, 7110, 3689, 1511, 839, 751, 790, 3655, + 3633, 1086, 865, 3648, 3645, 868, 812, 3627, 850, 3599, + 3559, 3554, 895, 897, 344, 3587, 3580, 885, 900, 892, + + 922, 3526, 1001, 929, 943, 3484, 3483, 1165, 1002, 3500, + 3499, 1037, 1074, 945, 3485, 969, 3476, 3439, 3424, 1096, + 3450, 410, 3442, 438, 3403, 3397, 3396, 1109, 1104, 3416, + 3396, 745, 1554, 1126, 1597, 1199, 1638, 1237, 1696, 1591, + 1451, 1224, 1636, 1495, 1673, 1680, 1762, 1836, 1318, 1740, + 1703, 7110, 573, 1049, 1161, 1158, 970, 987, 1131, 1017, + 1192, 1245, 3385, 3371, 1046, 1269, 1252, 3369, 3358, 1342, + 1600, 1403, 1552, 1788, 1263, 1891, 1796, 1934, 3362, 1868, + 1238, 1307, 1248, 3350, 3304, 1055, 1352, 1779, 1931, 1391, + 1392, 1393, 1983, 3284, 7110, 2026, 2069, 3253, 347, 892, + + 2112, 1392, 1108, 1110, 1248, 1488, 1500, 3239, 3204, 3174, + 1541, 3194, 3177, 2112, 1624, 1119, 3145, 1176, 3142, 1861, + 1873, 1878, 3104, 1704, 1607, 3071, 2999, 1394, 2951, 2939, + 1979, 1503, 1180, 1209, 1896, 1901, 1669, 1259, 1273, 1936, + 1971, 1707, 1278, 1296, 2904, 1691, 2927, 2900, 2022, 1731, + 1336, 2867, 1403, 2856, 1994, 2027, 2063, 1753, 2851, 716, + 2848, 950, 2068, 2106, 2117, 1786, 2836, 2831, 1793, 2833, + 2795, 2150, 2191, 1807, 2234, 2138, 2275, 2156, 2333, 2228, + 2237, 2273, 2344, 2358, 2367, 2378, 2449, 2523, 2189, 2433, + 2413, 1498, 2121, 2020, 2269, 2451, 1769, 2278, 1797, 2271, + + 1426, 1684, 1625, 2322, 1465, 2311, 2342, 2464, 2148, 2457, + 2261, 1528, 2388, 2423, 2759, 1179, 1347, 2149, 2296, 2245, + 2683, 2676, 1875, 1831, 2535, 2548, 1910, 2480, 2177, 2645, + 2637, 2383, 2555, 7110, 2446, 2468, 2600, 2595, 2508, 2546, + 2570, 2561, 2456, 2552, 2533, 2540, 1981, 2561, 2614, 2651, + 2674, 741, 457, 7110, 2729, 2807, 2597, 661, 2134, 2596, + 2579, 1548, 1591, 2330, 2405, 2814, 2604, 1589, 2641, 97, + 2882, 2584, 771, 2942, 3003, 3046, 2605, 1637, 1675, 2688, + 2695, 2537, 1235, 2639, 2556, 2555, 2710, 2662, 2543, 2538, + 2819, 1925, 2402, 2684, 1849, 2508, 1979, 2507, 2715, 2720, + + 2844, 2463, 1448, 2462, 1598, 2832, 2475, 2463, 2837, 2420, + 2412, 2894, 2582, 2374, 2365, 3042, 2023, 2628, 2816, 2853, + 2025, 2109, 2889, 2919, 2312, 1614, 2857, 2229, 2270, 2929, + 3047, 2262, 1615, 2931, 2423, 2439, 3052, 3083, 3071, 2289, + 2269, 3106, 2300, 2407, 3094, 2461, 2233, 2530, 2232, 3119, + 3124, 3129, 2191, 1714, 2183, 1734, 3117, 2186, 1033, 2175, + 1110, 3142, 3147, 3152, 2135, 1803, 2132, 2181, 2103, 2338, + 3076, 2090, 2077, 3160, 3148, 2035, 2003, 3172, 3132, 3134, + 0, 3213, 1864, 3230, 3173, 3254, 3181, 3312, 3378, 3437, + 3511, 3581, 3656, 3723, 3785, 3859, 3933, 3219, 3988, 4050, + + 3236, 2813, 3269, 2888, 2606, 2901, 3277, 3160, 2608, 2666, + 3251, 3162, 3338, 3190, 2881, 3264, 7110, 3191, 3285, 1994, + 1985, 2987, 3302, 3350, 3326, 3303, 3358, 3340, 1965, 1964, + 3341, 3369, 3367, 3038, 3373, 3009, 4107, 3394, 1039, 3416, + 4166, 696, 4225, 3442, 3463, 3481, 3497, 3517, 4285, 4346, + 4407, 3059, 3408, 3193, 1957, 1942, 3295, 3430, 3539, 3544, + 3283, 2258, 3485, 311, 4467, 4510, 4553, 4596, 590, 2669, + 3080, 3327, 3553, 3451, 1920, 1919, 3559, 1876, 2372, 805, + 1897, 1896, 3572, 3260, 3261, 1801, 3311, 1794, 3565, 3614, + 3619, 3505, 1764, 1751, 3626, 3572, 1712, 1704, 3635, 3537, + + 3597, 0, 842, 1683, 1668, 3640, 3543, 0, 962, 3354, + 3355, 3645, 3661, 1143, 3420, 3436, 3672, 3681, 3673, 3477, + 3547, 3701, 3710, 1613, 2478, 1302, 1608, 1607, 3716, 3707, + 3553, 1605, 3554, 1537, 3732, 3737, 3748, 3732, 1529, 1796, + 1502, 1830, 3762, 3770, 3777, 3774, 1498, 1459, 3798, 1394, + 3135, 1339, 1384, 1374, 3811, 0, 4639, 3784, 1740, 3822, + 2122, 3822, 3869, 3895, 3916, 3941, 3970, 3978, 3995, 4699, + 4002, 3880, 4083, 4105, 3722, 0, 3634, 0, 1410, 7110, + 3904, 3810, 1349, 1342, 3782, 3868, 4066, 4635, 3883, 3654, + 3856, 1427, 3908, 1333, 1308, 3944, 4176, 3996, 3768, 3982, + + 1575, 4001, 4071, 4011, 3853, 4024, 1763, 4756, 4088, 7110, + 1487, 3423, 4816, 896, 3208, 4876, 4262, 4444, 4919, 4504, + 4547, 4591, 4677, 4979, 5040, 5101, 3896, 4040, 4023, 1274, + 1266, 3798, 4080, 4509, 4041, 4065, 4639, 1821, 4709, 5144, + 5187, 5230, 3632, 3726, 4208, 4213, 2076, 1260, 1207, 4231, + 1176, 1123, 4793, 3760, 1108, 3762, 1099, 4236, 4322, 4327, + 4093, 1043, 1038, 4332, 994, 3434, 2212, 1028, 1002, 4913, + 992, 951, 4552, 3833, 0, 3946, 3953, 4474, 4479, 4041, + 4059, 4645, 4716, 2284, 4091, 4106, 4721, 4733, 929, 840, + 4919, 4115, 838, 4116, 837, 4738, 4743, 4756, 811, 2240, + + 777, 3157, 4763, 4798, 4803, 2371, 745, 718, 4823, 658, + 646, 5138, 0, 4956, 5225, 5181, 5269, 5279, 5291, 5296, + 5303, 5315, 5386, 5143, 5350, 5369, 5375, 5394, 5408, 5448, + 5413, 642, 4130, 618, 583, 7110, 4253, 5467, 4134, 4243, + 5276, 2587, 4250, 4854, 4277, 4128, 4675, 2903, 4432, 7110, + 526, 2948, 4859, 1544, 4963, 5522, 1357, 3705, 5565, 5608, + 5472, 5669, 5477, 5730, 4466, 5171, 4581, 508, 493, 4435, + 5496, 4865, 4634, 5275, 3053, 5506, 5511, 5565, 478, 449, + 4864, 5767, 5602, 5607, 5772, 3203, 451, 445, 4924, 443, + 442, 5777, 5790, 5795, 5805, 5812, 5835, 5853, 5859, 4140, + + 4164, 4984, 5017, 5866, 5871, 5876, 5881, 5889, 5894, 5899, + 411, 381, 5022, 5907, 5913, 7110, 4866, 5027, 5214, 4678, + 5521, 3400, 4944, 7110, 370, 3468, 3483, 5950, 5993, 6036, + 5987, 6030, 6096, 0, 6139, 7110, 5502, 5131, 4161, 4218, + 4832, 5304, 6035, 5313, 4441, 5307, 3527, 5992, 344, 285, + 5490, 6133, 6073, 6138, 6176, 5382, 7110, 296, 3629, 3675, + 6213, 6256, 6299, 6199, 6342, 6385, 5403, 237, 230, 7110, + 5415, 6212, 6255, 5439, 3976, 5380, 3852, 6293, 3928, 6428, + 6471, 6514, 6557, 6600, 5441, 5531, 5500, 5100, 5886, 4057, + 6643, 6686, 6729, 5612, 5628, 7110, 133, 4058, 6772, 4181, + + 6336, 7110, 6833, 6837, 6846, 6850, 6855, 6864, 6873, 6882, + 6891, 6900, 112, 6904, 6913, 6922, 6931, 6940, 6949, 6958, + 6967, 6976, 6984, 6993, 7002, 7011, 7020, 7029, 7038, 7047, + 7056, 7065, 7074, 7083, 7092, 7100 } ; -static const flex_int16_t yy_def[1307] = +static const flex_int16_t yy_def[1137] = { 0, - 1152, 1, 1152, 1152, 1152, 1152, 1152, 1153, 1154, 1155, - 1152, 1152, 1156, 1152, 1152, 1152, 1152, 1152, 1152, 1157, - 1157, 1158, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1153, 1152, 1159, 1154, 1160, 1155, - 1161, 1152, 1157, 1158, 16, 1162, 1152, 1163, 1152, 16, - 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, - 1164, 1164, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1157, - 1165, 1157, 1157, 1157, 1152, 1152, 1166, 1167, 1152, 1153, - 1153, 1153, 1154, 1154, 1155, 1155, 1155, 1152, 1162, 1168, - 63, 1164, 1169, 1164, 1169, 1164, 95, 1164, 1164, 95, - - 1164, 95, 1164, 95, 1164, 95, 1164, 95, 1164, 1164, - 95, 1164, 1164, 1164, 95, 1164, 95, 1164, 1164, 119, - 119, 119, 121, 119, 1164, 1164, 1164, 1164, 1164, 1164, - 1164, 1164, 1152, 1152, 1152, 1152, 1152, 1157, 74, 1157, - 1157, 74, 1166, 1170, 1167, 1171, 1152, 1153, 1153, 82, - 1154, 84, 1155, 1155, 87, 1172, 1152, 1164, 119, 159, - 159, 159, 1164, 1164, 95, 159, 159, 159, 159, 159, - 159, 159, 159, 1164, 1164, 1164, 95, 159, 159, 159, - 1164, 159, 159, 159, 1164, 159, 159, 159, 1164, 1164, - 95, 159, 159, 159, 1164, 159, 159, 159, 159, 159, - - 1164, 1164, 159, 159, 159, 159, 159, 1164, 1164, 1164, - 95, 159, 159, 159, 1164, 119, 216, 216, 216, 218, - 216, 216, 222, 222, 222, 222, 222, 222, 222, 222, - 216, 231, 231, 222, 1152, 1152, 1152, 1152, 1152, 1157, - 74, 1173, 74, 1174, 1175, 1152, 82, 152, 155, 1172, - 1176, 1164, 159, 253, 253, 253, 253, 253, 159, 159, - 159, 1164, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 1164, 1177, 159, 159, 159, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 159, 159, 159, 1164, 253, 253, 253, - - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 159, 159, 159, - 253, 253, 253, 253, 216, 325, 325, 325, 327, 325, - 325, 331, 331, 331, 331, 331, 331, 331, 331, 325, - 340, 340, 331, 1164, 1164, 1164, 1164, 325, 1164, 1164, - 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, - 1164, 1164, 325, 1164, 1164, 325, 1164, 1164, 1152, 1152, - 1152, 1152, 241, 1173, 1173, 1178, 1179, 1152, 1173, 1152, - 373, 1180, 1181, 1182, 1183, 1152, 1184, 1152, 1185, 253, - 390, 390, 390, 390, 390, 1164, 1164, 253, 253, 253, - - 253, 390, 390, 390, 390, 1164, 1164, 390, 390, 390, - 390, 390, 390, 390, 390, 1164, 1164, 1164, 1164, 159, - 159, 159, 253, 253, 253, 253, 390, 390, 390, 390, - 1164, 1164, 390, 390, 390, 390, 390, 390, 1164, 1164, - 390, 390, 390, 390, 390, 1164, 1164, 253, 253, 253, - 253, 253, 390, 390, 390, 390, 1164, 1164, 390, 390, - 390, 390, 390, 390, 390, 390, 1164, 1164, 1164, 1164, - 390, 390, 390, 390, 390, 390, 390, 390, 1164, 1164, - 1164, 1164, 1164, 1164, 253, 253, 253, 253, 390, 390, - 390, 390, 1164, 1164, 390, 325, 496, 496, 496, 496, - - 496, 496, 502, 502, 502, 502, 502, 502, 502, 502, - 496, 511, 511, 502, 496, 496, 496, 496, 1152, 1152, - 1152, 373, 1152, 1173, 1178, 1152, 1186, 1179, 1187, 1188, - 1173, 1173, 1173, 1173, 1173, 1173, 1152, 373, 1152, 1184, - 388, 1185, 390, 543, 543, 543, 543, 543, 390, 390, - 390, 390, 1164, 1164, 543, 543, 543, 543, 543, 543, - 543, 543, 543, 543, 543, 543, 253, 253, 253, 253, - 390, 390, 390, 390, 1164, 1164, 390, 543, 543, 543, - 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, - 543, 543, 543, 390, 390, 390, 390, 390, 1164, 1164, - - 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, - 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, - 390, 390, 390, 390, 1164, 1164, 543, 543, 543, 543, - 543, 496, 632, 632, 632, 632, 632, 632, 632, 632, - 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, - 632, 632, 632, 1152, 1152, 373, 1152, 1189, 1152, 1152, - 1152, 1178, 1178, 1178, 1179, 1179, 1179, 1190, 1190, 1188, - 1190, 1191, 1188, 1152, 1192, 1192, 373, 1152, 1184, 541, - 542, 543, 682, 682, 682, 682, 543, 543, 543, 543, - 682, 682, 682, 682, 682, 682, 682, 682, 682, 682, - - 390, 390, 390, 390, 1164, 1164, 543, 543, 543, 543, - 682, 682, 682, 682, 682, 682, 682, 682, 682, 682, - 682, 682, 682, 543, 543, 543, 543, 543, 682, 682, - 682, 682, 682, 682, 682, 682, 682, 682, 682, 682, - 682, 682, 682, 682, 682, 543, 543, 543, 543, 682, - 682, 682, 682, 1164, 1164, 1164, 1164, 1164, 1164, 1164, - 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, - 1164, 1152, 677, 1193, 1193, 1193, 1189, 1193, 1194, 1189, - 1152, 1195, 1178, 1178, 1178, 1179, 1179, 1179, 1196, 1197, - 1198, 1198, 1199, 1198, 1192, 1152, 1200, 1201, 1201, 1201, - - 1201, 1202, 1201, 1201, 1152, 1192, 1152, 1164, 1164, 1164, - 1164, 811, 811, 1164, 1164, 1164, 1164, 811, 818, 818, - 818, 811, 811, 811, 1164, 1164, 1164, 1164, 1164, 1164, - 1164, 811, 811, 811, 811, 1164, 1164, 1164, 1164, 1164, - 1164, 1164, 811, 811, 811, 1164, 1164, 1152, 1203, 1204, - 1205, 1205, 1206, 1205, 1192, 1152, 1207, 1208, 1208, 1208, - 1208, 1209, 1208, 1208, 1152, 1210, 1211, 1212, 1213, 1214, - 1215, 1216, 1215, 1215, 1215, 1217, 1218, 1217, 1152, 1217, - 1217, 1217, 1217, 1218, 1217, 1217, 879, 1219, 1219, 1220, - 1219, 1208, 1152, 1221, 1221, 1192, 1152, 1222, 1222, 899, - - 899, 1222, 1222, 1222, 1222, 1223, 1224, 1225, 1224, 1224, - 1224, 1226, 1227, 1226, 1152, 1226, 1226, 1226, 1226, 1227, - 1226, 1226, 915, 1228, 1228, 1229, 1228, 1208, 1152, 1208, - 1208, 1230, 1231, 1232, 1208, 1233, 1234, 1235, 1235, 1236, - 1237, 1236, 1236, 1236, 1238, 1239, 1238, 1152, 1240, 1241, - 1208, 1238, 1238, 1238, 1238, 1239, 1238, 1238, 948, 1152, - 1242, 1243, 1244, 1245, 1246, 1246, 1247, 1248, 1247, 1247, - 1247, 1249, 1250, 1249, 1152, 1249, 1249, 1249, 1249, 1250, - 1249, 1249, 975, 1208, 1251, 1252, 1253, 1254, 1152, 1255, - 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, - - 1265, 1152, 1266, 1152, 1267, 1268, 1269, 1269, 1152, 1253, - 1254, 989, 1258, 1258, 1258, 1270, 1271, 1253, 1272, 1273, - 1273, 1274, 1273, 1275, 1254, 1276, 1277, 1277, 1278, 1277, - 1279, 1279, 1280, 1279, 1281, 1152, 1152, 1281, 1152, 1152, - 1152, 989, 1282, 1270, 1271, 1274, 1272, 1271, 1271, 1271, - 1283, 1283, 1270, 1270, 1274, 1270, 1284, 1284, 1284, 1285, - 1278, 1286, 1287, 1287, 1285, 1285, 1278, 1285, 1288, 1288, - 1288, 1289, 1290, 1289, 1289, 1289, 1291, 1292, 1291, 1152, - 1291, 1291, 1291, 1291, 1292, 1291, 1291, 1080, 1152, 1293, - 1152, 1152, 1294, 1295, 1296, 1297, 1298, 1299, 1284, 1300, - - 1300, 1300, 1284, 1288, 1285, 1285, 1068, 1071, 1301, 1302, - 1291, 1087, 1089, 1091, 1092, 1296, 1297, 1303, 1152, 1298, - 1298, 1102, 1103, 1107, 1108, 1087, 1089, 1115, 1303, 1297, - 1152, 1152, 1304, 1102, 1103, 1107, 1108, 1087, 1305, 1306, - 1102, 1103, 1107, 1108, 1087, 1305, 1306, 1297, 1102, 1107, - 1087, 0, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152 + 1102, 1, 1102, 1102, 1102, 1102, 1102, 1103, 1104, 1105, + 1106, 1102, 1102, 1102, 1102, 1102, 1107, 1107, 1108, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1103, 1102, 1109, 1104, + 1102, 1110, 1105, 1111, 1102, 1107, 1108, 14, 1112, 1102, + 1113, 1102, 14, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1114, 1114, 1114, 1114, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1107, 1115, 1107, 1107, 1107, 1102, 1102, + 1116, 1102, 1102, 1102, 1102, 1102, 1102, 1103, 1103, 1103, + 1117, 1104, 1104, 1105, 1105, 1105, 1102, 1112, 1118, 56, + 1114, 1119, 1114, 1119, 1114, 94, 1114, 1114, 94, 1114, + + 94, 1114, 94, 1114, 94, 1114, 94, 1114, 1114, 94, + 1114, 1114, 1114, 94, 1114, 94, 1114, 1114, 118, 118, + 118, 118, 118, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1107, 68, 1107, + 1107, 68, 1116, 1120, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1103, 1103, 80, 1117, 1121, 1104, 83, 1105, + 1105, 86, 1122, 1102, 1114, 118, 176, 176, 176, 1114, + 1114, 94, 176, 176, 176, 176, 176, 176, 176, 176, + 1114, 1114, 1114, 94, 176, 176, 176, 1114, 176, 176, + + 176, 1114, 176, 176, 176, 1114, 1114, 94, 176, 176, + 176, 1114, 176, 176, 176, 176, 176, 1114, 1114, 176, + 176, 176, 176, 176, 1114, 1114, 1114, 94, 176, 176, + 176, 1114, 118, 233, 233, 233, 233, 233, 233, 239, + 239, 239, 239, 239, 239, 239, 239, 233, 248, 248, + 239, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1107, 68, 1123, 68, 1124, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 80, 1125, 1102, 83, 86, 1122, 1126, 1114, + + 176, 301, 301, 301, 301, 301, 176, 176, 176, 1114, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 1114, 94, 176, 176, 176, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, + 301, 176, 176, 176, 1114, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 176, 176, 176, 301, 301, + 301, 301, 233, 373, 373, 373, 373, 373, 373, 379, + 379, 379, 379, 379, 379, 379, 379, 373, 388, 388, + 379, 1114, 1114, 1114, 1114, 373, 1114, 1114, 1114, 1114, + + 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 373, 1114, 1114, 373, 1114, 1114, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 276, 1123, + 1123, 1127, 1128, 1102, 1102, 276, 1129, 1130, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1131, 1132, 1133, 1102, 86, 301, 476, 476, 476, 476, + 476, 1114, 1114, 301, 301, 301, 301, 476, 476, 476, + 476, 1114, 1114, 476, 476, 476, 476, 476, 476, 476, + + 476, 1114, 1114, 1114, 1114, 176, 176, 176, 301, 301, + 301, 301, 476, 476, 476, 476, 1114, 1114, 476, 476, + 476, 476, 476, 476, 1114, 1114, 476, 476, 476, 476, + 476, 1114, 1114, 301, 301, 301, 301, 301, 476, 476, + 476, 476, 1114, 1114, 476, 476, 476, 476, 476, 476, + 476, 476, 1114, 1114, 1114, 1114, 476, 476, 476, 476, + 476, 476, 476, 476, 1114, 1114, 1114, 1114, 1114, 1114, + 301, 301, 301, 301, 476, 476, 476, 476, 1114, 1114, + 476, 373, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 590, 590, 582, 582, 582, 590, + + 582, 582, 582, 582, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 276, 1102, 1127, 1102, + 1134, 1128, 1135, 1123, 1123, 1102, 1123, 1123, 1123, 1102, + 456, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1131, 474, 475, 476, 668, 668, + 668, 668, 668, 476, 476, 476, 476, 1114, 1114, 668, + 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, + 668, 301, 301, 301, 301, 476, 476, 476, 476, 1114, + + 1114, 476, 668, 668, 668, 668, 668, 668, 668, 668, + 668, 668, 668, 668, 668, 668, 668, 668, 476, 476, + 476, 476, 476, 1114, 1114, 668, 668, 668, 668, 668, + 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, + 668, 668, 668, 668, 668, 476, 476, 476, 476, 1114, + 1114, 668, 668, 668, 668, 668, 582, 757, 757, 757, + 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, + 757, 757, 757, 757, 757, 757, 757, 757, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 276, 1102, 1102, + 1127, 1127, 1127, 1128, 1128, 1128, 1123, 1123, 649, 1136, + 1136, 1123, 1136, 649, 1102, 651, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1131, 474, + 475, 668, 842, 842, 842, 842, 668, 668, 668, 668, + 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, + 476, 476, 476, 476, 1114, 1114, 668, 668, 668, 668, + 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, + 842, 842, 842, 668, 668, 668, 668, 668, 842, 842, + 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, + + 842, 842, 842, 842, 842, 668, 668, 668, 668, 842, + 842, 842, 842, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 826, 1127, 1127, 813, 1128, 1128, 816, 649, + 1136, 1102, 1136, 824, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1114, 1114, 1114, 842, 842, + 842, 1114, 1114, 1114, 1114, 668, 668, 668, 668, 842, + 842, 842, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 842, + + 842, 842, 842, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 842, 842, 842, 1114, 1114, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 813, 816, 649, + 1136, 1136, 1136, 962, 824, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1114, 842, 842, + 842, 1114, 1114, 1114, 1114, 1102, 1102, 1102, 1102, 1102, + 813, 816, 649, 1136, 1033, 824, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1114, 1102, 813, + 816, 649, 1033, 824, 1102, 1102, 1102, 1102, 1102, 1102, + 813, 816, 1033, 1082, 1102, 1102, 1102, 1102, 1033, 1102, + + 1136, 0, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102 } ; -static const flex_int16_t yy_nxt[17346] = +static const flex_int16_t yy_nxt[7190] = { 0, 4, 5, 6, 5, 5, 5, 7, 8, 9, 4, - 4, 10, 4, 4, 4, 11, 12, 13, 14, 15, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 17, 4, 18, 19, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 21, 20, 20, 22, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 21, 20, 20, 23, 24, 25, - 20, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 36, 36, 42, 69, 27, 28, 79, 36, 29, - - 27, 28, 96, 94, 29, 32, 32, 32, 32, 32, - 36, 134, 30, 95, 69, 101, 36, 30, 79, 107, - 97, 102, 136, 33, 94, 96, 32, 32, 32, 32, - 32, 69, 44, 134, 108, 51, 101, 41, 71, 135, - 37, 107, 116, 41, 33, 136, 34, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 31, 71, 37, - 135, 41, 31, 905, 117, 116, 808, 34, 34, 47, - 103, 104, 683, 90, 684, 71, 48, 49, 157, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 34, - 83, 103, 1148, 51, 51, 52, 53, 54, 51, 55, - - 56, 57, 51, 58, 51, 59, 51, 51, 60, 61, - 62, 51, 51, 51, 51, 63, 51, 51, 52, 53, - 54, 55, 56, 57, 58, 51, 59, 51, 51, 60, - 61, 62, 51, 51, 51, 51, 65, 69, 137, 51, - 69, 147, 66, 144, 39, 1096, 67, 105, 26, 68, - 98, 26, 26, 26, 26, 26, 106, 101, 99, 65, - 100, 137, 147, 102, 66, 27, 28, 67, 105, 29, - 68, 98, 236, 316, 691, 72, 692, 317, 101, 99, - 36, 71, 30, 1152, 71, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 236, 72, 74, 74, 74, - - 74, 74, 74, 74, 74, 74, 74, 69, 242, 176, - 1148, 74, 74, 74, 74, 74, 74, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 31, 35, 37, - 112, 177, 176, 36, 74, 74, 74, 74, 74, 35, - 35, 81, 146, 36, 36, 1096, 113, 32, 114, 280, - 115, 71, 71, 112, 281, 238, 282, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 113, 164, 114, - 40, 82, 82, 82, 82, 82, 82, 69, 238, 36, - 902, 316, 37, 166, 165, 317, 808, 167, 41, 168, - 164, 190, 191, 37, 82, 82, 82, 82, 82, 84, - - 84, 84, 84, 84, 84, 84, 84, 84, 84, 158, - 140, 1139, 190, 84, 84, 84, 84, 84, 84, 1130, - 251, 71, 257, 109, 41, 157, 239, 210, 110, 118, - 158, 140, 233, 111, 234, 237, 84, 84, 84, 84, - 84, 40, 40, 86, 109, 257, 211, 217, 239, 110, - 210, 217, 217, 217, 217, 233, 237, 234, 246, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 103, - 104, 1133, 105, 87, 87, 87, 87, 87, 87, 246, - 254, 106, 80, 93, 255, 186, 256, 36, 212, 187, - 103, 188, 213, 105, 214, 867, 87, 87, 87, 87, - - 87, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 158, 189, 369, 158, 74, 74, 74, 74, 74, - 74, 230, 258, 231, 232, 217, 217, 217, 217, 711, - 1130, 712, 158, 189, 369, 158, 37, 1117, 74, 74, - 74, 74, 74, 118, 118, 258, 1117, 1109, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 119, 120, 120, 120, 121, 122, 123, - 124, 120, 120, 118, 118, 118, 118, 120, 120, 120, - 120, 120, 120, 125, 126, 127, 118, 128, 118, 129, - 118, 118, 130, 131, 132, 118, 118, 118, 118, 118, - - 120, 120, 120, 120, 120, 125, 126, 127, 128, 118, - 129, 118, 118, 130, 131, 132, 118, 118, 118, 118, - 118, 118, 118, 118, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 1073, 1073, 107, 116, 139, 139, - 139, 139, 139, 139, 85, 716, 1098, 717, 272, 274, - 169, 108, 287, 36, 170, 171, 172, 173, 107, 117, - 116, 139, 139, 139, 139, 139, 73, 73, 73, 141, - 73, 272, 274, 176, 263, 287, 174, 69, 264, 477, - 265, 908, 1073, 478, 175, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 177, 176, 174, 41, 142, - - 142, 142, 142, 142, 142, 175, 284, 1073, 1043, 288, - 182, 285, 371, 286, 159, 183, 159, 184, 849, 526, - 292, 71, 142, 142, 142, 142, 142, 148, 80, 80, - 149, 148, 288, 36, 371, 230, 158, 231, 232, 217, - 217, 217, 217, 292, 986, 185, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 112, 158, 275, 526, - 150, 150, 150, 150, 150, 150, 185, 289, 527, 1005, - 383, 290, 113, 291, 114, 26, 115, 276, 968, 112, - 293, 275, 37, 150, 150, 150, 150, 150, 83, 83, - 83, 151, 83, 113, 267, 114, 190, 191, 268, 269, - - 270, 271, 477, 293, 529, 307, 478, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 190, 309, 370, - 968, 152, 152, 152, 152, 152, 152, 73, 307, 298, - 990, 372, 277, 299, 385, 300, 278, 69, 279, 32, - 370, 309, 158, 39, 152, 152, 152, 152, 152, 153, - 85, 85, 154, 153, 372, 342, 302, 343, 158, 36, - 303, 304, 305, 306, 526, 367, 394, 941, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 342, 158, - 343, 71, 155, 155, 155, 155, 155, 155, 321, 394, - 386, 941, 322, 138, 323, 178, 93, 395, 986, 159, - - 179, 159, 180, 69, 41, 155, 155, 155, 155, 155, - 120, 386, 413, 527, 120, 120, 120, 120, 391, 93, - 395, 158, 392, 109, 393, 181, 968, 415, 110, 526, - 118, 118, 118, 111, 118, 413, 118, 968, 427, 118, - 118, 118, 158, 428, 109, 429, 181, 71, 963, 110, - 415, 434, 118, 118, 118, 118, 435, 118, 436, 908, - 118, 118, 118, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 396, 529, 416, 437, 159, 159, 159, - 159, 159, 159, 310, 720, 908, 721, 311, 312, 313, - 314, 326, 438, 444, 445, 326, 326, 326, 326, 437, - - 159, 159, 159, 159, 159, 160, 159, 159, 159, 161, - 159, 162, 159, 159, 159, 438, 444, 445, 451, 159, - 159, 159, 159, 159, 159, 452, 941, 93, 192, 93, - 418, 163, 193, 196, 194, 464, 941, 197, 198, 199, - 200, 451, 159, 159, 159, 159, 159, 398, 452, 195, - 448, 399, 163, 400, 158, 449, 203, 450, 464, 201, - 204, 205, 206, 207, 202, 396, 396, 396, 397, 396, - 402, 195, 526, 318, 403, 158, 404, 319, 789, 320, - 201, 94, 158, 374, 93, 202, 936, 466, 208, 217, - 209, 95, 222, 223, 224, 217, 225, 226, 227, 158, - - 872, 423, 94, 158, 228, 424, 229, 425, 872, 208, - 466, 209, 118, 118, 118, 215, 118, 529, 867, 339, - 158, 340, 341, 326, 326, 326, 326, 228, 729, 229, - 730, 216, 217, 217, 217, 218, 219, 220, 221, 217, - 217, 513, 750, 514, 751, 217, 217, 217, 217, 217, - 217, 396, 396, 396, 397, 396, 294, 103, 104, 101, - 159, 295, 159, 296, 513, 102, 514, 93, 217, 217, - 217, 217, 217, 138, 138, 138, 240, 138, 103, 521, - 101, 339, 158, 340, 341, 326, 326, 326, 326, 908, - 908, 297, 241, 241, 241, 241, 241, 241, 241, 241, - - 241, 241, 521, 158, 107, 116, 241, 241, 241, 241, - 241, 241, 297, 367, 367, 367, 368, 367, 408, 108, - 906, 547, 409, 410, 411, 412, 107, 117, 116, 241, - 241, 241, 241, 241, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 547, 519, 326, 96, 243, 243, - 243, 243, 243, 243, 416, 416, 416, 417, 416, 418, - 418, 418, 419, 418, 548, 97, 519, 520, 93, 326, - 96, 243, 243, 243, 243, 243, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 439, 548, 520, 564, - 247, 247, 247, 247, 247, 247, 416, 416, 416, 417, - - 416, 439, 439, 439, 440, 439, 439, 439, 439, 440, - 439, 872, 564, 247, 247, 247, 247, 247, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 539, 872, - 870, 566, 248, 248, 248, 248, 248, 248, 867, 849, - 93, 349, 349, 349, 350, 349, 441, 453, 849, 539, - 442, 454, 443, 455, 566, 248, 248, 248, 248, 248, - 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, - 763, 164, 764, 765, 249, 249, 249, 249, 249, 249, - 446, 446, 446, 447, 446, 849, 98, 165, 26, 26, - 26, 26, 26, 164, 99, 583, 100, 249, 249, 249, - - 249, 249, 27, 28, 259, 485, 29, 98, 260, 486, - 261, 487, 526, 655, 276, 99, 459, 355, 583, 30, - 460, 461, 462, 463, 262, 446, 446, 446, 447, 446, - 158, 772, 326, 105, 655, 331, 332, 333, 326, 334, - 335, 336, 106, 353, 489, 848, 262, 337, 490, 338, - 491, 158, 772, 846, 105, 406, 406, 406, 407, 406, - 526, 527, 105, 846, 31, 158, 158, 158, 252, 158, - 337, 106, 338, 467, 467, 467, 468, 467, 469, 469, - 469, 470, 469, 105, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 164, 587, 103, 104, 253, 253, - - 253, 253, 253, 253, 431, 431, 431, 432, 431, 527, - 165, 467, 467, 467, 468, 467, 164, 103, 587, 845, - 845, 253, 253, 253, 253, 253, 325, 326, 326, 326, - 327, 328, 329, 330, 326, 326, 446, 433, 840, 588, - 326, 326, 326, 326, 326, 326, 479, 479, 479, 480, - 479, 346, 346, 346, 347, 346, 351, 176, 840, 177, - 433, 346, 588, 326, 326, 326, 326, 326, 344, 344, - 344, 345, 344, 351, 351, 351, 352, 351, 838, 177, - 176, 353, 353, 353, 354, 353, 592, 326, 348, 526, - 93, 326, 326, 326, 326, 807, 92, 96, 593, 355, - - 355, 355, 356, 355, 101, 838, 97, 578, 364, 592, - 102, 348, 579, 94, 580, 97, 807, 92, 92, 597, - 96, 593, 101, 95, 836, 101, 92, 526, 102, 357, - 357, 357, 358, 357, 94, 103, 104, 619, 527, 92, - 116, 620, 597, 101, 92, 105, 836, 92, 359, 359, - 359, 360, 359, 825, 106, 357, 103, 457, 457, 457, - 458, 457, 117, 116, 544, 92, 105, 549, 545, 107, - 546, 550, 529, 551, 92, 357, 357, 357, 358, 357, - 897, 471, 467, 825, 108, 472, 473, 474, 475, 344, - 469, 107, 109, 109, 107, 92, 824, 110, 110, 479, - - 497, 897, 111, 111, 497, 497, 497, 497, 326, 108, - 824, 190, 191, 109, 109, 107, 107, 93, 110, 110, - 361, 361, 361, 362, 361, 481, 481, 481, 482, 481, - 108, 326, 190, 94, 598, 821, 93, 107, 359, 359, - 359, 360, 359, 95, 93, 821, 374, 374, 374, 374, - 374, 610, 376, 93, 94, 363, 377, 598, 378, 483, - 483, 483, 484, 483, 379, 92, 396, 396, 396, 397, - 396, 113, 816, 114, 610, 115, 555, 619, 363, 98, - 556, 620, 557, 109, 190, 191, 92, 99, 110, 100, - 481, 816, 113, 111, 114, 364, 364, 364, 365, 364, - - 98, 380, 612, 744, 109, 190, 497, 745, 99, 110, - 497, 497, 497, 497, 326, 814, 814, 584, 326, 326, - 326, 326, 585, 744, 586, 612, 497, 745, 366, 502, - 503, 504, 497, 505, 506, 507, 396, 396, 396, 397, - 396, 508, 654, 509, 93, 493, 493, 493, 494, 493, - 117, 366, 138, 138, 138, 240, 138, 553, 553, 553, - 554, 553, 813, 497, 508, 654, 509, 497, 497, 497, - 497, 373, 373, 373, 373, 373, 373, 373, 373, 373, - 373, 495, 813, 164, 210, 373, 373, 373, 373, 373, - 373, 510, 789, 511, 512, 497, 497, 497, 497, 165, - - 211, 789, 841, 211, 495, 164, 842, 210, 373, 373, - 373, 373, 373, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 632, 632, 632, 632, 381, 381, 381, - 381, 381, 381, 510, 782, 511, 512, 497, 497, 497, - 497, 559, 811, 902, 812, 560, 561, 562, 563, 808, - 381, 381, 381, 381, 381, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 632, 632, 632, 632, 387, - 387, 387, 387, 387, 387, 367, 367, 367, 368, 367, - 416, 416, 416, 417, 416, 418, 418, 418, 419, 418, - 774, 752, 387, 387, 387, 387, 387, 388, 388, 388, - - 388, 388, 388, 388, 388, 388, 388, 752, 497, 678, - 685, 388, 388, 388, 388, 388, 388, 416, 416, 416, - 417, 416, 567, 571, 93, 749, 568, 572, 569, 573, - 93, 497, 678, 685, 388, 388, 388, 388, 388, 389, - 389, 389, 389, 389, 389, 389, 389, 389, 389, 483, - 553, 686, 698, 389, 389, 389, 389, 389, 389, 431, - 431, 431, 432, 431, 439, 439, 439, 440, 439, 439, - 439, 439, 440, 439, 686, 698, 389, 389, 389, 389, - 389, 390, 390, 390, 390, 390, 390, 390, 390, 390, - 390, 526, 582, 700, 718, 390, 390, 390, 390, 390, - - 390, 431, 589, 93, 93, 822, 590, 823, 591, 446, - 446, 446, 447, 446, 177, 582, 700, 718, 390, 390, - 390, 390, 390, 420, 159, 159, 159, 421, 159, 422, - 159, 159, 159, 176, 599, 275, 529, 159, 159, 159, - 159, 159, 159, 446, 446, 446, 447, 446, 632, 632, - 632, 632, 594, 719, 276, 177, 176, 595, 275, 596, - 159, 159, 159, 159, 159, 496, 497, 497, 497, 498, - 499, 500, 501, 497, 497, 457, 719, 722, 723, 497, - 497, 497, 497, 497, 497, 749, 743, 406, 93, 625, - 346, 346, 346, 347, 346, 599, 599, 599, 600, 599, - - 722, 723, 497, 497, 497, 497, 497, 344, 344, 344, - 345, 344, 349, 349, 349, 350, 349, 359, 493, 351, - 351, 351, 352, 351, 743, 164, 497, 515, 190, 191, - 497, 497, 497, 497, 737, 92, 353, 353, 353, 354, - 353, 165, 601, 93, 737, 97, 602, 164, 603, 190, - 515, 841, 94, 210, 621, 842, 92, 98, 622, 731, - 623, 109, 95, 705, 92, 99, 110, 100, 101, 731, - 724, 111, 211, 94, 102, 725, 210, 726, 98, 849, - 727, 92, 109, 93, 523, 92, 99, 110, 164, 101, - 103, 104, 355, 355, 355, 356, 355, 349, 694, 695, - - 696, 697, 92, 727, 165, 357, 357, 357, 358, 357, - 164, 103, 599, 599, 599, 600, 599, 93, 359, 359, - 359, 360, 359, 713, 357, 357, 357, 358, 357, 832, - 713, 833, 359, 359, 359, 360, 359, 92, 105, 905, - 627, 98, 808, 728, 628, 107, 629, 106, 605, 99, - 92, 100, 606, 607, 608, 609, 710, 497, 92, 105, - 108, 361, 98, 109, 107, 112, 728, 107, 110, 710, - 99, 92, 687, 111, 736, 704, 688, 109, 689, 108, - 497, 113, 110, 114, 109, 115, 107, 111, 112, 110, - 361, 361, 361, 362, 361, 112, 704, 736, 109, 699, - - 525, 738, 113, 110, 114, 526, 457, 457, 457, 458, - 457, 113, 843, 114, 844, 115, 701, 699, 112, 715, - 702, 867, 703, 497, 738, 516, 659, 497, 497, 497, - 497, 789, 113, 707, 114, 92, 935, 708, 276, 709, - 518, 113, 715, 114, 763, 115, 764, 765, 516, 575, - 575, 575, 576, 575, 527, 693, 92, 809, 693, 211, - 190, 191, 113, 518, 114, 364, 364, 364, 365, 364, - 467, 467, 467, 468, 467, 469, 469, 469, 470, 469, - 809, 190, 872, 93, 497, 577, 810, 374, 497, 497, - 497, 497, 690, 374, 374, 374, 374, 374, 517, 376, - - 901, 690, 682, 377, 276, 378, 746, 630, 577, 810, - 747, 379, 748, 630, 406, 406, 406, 407, 406, 624, - 117, 517, 522, 522, 522, 522, 522, 522, 522, 522, - 522, 522, 732, 733, 734, 735, 522, 522, 522, 522, - 522, 522, 467, 467, 467, 468, 467, 849, 380, 815, - 613, 624, 776, 164, 614, 615, 616, 617, 93, 522, - 522, 522, 522, 522, 523, 523, 523, 523, 523, 165, - 1152, 901, 815, 682, 1152, 164, 378, 523, 523, 523, - 523, 523, 524, 1152, 93, 93, 618, 1152, 618, 378, - 530, 739, 740, 741, 742, 524, 479, 479, 479, 480, - - 479, 481, 481, 481, 482, 481, 483, 483, 483, 484, - 483, 625, 625, 625, 626, 625, 93, 93, 645, 380, - 646, 647, 632, 632, 632, 632, 396, 396, 396, 397, - 396, 611, 380, 531, 532, 523, 523, 523, 532, 533, - 531, 533, 533, 533, 531, 531, 534, 533, 533, 533, - 533, 533, 535, 536, 536, 536, 536, 536, 536, 536, - 536, 536, 536, 533, 533, 533, 533, 536, 536, 536, - 536, 536, 536, 533, 533, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 533, 533, 533, 533, 537, - 536, 536, 536, 536, 536, 533, 533, 533, 533, 533, - - 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 73, 73, 73, 141, 73, 396, - 396, 396, 397, 396, 611, 493, 493, 493, 494, 493, - 604, 575, 604, 538, 538, 538, 538, 538, 538, 538, - 538, 538, 538, 93, 93, 771, 817, 538, 538, 538, - 538, 538, 538, 637, 638, 639, 632, 640, 641, 642, - 828, 631, 581, 827, 211, 643, 275, 644, 771, 817, - 538, 538, 538, 538, 538, 148, 80, 80, 149, 148, - 211, 36, 276, 828, 631, 276, 827, 818, 643, 275, - 644, 819, 581, 820, 540, 540, 540, 540, 540, 540, - - 540, 540, 540, 540, 829, 574, 830, 574, 540, 540, - 540, 540, 540, 540, 637, 638, 639, 632, 640, 641, - 642, 553, 553, 553, 554, 553, 648, 829, 649, 830, - 37, 540, 540, 540, 540, 540, 83, 83, 83, 151, - 83, 645, 831, 646, 647, 632, 632, 632, 632, 648, - 570, 649, 38, 570, 93, 541, 541, 541, 541, 541, - 541, 541, 541, 541, 541, 831, 93, 565, 565, 541, - 541, 541, 541, 541, 541, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 38, 39, 541, 541, 541, 541, 541, 38, 38, 38, - + 4, 10, 4, 4, 4, 11, 12, 13, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 15, 4, + 4, 16, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 18, 17, 17, 19, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 18, 17, 17, 20, 21, 17, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, + 23, 23, 23, 23, 28, 31, 28, 35, 63, 22, + + 22, 22, 22, 22, 63, 24, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 72, 1102, 1102, 75, + 44, 76, 133, 28, 58, 95, 73, 74, 25, 63, + 59, 75, 32, 76, 60, 1096, 37, 61, 72, 34, + 65, 29, 26, 96, 62, 133, 65, 58, 95, 77, + 253, 25, 40, 59, 32, 32, 60, 41, 42, 61, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 29, 65, 77, 253, 44, 44, 45, 46, 47, 44, + 48, 49, 50, 44, 51, 44, 52, 44, 44, 53, + 54, 55, 44, 44, 44, 44, 56, 44, 44, 45, + + 46, 47, 44, 48, 49, 50, 51, 44, 52, 44, + 44, 53, 54, 55, 44, 44, 44, 44, 63, 28, + 44, 1102, 63, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 102, 103, 23, 23, 23, 23, 23, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 558, 558, 552, 38, 153, 85, 85, 154, - 153, 416, 416, 416, 417, 416, 36, 552, 908, 632, - 632, 632, 632, 523, 93, 542, 542, 542, 542, 542, - 542, 542, 542, 542, 542, 164, 834, 835, 526, 542, - 542, 542, 542, 542, 542, 1099, 367, 367, 367, 368, - 367, 165, 418, 418, 418, 419, 418, 164, 385, 834, - 835, 41, 542, 542, 542, 542, 542, 543, 543, 543, - 543, 543, 543, 543, 543, 543, 543, 383, 93, 632, - 837, 543, 543, 543, 543, 543, 543, 527, 492, 349, - - 349, 349, 350, 349, 492, 488, 344, 344, 344, 345, - 344, 93, 632, 837, 543, 543, 543, 543, 543, 632, - 632, 632, 632, 633, 634, 635, 636, 632, 632, 632, - 632, 632, 632, 632, 632, 632, 632, 632, 632, 346, - 346, 346, 347, 346, 98, 488, 351, 351, 351, 352, - 351, 94, 99, 476, 100, 476, 632, 632, 632, 632, - 632, 95, 465, 465, 456, 98, 353, 353, 353, 354, - 353, 456, 94, 99, 528, 839, 650, 93, 355, 355, - 355, 356, 355, 526, 92, 357, 357, 357, 358, 357, - 430, 92, 662, 430, 97, 101, 808, 526, 839, 650, - - 426, 102, 426, 903, 93, 92, 416, 416, 416, 417, - 416, 92, 92, 665, 941, 414, 101, 414, 405, 935, - 103, 104, 526, 92, 105, 107, 903, 405, 529, 93, - 92, 401, 92, 106, 359, 359, 359, 360, 359, 401, - 108, 103, 251, 941, 92, 105, 527, 107, 374, 385, - 383, 92, 705, 705, 705, 706, 705, 364, 364, 364, - 365, 364, 357, 357, 357, 358, 357, 529, 324, 808, - 324, 359, 359, 359, 360, 359, 904, 93, 93, 109, - 632, 632, 632, 632, 110, 93, 315, 315, 93, 111, - 652, 632, 632, 632, 632, 632, 968, 93, 968, 904, - - 109, 776, 107, 523, 653, 110, 361, 361, 361, 362, - 361, 308, 117, 652, 986, 941, 109, 108, 632, 659, - 935, 110, 308, 211, 107, 301, 111, 653, 523, 523, - 523, 523, 523, 968, 1096, 301, 93, 109, 776, 1097, - 378, 651, 110, 1073, 1096, 93, 657, 526, 374, 1119, - 1104, 92, 406, 406, 406, 407, 406, 113, 1117, 114, - 93, 115, 283, 1097, 651, 439, 439, 439, 440, 439, - 283, 93, 92, 575, 575, 575, 576, 575, 113, 93, - 114, 656, 656, 656, 656, 656, 656, 656, 656, 656, - 656, 164, 529, 273, 273, 656, 656, 656, 656, 656, - - 656, 439, 439, 439, 440, 439, 1073, 165, 266, 583, - 1117, 935, 1130, 164, 266, 1119, 93, 1119, 656, 656, - 656, 656, 656, 523, 523, 523, 523, 523, 276, 1152, - 93, 93, 583, 1152, 1096, 378, 658, 251, 146, 1013, - 144, 524, 659, 659, 659, 659, 659, 446, 446, 446, - 447, 446, 235, 93, 660, 523, 523, 523, 523, 523, - 661, 1152, 93, 93, 93, 1152, 93, 378, 446, 446, - 446, 447, 446, 524, 93, 93, 93, 93, 380, 525, - 525, 663, 599, 599, 599, 600, 599, 431, 431, 431, - 432, 431, 599, 599, 599, 600, 599, 664, 664, 664, - - 664, 664, 664, 664, 664, 664, 664, 93, 93, 93, - 380, 664, 664, 664, 664, 664, 664, 93, 90, 39, - 714, 467, 467, 467, 468, 467, 469, 469, 469, 470, - 469, 146, 144, 133, 664, 664, 664, 664, 664, 528, - 528, 666, 177, 714, 467, 467, 467, 468, 467, 479, - 479, 479, 480, 479, 93, 93, 91, 667, 667, 667, - 667, 667, 667, 667, 667, 667, 667, 90, 88, 39, - 78, 667, 667, 667, 667, 667, 667, 481, 481, 481, - 482, 481, 483, 483, 483, 484, 483, 625, 625, 625, - 626, 625, 77, 76, 667, 667, 667, 667, 667, 668, - - 669, 669, 669, 669, 669, 75, 668, 64, 46, 1148, - 668, 668, 671, 672, 1119, 39, 1152, 1152, 673, 523, - 523, 523, 523, 523, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 378, 523, 523, 523, 523, 523, 524, 1152, 1152, - 1152, 1152, 1152, 1152, 378, 457, 457, 457, 458, 457, - 524, 1152, 1152, 1152, 1152, 674, 1152, 523, 523, 523, - 523, 523, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 378, - 1152, 1152, 1152, 1152, 380, 524, 523, 523, 523, 523, - 523, 1152, 1152, 1152, 1152, 1152, 1152, 380, 378, 658, - 775, 775, 1152, 1152, 524, 1152, 1152, 1152, 993, 190, - - 191, 997, 755, 756, 757, 1152, 758, 759, 760, 775, - 775, 775, 380, 1152, 761, 1152, 762, 1152, 993, 1152, - 190, 997, 1152, 1152, 1152, 493, 493, 493, 494, 493, - 1152, 380, 532, 532, 532, 675, 532, 761, 1152, 762, - 1152, 1152, 1152, 998, 378, 367, 367, 367, 368, 367, - 524, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 753, 1152, 998, 1152, 676, 676, 676, 676, 676, - 676, 396, 396, 396, 397, 396, 1152, 1152, 1152, 1152, - 211, 1152, 1152, 1152, 753, 1152, 1152, 380, 676, 676, - 676, 676, 676, 531, 532, 523, 523, 523, 532, 533, - - 531, 533, 533, 533, 531, 531, 534, 533, 533, 533, - 533, 533, 535, 536, 536, 536, 536, 536, 536, 536, - 536, 536, 536, 533, 533, 533, 533, 536, 536, 536, - 536, 536, 536, 533, 533, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 533, 533, 533, 533, 537, - 536, 536, 536, 536, 536, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 73, 73, 73, 141, 73, 396, - 396, 396, 397, 396, 1152, 148, 80, 80, 149, 148, - 1152, 36, 1152, 677, 677, 677, 677, 677, 677, 677, - - 677, 677, 677, 1152, 1152, 1152, 1152, 677, 677, 677, - 677, 677, 677, 755, 756, 757, 1152, 758, 759, 760, - 344, 344, 344, 345, 344, 766, 1152, 767, 1152, 1152, - 677, 677, 677, 677, 677, 148, 80, 80, 149, 148, - 37, 36, 553, 553, 553, 554, 553, 1152, 766, 1152, - 767, 1152, 1152, 1152, 679, 679, 679, 679, 679, 679, - 679, 679, 679, 679, 1152, 94, 1152, 1152, 679, 679, - 679, 679, 679, 679, 1152, 95, 1152, 349, 349, 349, - 350, 349, 1152, 1152, 1152, 1152, 94, 1152, 1152, 1152, - 37, 679, 679, 679, 679, 679, 680, 680, 680, 680, - - 680, 680, 680, 680, 680, 680, 1152, 1152, 1152, 1152, - 680, 680, 680, 680, 680, 680, 416, 416, 416, 417, - 416, 1152, 98, 355, 355, 355, 356, 355, 1152, 1152, - 99, 1152, 100, 680, 680, 680, 680, 680, 153, 85, - 85, 154, 153, 98, 1152, 1152, 1152, 1152, 36, 1152, - 1152, 99, 418, 418, 418, 419, 418, 681, 681, 681, - 681, 681, 681, 681, 681, 681, 681, 1152, 1152, 105, - 1152, 681, 681, 681, 681, 681, 681, 1152, 106, 353, - 353, 353, 354, 353, 416, 416, 416, 417, 416, 1152, - 105, 1152, 1152, 41, 681, 681, 681, 681, 681, 682, - - 682, 682, 682, 682, 682, 682, 682, 682, 682, 1152, - 1152, 1152, 1152, 682, 682, 682, 682, 682, 682, 351, - 351, 351, 352, 351, 1152, 1152, 1152, 1152, 346, 346, - 346, 347, 346, 103, 104, 1152, 682, 682, 682, 682, - 682, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 1152, 1152, 1152, 103, 754, 754, 754, 754, 754, - 754, 1152, 1152, 1152, 1152, 768, 1152, 1152, 101, 357, - 357, 357, 358, 357, 102, 1152, 1152, 1152, 754, 754, - 754, 754, 754, 97, 1152, 1152, 1152, 1152, 768, 101, - 359, 359, 359, 360, 359, 361, 361, 361, 362, 361, - - 1152, 1152, 1152, 364, 364, 364, 365, 364, 1152, 107, - 1152, 357, 357, 357, 358, 357, 406, 406, 406, 407, - 406, 1152, 1152, 1152, 108, 359, 359, 359, 360, 359, - 769, 107, 1152, 1152, 1152, 109, 770, 1152, 1152, 1152, - 110, 907, 907, 1152, 1152, 111, 113, 1152, 114, 1045, - 115, 107, 1061, 769, 1152, 164, 109, 1152, 117, 770, - 1152, 110, 1152, 1152, 1152, 1152, 108, 113, 1152, 114, - 109, 165, 1152, 107, 1152, 110, 1152, 164, 1152, 1152, - 111, 705, 705, 705, 706, 705, 439, 439, 439, 440, - 439, 109, 1152, 1152, 1062, 1152, 110, 773, 773, 773, - - 773, 773, 773, 773, 773, 773, 773, 1152, 1152, 1152, - 1152, 773, 773, 773, 773, 773, 773, 1152, 1152, 1152, - 1152, 575, 575, 575, 576, 575, 439, 439, 439, 440, - 439, 1152, 1152, 1152, 773, 773, 773, 773, 773, 775, - 776, 776, 776, 776, 776, 1152, 775, 1152, 1152, 1152, - 775, 775, 778, 779, 1152, 1152, 1152, 715, 780, 659, - 659, 659, 659, 659, 1152, 1152, 669, 669, 669, 669, - 669, 660, 1152, 775, 775, 775, 276, 661, 671, 789, - 715, 1152, 993, 1152, 790, 997, 1152, 1152, 1152, 523, - 532, 523, 523, 523, 1152, 781, 783, 662, 662, 784, - - 783, 378, 526, 1152, 1152, 1152, 1152, 524, 431, 431, - 431, 432, 431, 1152, 1152, 785, 785, 785, 785, 785, - 785, 785, 785, 785, 785, 1152, 1152, 998, 1152, 785, - 785, 785, 785, 785, 785, 446, 446, 446, 447, 446, - 1152, 826, 1152, 1152, 380, 446, 446, 446, 447, 446, - 1152, 527, 785, 785, 785, 785, 785, 786, 665, 665, - 787, 786, 1152, 177, 826, 1152, 1152, 526, 599, 599, - 599, 600, 599, 1152, 1152, 1152, 788, 788, 788, 788, - 788, 788, 788, 788, 788, 788, 1152, 1152, 1152, 1152, - 788, 788, 788, 788, 788, 788, 599, 599, 599, 600, - - 599, 467, 467, 467, 468, 467, 457, 457, 457, 458, - 457, 1152, 529, 788, 788, 788, 788, 788, 668, 669, - 669, 669, 669, 669, 1152, 668, 1152, 1152, 1152, 668, - 668, 671, 672, 1152, 1152, 1152, 1152, 673, 469, 469, - 469, 470, 469, 467, 467, 467, 468, 467, 479, 479, - 479, 480, 479, 481, 481, 481, 482, 481, 1152, 1152, - 190, 191, 483, 483, 483, 484, 483, 625, 625, 625, - 626, 625, 1152, 1152, 674, 791, 792, 792, 792, 792, - 792, 190, 791, 1152, 1152, 1152, 791, 791, 794, 672, - 1152, 1152, 1152, 1152, 795, 118, 118, 118, 215, 118, - - 1152, 1152, 493, 493, 493, 494, 493, 344, 344, 344, - 345, 344, 346, 346, 346, 347, 346, 1152, 1152, 355, - 355, 355, 356, 355, 1152, 364, 364, 364, 365, 364, - 1152, 796, 668, 669, 669, 669, 669, 669, 847, 668, - 1152, 1152, 1152, 668, 668, 671, 797, 1152, 1152, 96, - 93, 673, 94, 1152, 1152, 1152, 1152, 211, 116, 1152, - 1152, 847, 95, 1152, 1152, 105, 1152, 97, 1152, 1152, - 1152, 1152, 96, 94, 106, 138, 138, 138, 240, 138, - 117, 116, 1152, 1152, 1152, 1152, 105, 1152, 674, 798, - 799, 669, 669, 669, 799, 800, 798, 800, 800, 800, - - 798, 798, 801, 802, 800, 800, 800, 800, 803, 804, - 804, 804, 804, 804, 804, 804, 804, 804, 804, 800, - 800, 800, 800, 804, 804, 804, 804, 804, 804, 800, - 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, - 800, 800, 800, 800, 800, 805, 804, 804, 804, 804, - 804, 800, 800, 800, 800, 800, 800, 800, 800, 800, - 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, - 532, 532, 532, 675, 532, 553, 553, 553, 554, 553, - 1152, 1152, 378, 357, 357, 357, 358, 357, 524, 806, - 806, 806, 806, 806, 806, 806, 806, 806, 806, 1152, - - 1152, 808, 1152, 806, 806, 806, 806, 806, 806, 775, - 775, 1152, 1152, 993, 705, 705, 705, 706, 705, 1152, - 994, 1152, 1152, 107, 1152, 380, 806, 806, 806, 806, - 806, 73, 73, 73, 141, 73, 1152, 682, 108, 682, - 705, 705, 705, 706, 705, 107, 1152, 1152, 1152, 1152, - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, - 1152, 1152, 995, 808, 70, 70, 70, 70, 70, 70, - 353, 353, 353, 354, 353, 1152, 599, 599, 599, 600, - 599, 1152, 1152, 1152, 1152, 1152, 1152, 70, 70, 70, - 70, 70, 38, 38, 38, 38, 38, 38, 38, 38, - - 38, 38, 808, 1152, 1152, 1152, 38, 38, 38, 38, - 38, 38, 1152, 367, 367, 367, 368, 367, 599, 599, - 599, 600, 599, 1152, 103, 104, 1152, 1152, 1152, 38, - 38, 38, 38, 38, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 808, 103, 1152, 1152, 40, 40, - 40, 40, 40, 40, 349, 349, 349, 350, 349, 1152, - 1152, 1152, 1152, 351, 351, 351, 352, 351, 93, 1152, - 1152, 40, 40, 40, 40, 40, 808, 808, 808, 808, - 808, 808, 808, 808, 808, 808, 1152, 1152, 1152, 1152, - 808, 808, 808, 808, 808, 808, 1152, 1152, 1152, 98, - - 359, 359, 359, 360, 359, 1152, 1152, 99, 1152, 100, - 1152, 1152, 101, 808, 808, 808, 808, 808, 102, 1152, - 98, 361, 361, 361, 362, 361, 1152, 1152, 99, 1152, - 1152, 1152, 1152, 101, 1152, 357, 357, 357, 358, 357, - 1152, 1152, 775, 775, 775, 109, 1152, 993, 1152, 1152, - 110, 1152, 1152, 1152, 994, 111, 112, 359, 359, 359, - 360, 359, 1152, 1152, 1152, 1152, 109, 1152, 1152, 1152, - 1152, 110, 113, 1152, 114, 107, 115, 1152, 1152, 112, - 118, 118, 118, 215, 118, 118, 118, 118, 215, 118, - 108, 1152, 1152, 113, 1152, 114, 995, 107, 775, 775, - - 775, 1152, 109, 993, 1152, 1152, 1152, 110, 1152, 1152, - 994, 1152, 111, 118, 118, 118, 215, 118, 1152, 164, - 1152, 1152, 1152, 109, 1152, 1152, 1152, 1152, 110, 118, - 118, 118, 215, 118, 1152, 165, 1152, 1152, 1152, 1152, - 93, 164, 776, 776, 776, 776, 776, 907, 907, 210, - 1152, 1045, 995, 1152, 778, 849, 1152, 1152, 1046, 1152, - 850, 873, 873, 873, 873, 873, 1152, 1152, 211, 1152, - 1152, 1152, 210, 874, 872, 1152, 1152, 1152, 1152, 875, - 1152, 1152, 1152, 1152, 93, 775, 776, 776, 776, 776, - 776, 1152, 775, 1152, 1152, 1152, 775, 775, 778, 779, - - 1047, 1152, 1152, 1152, 780, 374, 374, 374, 374, 374, - 1152, 376, 1152, 1152, 1152, 377, 1152, 378, 658, 1152, - 1152, 1152, 1152, 379, 158, 158, 158, 252, 158, 396, - 396, 396, 397, 396, 396, 396, 396, 397, 396, 1152, - 1152, 781, 851, 852, 852, 852, 852, 852, 1152, 851, - 1152, 1152, 1152, 851, 851, 854, 779, 1152, 1152, 1152, - 380, 855, 1152, 1152, 1152, 1152, 406, 406, 406, 407, - 406, 416, 416, 416, 417, 416, 1152, 1152, 1152, 93, - 1152, 1152, 1152, 1152, 93, 1152, 1152, 1152, 1152, 93, - 418, 418, 418, 419, 418, 1152, 1152, 1152, 856, 775, - - 776, 776, 776, 776, 776, 164, 775, 1152, 1152, 1152, - 775, 775, 778, 857, 1152, 1152, 1152, 1152, 780, 1152, - 1152, 165, 1152, 1152, 1152, 1152, 93, 164, 625, 625, - 625, 626, 625, 1152, 909, 909, 909, 909, 909, 1152, - 1152, 1152, 1152, 1152, 1152, 93, 910, 908, 1152, 1152, - 1152, 1152, 911, 1152, 808, 781, 858, 859, 776, 776, - 776, 859, 860, 858, 860, 860, 860, 858, 858, 861, - 862, 860, 860, 860, 860, 863, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 860, 860, 860, 860, - 864, 864, 864, 864, 864, 864, 860, 860, 860, 860, - - 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, - 860, 860, 865, 864, 864, 864, 864, 864, 860, 860, - 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, - 860, 860, 860, 860, 860, 860, 860, 783, 662, 662, - 784, 783, 1152, 526, 1152, 1152, 1152, 1152, 416, 416, - 416, 417, 416, 1152, 1152, 1152, 868, 868, 868, 868, - 868, 868, 868, 868, 868, 868, 1152, 1152, 1152, 1152, - 868, 868, 868, 868, 868, 868, 907, 907, 907, 1152, - 1152, 1045, 431, 431, 431, 432, 431, 1152, 1046, 1152, - 1152, 1152, 527, 868, 868, 868, 868, 868, 786, 665, - - 665, 787, 786, 93, 1152, 1152, 1152, 1152, 526, 1152, - 1152, 1152, 1152, 1152, 1152, 176, 1152, 869, 869, 869, - 869, 869, 869, 869, 869, 869, 869, 1152, 1152, 1152, - 1047, 869, 869, 869, 869, 869, 869, 177, 176, 575, - 575, 575, 576, 575, 158, 158, 158, 252, 158, 1152, - 1152, 1152, 1152, 529, 869, 869, 869, 869, 869, 871, - 873, 873, 873, 873, 873, 808, 871, 1152, 1152, 1152, - 871, 871, 874, 877, 1152, 827, 1152, 1152, 878, 1152, - 275, 1152, 1152, 873, 873, 873, 873, 873, 1119, 1119, - 1119, 1119, 1119, 1152, 276, 874, 872, 1152, 827, 276, - - 1131, 875, 1152, 275, 1152, 1152, 1132, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 879, 880, 881, 873, 873, - 873, 881, 882, 880, 882, 882, 882, 880, 880, 883, - 884, 882, 882, 882, 882, 885, 886, 886, 886, 886, - 886, 886, 886, 886, 886, 886, 882, 882, 882, 882, - 886, 886, 886, 886, 886, 886, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, - 882, 882, 887, 886, 886, 886, 886, 886, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 888, 889, 889, - - 889, 889, 889, 1152, 888, 1152, 1152, 1152, 888, 888, - 891, 672, 1152, 1152, 1152, 1152, 892, 158, 158, 158, - 252, 158, 439, 439, 439, 440, 439, 439, 439, 439, - 440, 439, 446, 446, 446, 447, 446, 446, 446, 446, - 447, 446, 457, 457, 457, 458, 457, 467, 467, 467, - 468, 467, 1152, 893, 668, 669, 669, 669, 669, 669, - 1152, 668, 1152, 1152, 1152, 668, 668, 671, 672, 1152, - 1152, 1152, 93, 673, 851, 851, 851, 93, 1152, 1017, - 1152, 1152, 93, 1152, 1152, 1152, 994, 93, 1152, 1152, - 1152, 1018, 93, 1152, 1152, 1152, 190, 191, 1152, 1152, - - 1152, 1152, 93, 469, 469, 469, 470, 469, 1152, 1152, - 674, 668, 669, 669, 669, 669, 669, 190, 668, 1152, - 1152, 1152, 668, 668, 671, 672, 1152, 1152, 1019, 1152, - 673, 467, 467, 467, 468, 467, 479, 479, 479, 480, - 479, 481, 481, 481, 482, 481, 483, 483, 483, 484, - 483, 1152, 493, 493, 493, 494, 493, 1152, 93, 158, - 158, 158, 252, 158, 1152, 1152, 1152, 674, 668, 669, - 669, 669, 669, 669, 1152, 668, 1152, 1152, 1152, 668, - 668, 671, 672, 1152, 1152, 1152, 93, 673, 210, 1152, - 1152, 93, 1152, 1152, 1152, 1152, 93, 775, 775, 775, - - 1152, 93, 993, 1152, 1152, 1152, 1152, 211, 1152, 994, - 1152, 210, 1152, 1152, 93, 1152, 553, 553, 553, 554, - 553, 1152, 1152, 1152, 674, 668, 669, 669, 669, 669, - 669, 1152, 668, 1152, 1152, 1152, 668, 668, 671, 672, - 1152, 1152, 1152, 1152, 673, 523, 523, 523, 523, 523, - 1152, 995, 942, 942, 942, 942, 942, 378, 658, 1152, - 1152, 1152, 1152, 524, 943, 941, 1152, 1152, 1152, 1152, - 944, 93, 575, 575, 575, 576, 575, 1152, 1152, 1152, - 1152, 674, 791, 792, 792, 792, 792, 792, 1152, 791, - 1152, 1152, 1152, 791, 791, 794, 672, 1152, 1152, 1152, - - 380, 795, 599, 599, 599, 600, 599, 1152, 275, 599, - 599, 599, 600, 599, 625, 625, 625, 626, 625, 705, - 705, 705, 706, 705, 907, 907, 907, 276, 1152, 1152, - 1152, 275, 1152, 1045, 1152, 1152, 1061, 1152, 796, 668, - 669, 669, 669, 669, 669, 1152, 668, 1152, 1152, 1152, - 668, 668, 671, 797, 1152, 1152, 1152, 93, 673, 909, - 909, 909, 909, 909, 93, 1152, 1152, 1152, 1152, 93, - 1152, 910, 908, 1152, 93, 1152, 1152, 911, 1062, 1152, - 1152, 783, 662, 662, 784, 783, 1152, 526, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 674, 668, 799, 799, 799, - - 894, 799, 1152, 668, 1152, 1152, 1152, 668, 668, 671, - 672, 1152, 1152, 1152, 1152, 673, 895, 895, 895, 895, - 895, 895, 895, 895, 895, 895, 1152, 1152, 1152, 1152, - 895, 895, 895, 895, 895, 895, 527, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 674, 895, 895, 895, 895, 895, 798, 799, - 669, 669, 669, 799, 800, 798, 800, 800, 800, 798, - 798, 801, 802, 800, 800, 800, 800, 803, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, 800, 800, - 800, 800, 804, 804, 804, 804, 804, 804, 800, 800, - - 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, - 800, 800, 800, 800, 805, 804, 804, 804, 804, 804, - 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, - 800, 800, 800, 800, 800, 800, 800, 800, 800, 532, - 532, 532, 675, 532, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 378, 1152, 1152, 1152, 1152, 1152, 524, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 1152, 1152, - 1152, 1152, 896, 896, 896, 896, 896, 896, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 380, 896, 896, 896, 896, 896, - - 158, 158, 158, 252, 158, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 808, - 808, 808, 808, 808, 808, 808, 898, 808, 808, 1152, - 851, 851, 851, 808, 808, 808, 808, 808, 808, 1017, - 1152, 1152, 997, 1152, 1152, 1152, 1152, 1025, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 93, 808, 808, 808, 808, - 808, 682, 682, 682, 682, 899, 682, 900, 682, 682, - 682, 1152, 1152, 1152, 1152, 682, 682, 682, 682, 682, - 682, 1152, 1152, 1152, 1026, 786, 665, 665, 787, 786, - 1152, 1152, 1152, 1152, 1152, 526, 1152, 1152, 682, 682, - - 682, 682, 682, 907, 909, 909, 909, 909, 909, 1152, - 907, 1152, 1152, 1152, 907, 907, 910, 913, 1152, 1152, - 1152, 1152, 914, 969, 969, 969, 969, 969, 1152, 1152, - 942, 942, 942, 942, 942, 970, 968, 1152, 1152, 1152, - 529, 971, 943, 941, 1152, 1152, 1152, 1152, 944, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 915, - 916, 917, 909, 909, 909, 917, 918, 916, 918, 918, - 918, 916, 916, 919, 920, 918, 918, 918, 918, 921, - 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, - 918, 918, 918, 918, 922, 922, 922, 922, 922, 922, - - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918, - 918, 918, 918, 918, 918, 918, 923, 922, 922, 922, - 922, 922, 918, 918, 918, 918, 918, 918, 918, 918, - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918, - 918, 924, 925, 925, 925, 925, 925, 1152, 924, 1152, - 1152, 1152, 924, 924, 927, 779, 1152, 1152, 1152, 1152, - 928, 969, 969, 969, 969, 969, 1152, 1152, 1013, 1013, - 1013, 1013, 1013, 970, 968, 1152, 1152, 1152, 1152, 971, - 1014, 849, 1152, 1152, 1152, 1152, 1015, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 929, 775, 776, - - 776, 776, 776, 776, 1152, 775, 1152, 1152, 1152, 775, - 775, 778, 779, 1152, 1152, 1152, 1152, 780, 532, 532, - 532, 675, 532, 1152, 1152, 1013, 1013, 1013, 1013, 1013, - 378, 1152, 1152, 1152, 1152, 1152, 524, 1014, 849, 1152, - 1152, 1152, 1152, 1015, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 781, 775, 776, 776, 776, 776, - 776, 1152, 775, 1152, 1152, 1152, 775, 775, 778, 779, - 1152, 1152, 1152, 380, 780, 1048, 1048, 1048, 1048, 1048, - 1018, 523, 523, 523, 1018, 1152, 526, 1049, 908, 851, - 851, 851, 1051, 1050, 1017, 775, 775, 775, 1052, 1152, - - 1152, 994, 1152, 1152, 993, 1152, 1018, 997, 1152, 1152, - 1152, 781, 775, 776, 776, 776, 776, 776, 1152, 775, - 1152, 1152, 1152, 775, 775, 778, 779, 1152, 1152, 1152, - 1152, 780, 907, 907, 907, 527, 1025, 523, 523, 523, - 1025, 1045, 1152, 1019, 1061, 1152, 526, 1152, 1063, 998, - 851, 851, 851, 1152, 1064, 1152, 1152, 1152, 1152, 1017, - 1152, 1152, 997, 1152, 1152, 1152, 1152, 1025, 781, 775, - 776, 776, 776, 776, 776, 1152, 775, 1152, 1152, 1152, - 775, 775, 778, 779, 1152, 1152, 1062, 1152, 780, 1152, - 1152, 529, 1152, 1074, 1074, 1074, 1074, 1074, 907, 907, - - 907, 1152, 1152, 1045, 1026, 1075, 1073, 851, 851, 851, - 1046, 1076, 1017, 1152, 1152, 1152, 1152, 1152, 1152, 1046, - 1152, 1152, 1152, 1152, 1018, 781, 851, 852, 852, 852, - 852, 852, 1152, 851, 1152, 1152, 1152, 851, 851, 854, - 779, 1152, 1152, 1152, 1152, 855, 1048, 1048, 1048, 1048, - 1048, 1152, 1047, 1048, 1048, 1048, 1048, 1048, 1049, 908, - 1152, 1019, 1152, 1152, 1050, 1049, 908, 907, 907, 907, - 1152, 1050, 1045, 1152, 1152, 1152, 1152, 1152, 1152, 1046, - 1152, 1152, 856, 775, 776, 776, 776, 776, 776, 1152, - 775, 1152, 1152, 1152, 775, 775, 778, 857, 1152, 1152, - - 1152, 1152, 780, 851, 851, 851, 1152, 1152, 1017, 1152, - 1152, 1152, 1152, 1152, 1152, 1046, 1152, 775, 775, 775, - 1018, 1047, 993, 1152, 1152, 1152, 1020, 775, 775, 994, - 1152, 993, 1152, 1152, 1152, 1152, 1152, 1152, 994, 781, - 775, 859, 859, 859, 930, 859, 1152, 775, 1152, 1152, - 1152, 775, 775, 778, 779, 1152, 1152, 1019, 1152, 780, - 931, 931, 931, 931, 931, 931, 931, 931, 931, 931, - 1152, 995, 1152, 1152, 931, 931, 931, 931, 931, 931, - 995, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 781, 931, 931, 931, - - 931, 931, 858, 859, 776, 776, 776, 859, 860, 858, - 860, 860, 860, 858, 858, 861, 862, 860, 860, 860, - 860, 863, 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 860, 860, 860, 860, 864, 864, 864, 864, - 864, 864, 860, 860, 860, 860, 860, 860, 860, 860, - 860, 860, 860, 860, 860, 860, 860, 860, 865, 864, - 864, 864, 864, 864, 860, 860, 860, 860, 860, 860, - 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, - 860, 860, 860, 783, 662, 662, 784, 783, 1152, 526, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 933, 933, 933, 933, 933, 933, 933, 933, - 933, 933, 1152, 1152, 1152, 1152, 933, 933, 933, 933, - 933, 933, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 527, 933, - 933, 933, 933, 933, 786, 665, 665, 787, 786, 1152, - 1152, 1152, 1152, 1152, 526, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 934, 934, 934, 934, 934, 934, 934, - 934, 934, 934, 1152, 851, 851, 851, 934, 934, 934, - 934, 934, 934, 1017, 1152, 1152, 1061, 1152, 1152, 1152, - 1152, 1025, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 529, - - 934, 934, 934, 934, 934, 871, 873, 873, 873, 873, - 873, 1152, 871, 1152, 1152, 1152, 871, 871, 874, 877, - 1152, 1152, 1152, 1152, 878, 907, 907, 907, 1026, 851, - 851, 851, 1152, 1152, 1045, 1152, 1152, 1061, 1017, 1152, - 1152, 1061, 775, 775, 775, 1152, 1025, 1027, 775, 775, - 1152, 993, 1152, 1152, 997, 1152, 993, 1152, 1152, 997, - 1152, 879, 791, 792, 792, 792, 792, 792, 1152, 791, - 1152, 1152, 1152, 791, 791, 794, 877, 1152, 1152, 1062, - 1152, 795, 1152, 1026, 1152, 1074, 1074, 1074, 1074, 1074, - 775, 775, 775, 1152, 1152, 993, 998, 1075, 1073, 1152, - - 1152, 998, 994, 1076, 907, 907, 907, 1152, 1152, 1045, - 1152, 1152, 1152, 1152, 1152, 1152, 1046, 1152, 796, 871, - 873, 873, 873, 873, 873, 1152, 871, 1152, 1152, 1152, - 871, 871, 874, 937, 1152, 1152, 1152, 1152, 878, 1097, - 1097, 1097, 1097, 1097, 995, 1152, 1152, 1152, 1152, 1152, - 1152, 1120, 867, 1152, 1152, 1152, 1152, 1121, 1047, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 879, 880, 881, 873, 873, - 873, 881, 882, 880, 882, 882, 882, 880, 880, 883, - 884, 882, 882, 882, 882, 885, 886, 886, 886, 886, - - 886, 886, 886, 886, 886, 886, 882, 882, 882, 882, - 886, 886, 886, 886, 886, 886, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, - 882, 882, 887, 886, 886, 886, 886, 886, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 871, 873, 873, - 873, 873, 873, 1152, 871, 1152, 1152, 1152, 871, 871, - 874, 877, 1152, 1152, 1152, 1152, 878, 1053, 907, 907, - 1152, 1152, 1045, 775, 775, 775, 1152, 1152, 1152, 1046, - 1152, 1152, 993, 1152, 1152, 997, 907, 907, 907, 1152, - - 1065, 907, 907, 1152, 1152, 1045, 1152, 1152, 1061, 1045, - 1152, 1152, 1061, 879, 871, 873, 873, 873, 873, 873, - 1152, 871, 1152, 1152, 1152, 871, 871, 874, 877, 1152, - 1152, 1047, 1152, 878, 1152, 1152, 1152, 998, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1062, 1152, 1152, 1152, 1062, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 879, 871, 873, 873, 873, 873, 873, 1152, 871, 1152, - 1152, 1152, 871, 871, 874, 877, 1152, 1152, 1152, 1152, - 878, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 879, 871, 873, - 873, 873, 873, 873, 1152, 871, 1152, 1152, 1152, 871, - 871, 874, 877, 1152, 1152, 1152, 1152, 878, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 879, 791, 792, 792, 792, 792, - 792, 1152, 791, 1152, 1152, 1152, 791, 791, 794, 877, - - 1152, 1152, 1152, 1152, 795, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 796, 871, 873, 873, 873, 873, 873, 1152, 871, - 1152, 1152, 1152, 871, 871, 874, 937, 1152, 1152, 1152, - 1152, 878, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 879, 871, - - 881, 881, 881, 938, 881, 1152, 871, 1152, 1152, 1152, - 871, 871, 874, 877, 1152, 1152, 1152, 1152, 878, 939, - 939, 939, 939, 939, 939, 939, 939, 939, 939, 1152, - 1152, 1152, 1152, 939, 939, 939, 939, 939, 939, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 879, 939, 939, 939, 939, - 939, 940, 942, 942, 942, 942, 942, 1152, 940, 1152, - 1152, 1152, 940, 940, 943, 946, 1152, 1152, 1152, 1152, - 947, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 948, 775, 935, - 935, 935, 935, 935, 1152, 949, 1152, 1152, 1152, 950, - 775, 778, 857, 1152, 1152, 1152, 1152, 951, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 781, 952, 953, 942, 942, 942, - 953, 954, 952, 954, 954, 954, 952, 952, 955, 956, - 954, 954, 954, 954, 957, 958, 958, 958, 958, 958, - - 958, 958, 958, 958, 958, 954, 954, 954, 954, 958, - 958, 958, 958, 958, 958, 954, 954, 954, 954, 954, - 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, - 954, 959, 958, 958, 958, 958, 958, 954, 954, 954, - 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, - 954, 954, 954, 954, 954, 954, 668, 669, 799, 669, - 669, 669, 1152, 668, 1152, 1152, 1152, 668, 668, 671, - 672, 1152, 1152, 1152, 1152, 673, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 674, 668, 799, 799, 799, 894, 799, 1152, - 668, 1152, 1152, 1152, 668, 668, 671, 672, 1152, 1152, - 1152, 1152, 673, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 1152, 1152, 1152, 1152, 960, 960, 960, - 960, 960, 960, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 674, - 960, 960, 960, 960, 960, 532, 532, 532, 675, 532, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 378, 1152, 1152, - 1152, 1152, 1152, 524, 961, 961, 961, 961, 961, 961, - - 961, 961, 961, 961, 1152, 1152, 1152, 1152, 961, 961, - 961, 961, 961, 961, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 380, 961, 961, 961, 961, 961, 158, 158, 158, 252, - 158, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 808, 808, 808, 808, 962, - 808, 808, 808, 808, 808, 1152, 1152, 1152, 1152, 808, - 808, 808, 808, 808, 808, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 93, 808, 808, 808, 808, 808, 907, 909, 909, - - 909, 909, 909, 1152, 907, 1152, 1152, 1152, 907, 907, - 910, 913, 1152, 1152, 1152, 1152, 914, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 915, 851, 852, 852, 852, 852, 852, - 1152, 851, 1152, 1152, 1152, 851, 851, 854, 913, 1152, - 1152, 1152, 1152, 855, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 856, 907, 909, 909, 909, 909, 909, 1152, 907, 1152, - 1152, 1152, 907, 907, 910, 964, 1152, 1152, 1152, 1152, - 914, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 915, 916, 917, - 909, 909, 909, 917, 918, 916, 918, 918, 918, 916, - 916, 919, 920, 918, 918, 918, 918, 921, 922, 922, - 922, 922, 922, 922, 922, 922, 922, 922, 918, 918, - - 918, 918, 922, 922, 922, 922, 922, 922, 918, 918, - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918, - 918, 918, 918, 918, 923, 922, 922, 922, 922, 922, - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918, - 918, 918, 918, 918, 918, 918, 918, 918, 918, 907, - 909, 909, 909, 909, 909, 1152, 907, 1152, 1152, 1152, - 907, 907, 910, 913, 1152, 1152, 1152, 1152, 914, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 915, 907, 909, 909, 909, - 909, 909, 1152, 907, 1152, 1152, 1152, 907, 907, 910, - 913, 1152, 1152, 1152, 1152, 914, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 915, 907, 909, 909, 909, 909, 909, 1152, - 907, 1152, 1152, 1152, 907, 907, 910, 913, 1152, 1152, - 1152, 1152, 914, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 915, - 907, 909, 909, 909, 909, 909, 1152, 907, 1152, 1152, - 1152, 907, 907, 910, 913, 1152, 1152, 1152, 1152, 914, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 915, 851, 852, 852, - 852, 852, 852, 1152, 851, 1152, 1152, 1152, 851, 851, - 854, 913, 1152, 1152, 1152, 1152, 855, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 856, 907, 909, 909, 909, 909, 909, - 1152, 907, 1152, 1152, 1152, 907, 907, 910, 964, 1152, - 1152, 1152, 1152, 914, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 915, 907, 917, 917, 917, 965, 917, 1152, 907, 1152, - - 1152, 1152, 907, 907, 910, 913, 1152, 1152, 1152, 1152, - 914, 966, 966, 966, 966, 966, 966, 966, 966, 966, - 966, 1152, 1152, 1152, 1152, 966, 966, 966, 966, 966, - 966, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 915, 966, 966, - 966, 966, 966, 967, 969, 969, 969, 969, 969, 1152, - 967, 1152, 1152, 1152, 967, 967, 970, 973, 1152, 1152, - 1152, 1152, 974, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 975, - 775, 776, 776, 776, 776, 776, 1152, 775, 1152, 1152, - 1152, 775, 775, 778, 857, 1152, 1152, 1152, 1152, 780, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 781, 976, 977, 969, - 969, 969, 977, 978, 976, 978, 978, 978, 976, 976, - 979, 980, 978, 978, 978, 978, 981, 982, 982, 982, - 982, 982, 982, 982, 982, 982, 982, 978, 978, 978, - - 978, 982, 982, 982, 982, 982, 982, 978, 978, 978, - 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, - 978, 978, 978, 983, 982, 982, 982, 982, 982, 978, - 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, - 978, 978, 978, 978, 978, 978, 978, 978, 775, 776, - 859, 776, 776, 776, 1152, 775, 1152, 1152, 1152, 775, - 775, 778, 779, 1152, 1152, 1152, 1152, 780, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 781, 775, 859, 859, 859, 930, - 859, 1152, 775, 1152, 1152, 1152, 775, 775, 778, 779, - 1152, 1152, 1152, 1152, 780, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 1152, 1152, 1152, 1152, 984, - 984, 984, 984, 984, 984, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 781, 984, 984, 984, 984, 984, 783, 662, 662, - 784, 783, 1152, 526, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 987, 987, 987, 987, - 987, 987, 987, 987, 987, 987, 1152, 1152, 1152, 1152, - - 987, 987, 987, 987, 987, 987, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 527, 987, 987, 987, 987, 987, 786, 665, - 665, 787, 786, 1152, 1152, 1152, 1152, 1152, 526, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 988, 988, 988, - 988, 988, 988, 988, 988, 988, 988, 1152, 1152, 1152, - 1152, 988, 988, 988, 988, 988, 988, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 529, 988, 988, 988, 988, 988, 775, - 935, 935, 935, 935, 935, 1152, 949, 1152, 1152, 1152, - - 950, 775, 778, 779, 1152, 1152, 1152, 1152, 951, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 781, 888, 889, 889, 889, - 889, 889, 1152, 888, 1152, 1152, 1152, 888, 888, 891, - 946, 1152, 1152, 1152, 1152, 892, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 893, 871, 873, 881, 873, 873, 873, 1152, - 871, 1152, 1152, 1152, 871, 871, 874, 877, 1152, 1152, - 1152, 1152, 878, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 879, - 871, 881, 881, 881, 938, 881, 1152, 871, 1152, 1152, - 1152, 871, 871, 874, 877, 1152, 1152, 1152, 1152, 878, - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 1152, 1152, 1152, 1152, 989, 989, 989, 989, 989, 989, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 879, 989, 989, 989, - 989, 989, 940, 942, 942, 942, 942, 942, 1152, 940, - 1152, 1152, 1152, 940, 940, 943, 946, 1152, 1152, 1152, - 1152, 947, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 948, 791, - 792, 792, 792, 792, 792, 1152, 791, 1152, 1152, 1152, - 791, 791, 794, 946, 1152, 1152, 1152, 1152, 795, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 796, 940, 942, 942, 942, - 942, 942, 1152, 940, 1152, 1152, 1152, 940, 940, 943, - 991, 1152, 1152, 1152, 1152, 947, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 948, 952, 953, 942, 942, 942, 953, 954, - - 952, 954, 954, 954, 952, 952, 955, 956, 954, 954, - 954, 954, 957, 958, 958, 958, 958, 958, 958, 958, - 958, 958, 958, 954, 954, 954, 954, 958, 958, 958, - 958, 958, 958, 954, 954, 954, 954, 954, 954, 954, - 954, 954, 954, 954, 954, 954, 954, 954, 954, 959, - 958, 958, 958, 958, 958, 954, 954, 954, 954, 954, - 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, - 954, 954, 954, 954, 775, 776, 776, 776, 776, 776, - 1152, 775, 1152, 1152, 1152, 775, 775, 778, 999, 1152, - 1152, 1152, 1152, 780, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 781, 940, 942, 942, 942, 942, 942, 1152, 940, 1152, - 1152, 1152, 940, 940, 943, 946, 1152, 1152, 1152, 1152, - 947, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 948, 940, 942, - 942, 942, 942, 942, 1152, 940, 1152, 1152, 1152, 940, - - 940, 943, 946, 1152, 1152, 1152, 1152, 947, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 948, 940, 942, 942, 942, 942, - 942, 1152, 940, 1152, 1152, 1152, 940, 940, 943, 946, - 1152, 1152, 1152, 1152, 947, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 948, 940, 942, 942, 942, 942, 942, 1152, 940, - 1152, 1152, 1152, 940, 940, 943, 946, 1152, 1152, 1152, - 1152, 947, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 948, 791, - 792, 792, 792, 792, 792, 1152, 791, 1152, 1152, 1152, - 791, 791, 794, 946, 1152, 1152, 1152, 1152, 795, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 796, 940, 942, 942, 942, - 942, 942, 1152, 940, 1152, 1152, 1152, 940, 940, 943, - 991, 1152, 1152, 1152, 1152, 947, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 948, 940, 953, 953, 953, 1000, 953, 1152, - 940, 1152, 1152, 1152, 940, 940, 943, 946, 1152, 1152, - 1152, 1152, 947, 1001, 1001, 1001, 1001, 1001, 1001, 1001, - - 1001, 1001, 1001, 1152, 1152, 1152, 1152, 1001, 1001, 1001, - 1001, 1001, 1001, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 948, - 1001, 1001, 1001, 1001, 1001, 668, 799, 799, 799, 894, - 799, 670, 668, 670, 670, 670, 668, 668, 671, 672, - 670, 670, 670, 670, 673, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 670, 670, 670, 670, 1002, - 1002, 1002, 1002, 1002, 1002, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 674, 1002, 1002, 1002, 1002, 1002, 670, 670, 670, - - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 532, 532, 532, 675, - 532, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 378, 1152, - 1152, 1152, 1152, 1152, 524, 1003, 1003, 1003, 1003, 1003, - 1003, 1003, 1003, 1003, 1003, 1152, 1152, 1152, 1152, 1003, - 1003, 1003, 1003, 1003, 1003, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 380, 1003, 1003, 1003, 1003, 1003, 924, 925, 925, - 925, 925, 925, 1152, 924, 1152, 1152, 1152, 924, 924, - 927, 973, 1152, 1152, 1152, 1152, 928, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 929, 907, 909, 917, 909, 909, 909, - 1152, 907, 1152, 1152, 1152, 907, 907, 910, 913, 1152, - 1152, 1152, 1152, 914, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 915, 907, 917, 917, 917, 965, 917, 1152, 907, 1152, - - 1152, 1152, 907, 907, 910, 913, 1152, 1152, 1152, 1152, - 914, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1152, 1152, 1152, 1152, 1004, 1004, 1004, 1004, 1004, - 1004, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 915, 1004, 1004, - 1004, 1004, 1004, 967, 969, 969, 969, 969, 969, 1152, - 967, 1152, 1152, 1152, 967, 967, 970, 973, 1152, 1152, - 1152, 1152, 974, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 975, - 851, 852, 852, 852, 852, 852, 1152, 851, 1152, 1152, - 1152, 851, 851, 854, 973, 1152, 1152, 1152, 1152, 855, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 856, 967, 969, 969, - 969, 969, 969, 1152, 967, 1152, 1152, 1152, 967, 967, - 970, 1006, 1152, 1152, 1152, 1152, 974, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 975, 976, 977, 969, 969, 969, 977, - 978, 976, 978, 978, 978, 976, 976, 979, 980, 978, - 978, 978, 978, 981, 982, 982, 982, 982, 982, 982, - 982, 982, 982, 982, 978, 978, 978, 978, 982, 982, - 982, 982, 982, 982, 978, 978, 978, 978, 978, 978, - 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, - 983, 982, 982, 982, 982, 982, 978, 978, 978, 978, - 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, - - 978, 978, 978, 978, 978, 967, 969, 969, 969, 969, - 969, 1152, 967, 1152, 1152, 1152, 967, 967, 970, 973, - 1152, 1152, 1152, 1152, 974, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 975, 967, 969, 969, 969, 969, 969, 1152, 967, - 1152, 1152, 1152, 967, 967, 970, 973, 1152, 1152, 1152, - 1152, 974, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 975, 967, - 969, 969, 969, 969, 969, 1152, 967, 1152, 1152, 1152, - 967, 967, 970, 973, 1152, 1152, 1152, 1152, 974, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 975, 967, 969, 969, 969, - 969, 969, 1152, 967, 1152, 1152, 1152, 967, 967, 970, - 973, 1152, 1152, 1152, 1152, 974, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 975, 851, 852, 852, 852, 852, 852, 1152, - 851, 1152, 1152, 1152, 851, 851, 854, 973, 1152, 1152, - 1152, 1152, 855, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 856, - 967, 969, 969, 969, 969, 969, 1152, 967, 1152, 1152, - - 1152, 967, 967, 970, 1006, 1152, 1152, 1152, 1152, 974, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 975, 967, 977, 977, - 977, 1007, 977, 1152, 967, 1152, 1152, 1152, 967, 967, - 970, 973, 1152, 1152, 1152, 1152, 974, 1008, 1008, 1008, - 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1152, 1152, 1152, - 1152, 1008, 1008, 1008, 1008, 1008, 1008, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 975, 1008, 1008, 1008, 1008, 1008, 775, - 859, 859, 859, 930, 859, 1152, 775, 1152, 1152, 1152, - 775, 775, 778, 779, 1152, 1152, 1152, 1152, 780, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1152, - 1152, 1152, 1152, 1009, 1009, 1009, 1009, 1009, 1009, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 781, 1009, 1009, 1009, 1009, - 1009, 783, 662, 662, 784, 783, 1152, 526, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, - - 1152, 1152, 1152, 1152, 1010, 1010, 1010, 1010, 1010, 1010, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 527, 1010, 1010, 1010, - 1010, 1010, 786, 665, 665, 787, 786, 1152, 1152, 1152, - 1152, 1152, 526, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, - 1011, 1152, 1152, 1152, 1152, 1011, 1011, 1011, 1011, 1011, - 1011, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 529, 1011, 1011, - 1011, 1011, 1011, 871, 881, 881, 881, 938, 881, 876, - - 871, 876, 876, 876, 871, 871, 874, 877, 876, 876, - 876, 876, 878, 1012, 1012, 1012, 1012, 1012, 1012, 1012, - 1012, 1012, 1012, 876, 876, 876, 876, 1012, 1012, 1012, - 1012, 1012, 1012, 876, 876, 876, 876, 876, 876, 876, - 876, 876, 876, 876, 876, 876, 876, 876, 876, 879, - 1012, 1012, 1012, 1012, 1012, 876, 876, 876, 876, 876, - 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, - 876, 876, 876, 876, 888, 889, 889, 889, 889, 889, - 1152, 888, 1152, 1152, 1152, 888, 888, 891, 946, 1152, - 1152, 1152, 1152, 892, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 893, 992, 992, 1021, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1022, 1152, 1152, 1152, 1152, 1152, 1023, - 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1152, - 1152, 1152, 1152, 1023, 1023, 1023, 1023, 1023, 1023, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1023, 1023, 1023, 1023, - 1023, 996, 996, 1028, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1029, 1152, 1152, 1152, 1152, 1152, 1030, - 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1152, - 1152, 1152, 1152, 1030, 1030, 1030, 1030, 1030, 1030, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1030, 1030, 1030, 1030, - 1030, 1031, 1032, 1032, 1032, 1032, 1032, 1152, 1031, 1152, - 1152, 1152, 1031, 1031, 1034, 672, 1152, 1152, 1152, 1152, - 1035, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1036, 940, 942, - 953, 942, 942, 942, 1152, 940, 1152, 1152, 1152, 940, - 940, 943, 946, 1152, 1152, 1152, 1152, 947, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 948, 940, 953, 953, 953, 1000, - 953, 1152, 940, 1152, 1152, 1152, 940, 940, 943, 946, - 1152, 1152, 1152, 1152, 947, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1152, 1152, 1152, 1152, 1037, - - 1037, 1037, 1037, 1037, 1037, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 948, 1037, 1037, 1037, 1037, 1037, 668, 799, 799, - 799, 894, 799, 670, 668, 670, 670, 670, 668, 668, - 671, 672, 670, 670, 670, 670, 673, 1038, 1038, 1038, - 1038, 1038, 1038, 1038, 1038, 1038, 1038, 670, 670, 670, - 670, 1038, 1038, 1038, 1038, 1038, 1038, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 674, 1038, 1038, 1038, 1038, 1038, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - - 670, 670, 670, 670, 670, 670, 670, 670, 907, 917, - 917, 917, 965, 917, 912, 907, 912, 912, 912, 907, - 907, 910, 913, 912, 912, 912, 912, 914, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 912, 912, - 912, 912, 1039, 1039, 1039, 1039, 1039, 1039, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 915, 1039, 1039, 1039, 1039, 1039, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 924, - 925, 925, 925, 925, 925, 1152, 924, 1152, 1152, 1152, - - 924, 924, 927, 973, 1152, 1152, 1152, 1152, 928, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 929, 967, 969, 977, 969, - 969, 969, 1152, 967, 1152, 1152, 1152, 967, 967, 970, - 973, 1152, 1152, 1152, 1152, 974, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 975, 967, 977, 977, 977, 1007, 977, 1152, - 967, 1152, 1152, 1152, 967, 967, 970, 973, 1152, 1152, - 1152, 1152, 974, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1152, 1152, 1152, 1152, 1040, 1040, 1040, - 1040, 1040, 1040, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 975, - 1040, 1040, 1040, 1040, 1040, 775, 859, 859, 859, 930, - 859, 777, 775, 777, 777, 777, 775, 775, 778, 779, - 777, 777, 777, 777, 780, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 777, 777, 777, 777, 1041, - - 1041, 1041, 1041, 1041, 1041, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 781, 1041, 1041, 1041, 1041, 1041, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1152, 1152, 1152, 1152, - 1042, 1042, 1042, 1042, 1042, 1042, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1042, 1042, 1042, 1042, 1042, 1044, 1044, - 1054, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1055, 1152, 1152, 1152, 1152, 1152, 1056, 1056, 1056, 1056, - 1056, 1056, 1056, 1056, 1056, 1056, 1152, 1152, 1152, 1152, - 1056, 1056, 1056, 1056, 1056, 1056, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1056, 1056, 1056, 1056, 1056, 1057, 1020, - 1020, 1058, 1057, 1152, 993, 1152, 1152, 1152, 1152, 1152, - 1152, 994, 1152, 1152, 1152, 1152, 1152, 1059, 1059, 1059, - 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1152, 1152, 1152, - 1152, 1059, 1059, 1059, 1059, 1059, 1059, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 995, 1059, 1059, 1059, 1059, 1059, 1060, - 1060, 1066, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1067, 1152, 1152, 1152, 1152, 1152, 1068, 1068, 1068, - 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1152, 1152, 1152, - 1152, 1068, 1068, 1068, 1068, 1068, 1068, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1068, 1068, 1068, 1068, 1068, 1069, - 1027, 1027, 1070, 1069, 1152, 1152, 1152, 1152, 1152, 993, - 1152, 1152, 997, 1152, 1152, 1152, 1152, 1152, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1152, 1152, - - 1152, 1152, 1071, 1071, 1071, 1071, 1071, 1071, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 998, 1071, 1071, 1071, 1071, 1071, - 1072, 1074, 1074, 1074, 1074, 1074, 1152, 1072, 1152, 1152, - 1152, 1072, 1072, 1075, 1078, 1152, 1152, 1152, 1152, 1079, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1080, 668, 669, 669, - 669, 669, 669, 1152, 668, 1152, 1152, 1152, 668, 668, - - 671, 797, 1152, 1152, 1152, 1152, 673, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 674, 1081, 1082, 1074, 1074, 1074, 1082, - 1083, 1081, 1083, 1083, 1083, 1081, 1081, 1084, 1085, 1083, - 1083, 1083, 1083, 1086, 1087, 1087, 1087, 1087, 1087, 1087, - 1087, 1087, 1087, 1087, 1083, 1083, 1083, 1083, 1087, 1087, - 1087, 1087, 1087, 1087, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - - 1088, 1087, 1087, 1087, 1087, 1087, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 940, 953, 953, 953, 1000, - 953, 945, 940, 945, 945, 945, 940, 940, 943, 946, - 945, 945, 945, 945, 947, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1089, 945, 945, 945, 945, 1089, - 1089, 1089, 1089, 1089, 1089, 945, 945, 945, 945, 945, - 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, - 945, 948, 1089, 1089, 1089, 1089, 1089, 945, 945, 945, - 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, - - 945, 945, 945, 945, 945, 945, 668, 799, 799, 799, - 894, 799, 1152, 668, 1152, 1152, 1152, 668, 668, 671, - 672, 1152, 1152, 1152, 1152, 673, 1090, 1090, 1090, 1090, - 1090, 1090, 1090, 1090, 1090, 1090, 1152, 1152, 1152, 1152, - 1090, 1090, 1090, 1090, 1090, 1090, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 674, 1090, 1090, 1090, 1090, 1090, 907, 917, - 917, 917, 965, 917, 912, 907, 912, 912, 912, 907, - 907, 910, 913, 912, 912, 912, 912, 914, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 912, 912, - - 912, 912, 1091, 1091, 1091, 1091, 1091, 1091, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 915, 1091, 1091, 1091, 1091, 1091, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 967, - 977, 977, 977, 1007, 977, 972, 967, 972, 972, 972, - 967, 967, 970, 973, 972, 972, 972, 972, 974, 1092, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 972, - 972, 972, 972, 1092, 1092, 1092, 1092, 1092, 1092, 972, - 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, - - 972, 972, 972, 972, 972, 975, 1092, 1092, 1092, 1092, - 1092, 972, 972, 972, 972, 972, 972, 972, 972, 972, - 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, - 775, 859, 859, 859, 930, 859, 777, 775, 777, 777, - 777, 775, 775, 778, 779, 777, 777, 777, 777, 780, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 777, 777, 777, 777, 1093, 1093, 1093, 1093, 1093, 1093, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 781, 1093, 1093, 1093, - 1093, 1093, 777, 777, 777, 777, 777, 777, 777, 777, - - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, - 1094, 1152, 1152, 1152, 1152, 1094, 1094, 1094, 1094, 1094, - 1094, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1094, 1094, - 1094, 1094, 1094, 1044, 1044, 1054, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1055, 1152, 1152, 1152, 1152, - 1152, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, - 1056, 1152, 1152, 1152, 1152, 1056, 1056, 1056, 1056, 1056, - 1056, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1056, 1056, - 1056, 1056, 1056, 1100, 1053, 1053, 1101, 1100, 1152, 1045, - 1152, 1152, 1152, 1152, 1152, 1152, 1046, 1152, 1152, 1152, - 1152, 1152, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, - 1102, 1102, 1152, 1152, 1152, 1152, 1102, 1102, 1102, 1102, - 1102, 1102, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1047, 1102, - 1102, 1102, 1102, 1102, 1057, 1020, 1020, 1058, 1057, 1152, - 993, 1152, 1152, 1152, 1152, 1152, 1152, 994, 1152, 1152, - 1152, 1152, 1152, 1103, 1103, 1103, 1103, 1103, 1103, 1103, - - 1103, 1103, 1103, 1152, 1152, 1152, 1152, 1103, 1103, 1103, - 1103, 1103, 1103, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 995, - 1103, 1103, 1103, 1103, 1103, 1060, 1060, 1066, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1067, 1152, 1152, - 1152, 1152, 1152, 1068, 1068, 1068, 1068, 1068, 1068, 1068, - 1068, 1068, 1068, 1152, 1152, 1152, 1152, 1068, 1068, 1068, - 1068, 1068, 1068, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1068, 1068, 1068, 1068, 1068, 1105, 1065, 1065, 1106, 1105, - - 1152, 1152, 1152, 1152, 1152, 1045, 1152, 1152, 1061, 1152, - 1152, 1152, 1152, 1152, 1107, 1107, 1107, 1107, 1107, 1107, - 1107, 1107, 1107, 1107, 1152, 1152, 1152, 1152, 1107, 1107, - 1107, 1107, 1107, 1107, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1062, 1107, 1107, 1107, 1107, 1107, 1069, 1027, 1027, 1070, - 1069, 1152, 1152, 1152, 1152, 1152, 993, 1152, 1152, 997, - 1152, 1152, 1152, 1152, 1152, 1108, 1108, 1108, 1108, 1108, - 1108, 1108, 1108, 1108, 1108, 1152, 1152, 1152, 1152, 1108, - 1108, 1108, 1108, 1108, 1108, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 998, 1108, 1108, 1108, 1108, 1108, 1072, 1074, 1074, - 1074, 1074, 1074, 1152, 1072, 1152, 1152, 1152, 1072, 1072, - 1075, 1078, 1152, 1152, 1152, 1152, 1079, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1080, 791, 792, 792, 792, 792, 792, - 1152, 791, 1152, 1152, 1152, 791, 791, 794, 1078, 1152, - 1152, 1152, 1152, 795, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 796, 1072, 1074, 1074, 1074, 1074, 1074, 1152, 1072, 1152, - 1152, 1152, 1072, 1072, 1075, 1110, 1152, 1152, 1152, 1152, - 1079, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1080, 1081, 1082, - 1074, 1074, 1074, 1082, 1083, 1081, 1083, 1083, 1083, 1081, - - 1081, 1084, 1085, 1083, 1083, 1083, 1083, 1086, 1087, 1087, - 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1083, 1083, - 1083, 1083, 1087, 1087, 1087, 1087, 1087, 1087, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1088, 1087, 1087, 1087, 1087, 1087, + 100, 24, 1086, 93, 66, 102, 101, 28, 28, 1086, + 65, 161, 34, 94, 65, 75, 89, 76, 154, 174, + 167, 280, 100, 295, 25, 93, 66, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 106, 26, 28, + 104, 68, 68, 68, 68, 68, 68, 25, 1057, 105, + + 34, 97, 107, 108, 115, 29, 138, 1078, 109, 98, + 106, 99, 104, 110, 68, 68, 68, 68, 68, 68, + 27, 27, 79, 97, 134, 108, 116, 115, 139, 138, + 109, 98, 34, 158, 135, 159, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 134, 136, 63, 155, + 80, 80, 80, 80, 80, 80, 156, 277, 27, 33, + 63, 299, 328, 28, 174, 137, 1078, 329, 28, 330, + 136, 155, 1024, 80, 80, 80, 80, 80, 80, 83, + 83, 83, 83, 83, 83, 83, 83, 83, 83, 111, + 65, 150, 104, 83, 83, 83, 83, 83, 83, 65, + + 157, 105, 65, 1055, 158, 112, 159, 113, 193, 114, + 29, 34, 111, 150, 104, 72, 83, 83, 83, 83, + 83, 83, 33, 33, 85, 73, 160, 112, 100, 113, + 194, 193, 364, 1055, 101, 181, 365, 72, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 160, 67, + 100, 182, 86, 86, 86, 86, 86, 86, 181, 63, + 364, 1052, 1052, 28, 365, 183, 203, 1051, 640, 184, + 204, 185, 205, 1051, 1048, 86, 86, 86, 86, 86, + 86, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 175, 175, 206, 115, 68, 68, 68, 68, 68, + + 68, 65, 234, 1048, 207, 208, 234, 234, 234, 234, + 29, 643, 1043, 175, 175, 206, 116, 115, 68, 68, + 68, 68, 68, 68, 117, 117, 207, 1043, 950, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 118, 119, 119, 119, 120, 121, 122, 123, + 119, 119, 117, 117, 117, 117, 119, 119, 119, 119, + 119, 119, 124, 125, 126, 117, 127, 117, 128, 117, + 117, 129, 130, 131, 117, 117, 117, 117, 117, 119, + 119, 119, 119, 119, 119, 124, 125, 126, 127, 117, + 128, 117, 117, 129, 130, 131, 117, 117, 117, 117, + + 117, 117, 117, 140, 227, 1018, 254, 141, 142, 143, + 144, 262, 843, 255, 844, 263, 288, 264, 229, 102, + 103, 417, 230, 228, 231, 145, 265, 227, 254, 146, + 106, 247, 147, 248, 249, 234, 234, 234, 234, 288, + 1018, 102, 266, 417, 175, 107, 267, 1016, 145, 265, + 268, 146, 269, 106, 147, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 1014, 175, 289, 260, 149, + 149, 149, 149, 149, 149, 458, 287, 1014, 280, 186, + 158, 271, 159, 187, 188, 189, 190, 261, 111, 272, + 289, 260, 149, 149, 149, 149, 149, 149, 67, 67, + + 67, 151, 67, 155, 112, 191, 113, 640, 114, 63, + 156, 111, 272, 192, 138, 152, 152, 152, 152, 152, + 152, 152, 152, 152, 152, 155, 112, 191, 113, 152, + 152, 152, 152, 152, 152, 192, 139, 138, 563, 199, + 1013, 281, 564, 176, 200, 176, 201, 117, 640, 282, + 643, 65, 152, 152, 152, 152, 152, 152, 163, 78, + 78, 164, 163, 281, 28, 175, 247, 1013, 248, 249, + 234, 234, 234, 234, 202, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 473, 305, 175, 295, 165, + 165, 165, 165, 165, 165, 641, 202, 256, 1008, 92, + + 270, 257, 271, 258, 141, 142, 143, 144, 136, 305, + 274, 29, 165, 165, 165, 165, 165, 165, 82, 82, + 82, 168, 82, 259, 290, 306, 137, 851, 75, 852, + 76, 136, 1008, 274, 1102, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 259, 134, 320, 306, 169, + 169, 169, 169, 169, 169, 283, 135, 302, 1006, 1006, + 284, 303, 285, 304, 78, 871, 1004, 872, 134, 28, + 320, 32, 169, 169, 169, 169, 169, 169, 170, 84, + 84, 171, 170, 311, 286, 322, 315, 312, 28, 313, + 316, 317, 318, 319, 175, 172, 172, 172, 172, 172, + + 172, 172, 172, 172, 172, 82, 286, 640, 322, 172, + 172, 172, 172, 172, 172, 325, 29, 193, 332, 326, + 1102, 327, 195, 333, 335, 334, 176, 196, 176, 197, + 323, 34, 172, 172, 172, 172, 172, 172, 119, 194, + 193, 175, 119, 119, 119, 119, 92, 335, 175, 324, + 643, 108, 198, 323, 336, 1004, 109, 32, 117, 117, + 117, 110, 117, 175, 117, 340, 84, 117, 117, 117, + 175, 993, 563, 108, 198, 28, 564, 336, 109, 341, + 355, 117, 117, 117, 117, 876, 117, 877, 340, 117, + 117, 117, 176, 176, 176, 176, 176, 176, 176, 176, + + 176, 176, 341, 355, 357, 425, 176, 176, 176, 176, + 176, 176, 993, 291, 291, 291, 292, 291, 34, 337, + 346, 992, 426, 338, 347, 339, 348, 357, 425, 176, + 176, 176, 176, 176, 176, 177, 176, 176, 176, 178, + 176, 179, 176, 176, 176, 426, 640, 992, 92, 176, + 176, 176, 176, 176, 176, 744, 72, 427, 209, 745, + 989, 180, 210, 213, 211, 989, 73, 214, 215, 216, + 217, 428, 176, 176, 176, 176, 176, 176, 72, 212, + 427, 220, 434, 180, 175, 221, 222, 223, 224, 218, + 207, 208, 350, 641, 219, 418, 351, 352, 353, 354, + + 435, 281, 212, 419, 307, 434, 175, 175, 308, 282, + 309, 218, 207, 225, 358, 226, 219, 418, 359, 360, + 361, 362, 369, 281, 310, 984, 370, 366, 371, 175, + 175, 367, 744, 368, 984, 225, 745, 226, 117, 117, + 117, 232, 117, 480, 374, 481, 982, 310, 374, 374, + 374, 374, 175, 175, 499, 233, 234, 234, 234, 235, + 236, 237, 238, 234, 234, 880, 480, 881, 481, 234, + 234, 234, 234, 234, 234, 175, 424, 499, 254, 420, + 257, 415, 258, 342, 421, 255, 422, 176, 343, 176, + 344, 92, 234, 234, 234, 234, 234, 234, 234, 982, + + 254, 239, 240, 241, 234, 242, 243, 244, 423, 175, + 429, 501, 523, 245, 430, 246, 431, 387, 345, 388, + 389, 374, 374, 374, 374, 399, 399, 399, 400, 399, + 423, 175, 981, 92, 501, 523, 245, 482, 246, 234, + 345, 524, 239, 240, 241, 234, 242, 243, 244, 482, + 482, 482, 483, 482, 250, 387, 251, 388, 389, 374, + 374, 374, 374, 432, 524, 148, 465, 263, 91, 264, + 440, 284, 100, 285, 268, 63, 269, 250, 101, 251, + 148, 148, 148, 275, 148, 981, 459, 436, 971, 92, + 91, 437, 460, 438, 100, 530, 971, 276, 276, 276, + + 276, 276, 276, 276, 276, 276, 276, 439, 459, 531, + 537, 276, 276, 276, 276, 276, 276, 65, 530, 415, + 415, 415, 416, 415, 889, 461, 890, 944, 538, 462, + 439, 463, 531, 537, 276, 276, 276, 276, 276, 276, + 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, + 374, 538, 944, 464, 278, 278, 278, 278, 278, 278, + 442, 910, 938, 911, 141, 142, 143, 144, 640, 938, + 467, 550, 92, 374, 158, 464, 159, 278, 278, 278, + 278, 278, 278, 293, 293, 293, 293, 293, 293, 293, + 293, 293, 293, 912, 550, 291, 605, 293, 293, 293, + + 293, 293, 293, 912, 445, 445, 445, 446, 445, 470, + 477, 643, 513, 75, 478, 76, 479, 514, 605, 515, + 293, 293, 293, 293, 293, 293, 296, 296, 296, 296, + 296, 296, 296, 296, 296, 296, 72, 72, 552, 136, + 296, 296, 296, 296, 296, 296, 73, 73, 92, 257, + 502, 258, 397, 397, 397, 398, 397, 137, 72, 72, + 932, 552, 136, 296, 296, 296, 296, 296, 296, 297, + 297, 297, 297, 297, 297, 297, 297, 297, 297, 102, + 103, 909, 932, 297, 297, 297, 297, 297, 297, 482, + 482, 482, 483, 482, 640, 97, 403, 403, 403, 404, + + 403, 102, 92, 98, 106, 99, 297, 297, 297, 297, + 297, 297, 175, 175, 175, 300, 175, 97, 484, 107, + 909, 520, 485, 903, 486, 98, 521, 106, 522, 301, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 91, + 104, 641, 93, 301, 301, 301, 301, 301, 301, 105, + 903, 640, 94, 447, 447, 447, 448, 447, 897, 488, + 115, 91, 104, 489, 93, 490, 301, 301, 301, 301, + 301, 301, 373, 374, 374, 374, 375, 376, 377, 378, + 374, 374, 116, 115, 138, 659, 374, 374, 374, 374, + 374, 374, 394, 394, 394, 395, 394, 263, 641, 264, + + 504, 443, 443, 443, 444, 443, 139, 138, 659, 374, + 374, 374, 374, 374, 374, 374, 525, 532, 379, 380, + 381, 374, 382, 383, 384, 509, 897, 396, 660, 510, + 385, 511, 386, 891, 891, 91, 155, 401, 401, 401, + 402, 401, 494, 156, 134, 96, 495, 496, 497, 498, + 396, 660, 92, 385, 135, 386, 374, 91, 155, 379, + 380, 381, 374, 382, 383, 384, 134, 92, 92, 92, + 104, 390, 672, 391, 405, 405, 405, 406, 405, 105, + 91, 407, 407, 407, 408, 407, 401, 527, 873, 102, + 103, 528, 104, 529, 390, 672, 391, 392, 392, 392, + + 393, 392, 91, 873, 407, 407, 407, 408, 407, 539, + 673, 102, 106, 540, 374, 541, 553, 91, 374, 374, + 374, 374, 506, 870, 108, 534, 507, 107, 508, 109, + 535, 870, 536, 673, 110, 106, 555, 102, 103, 91, + 93, 405, 405, 405, 406, 405, 108, 108, 175, 545, + 94, 109, 109, 546, 547, 548, 549, 110, 923, 102, + 924, 925, 93, 409, 409, 409, 410, 409, 92, 108, + 175, 557, 374, 864, 109, 558, 559, 560, 561, 106, + 468, 468, 468, 469, 468, 268, 864, 269, 92, 445, + 445, 445, 446, 445, 107, 374, 411, 450, 450, 450, + + 450, 450, 106, 452, 571, 565, 91, 453, 572, 454, + 573, 575, 112, 97, 113, 576, 114, 577, 904, 411, + 859, 98, 905, 99, 136, 583, 155, 859, 91, 583, + 583, 583, 583, 156, 112, 97, 113, 412, 412, 412, + 413, 412, 137, 98, 284, 100, 285, 136, 155, 614, + 455, 101, 904, 257, 374, 258, 905, 92, 374, 374, + 374, 374, 502, 502, 502, 503, 502, 100, 414, 23, + 23, 23, 23, 23, 504, 504, 504, 505, 504, 502, + 502, 502, 503, 502, 689, 24, 757, 757, 757, 757, + 116, 414, 148, 148, 148, 275, 148, 525, 525, 525, + + 526, 525, 525, 525, 525, 526, 525, 689, 25, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 853, + 853, 418, 26, 449, 449, 449, 449, 449, 449, 419, + 92, 25, 468, 468, 468, 469, 468, 532, 532, 532, + 533, 532, 617, 418, 850, 850, 449, 449, 449, 449, + 449, 449, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 834, 181, 618, 617, 456, 456, 456, 456, + 456, 456, 532, 532, 532, 533, 532, 834, 155, 182, + 517, 517, 517, 518, 517, 156, 181, 803, 803, 456, + 456, 456, 456, 456, 456, 553, 553, 553, 554, 553, + + 155, 471, 471, 471, 471, 471, 471, 471, 471, 471, + 471, 519, 797, 138, 691, 471, 471, 471, 471, 471, + 471, 797, 755, 543, 543, 543, 544, 543, 555, 555, + 555, 556, 555, 194, 519, 139, 138, 691, 471, 471, + 471, 471, 471, 471, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 755, 193, 95, 712, 474, 474, + 474, 474, 474, 474, 553, 553, 553, 554, 553, 565, + 565, 565, 566, 565, 96, 207, 208, 194, 193, 95, + 712, 474, 474, 474, 474, 474, 474, 475, 475, 475, + 475, 475, 475, 475, 475, 475, 475, 207, 979, 749, + + 980, 475, 475, 475, 475, 475, 475, 567, 567, 567, + 568, 567, 749, 492, 492, 492, 493, 492, 569, 569, + 569, 570, 569, 392, 475, 475, 475, 475, 475, 475, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 923, 713, 924, 925, 476, 476, 476, 476, 476, 476, + 181, 579, 579, 579, 580, 579, 596, 92, 597, 598, + 583, 583, 583, 583, 713, 93, 182, 476, 476, 476, + 476, 476, 476, 181, 596, 94, 597, 598, 583, 583, + 583, 583, 111, 567, 652, 581, 92, 93, 653, 92, + 415, 415, 415, 416, 415, 623, 743, 606, 112, 430, + + 113, 431, 114, 607, 228, 111, 652, 743, 581, 582, + 583, 583, 583, 584, 585, 586, 587, 583, 583, 606, + 112, 583, 113, 583, 583, 583, 583, 583, 583, 394, + 394, 394, 395, 394, 990, 92, 991, 92, 397, 397, + 397, 398, 397, 92, 583, 92, 583, 583, 583, 583, + 583, 583, 583, 736, 736, 588, 589, 590, 583, 591, + 592, 593, 1009, 612, 601, 717, 1010, 594, 421, 595, + 422, 394, 91, 399, 399, 399, 399, 400, 399, 583, + 397, 97, 96, 583, 583, 583, 583, 601, 717, 98, + 594, 99, 595, 583, 91, 729, 588, 589, 590, 583, + + 591, 592, 593, 97, 281, 95, 718, 1000, 599, 1001, + 600, 98, 282, 405, 608, 729, 92, 91, 609, 100, + 610, 100, 97, 96, 403, 101, 281, 101, 95, 718, + 98, 599, 99, 600, 392, 392, 392, 393, 392, 91, + 569, 100, 611, 100, 97, 401, 401, 401, 402, 401, + 106, 583, 98, 207, 208, 583, 583, 583, 583, 403, + 403, 403, 404, 403, 611, 107, 92, 104, 405, 405, + 405, 406, 405, 106, 678, 207, 105, 93, 459, 407, + 407, 407, 408, 407, 460, 706, 108, 94, 91, 104, + 412, 109, 92, 1011, 706, 1012, 110, 102, 103, 93, + + 459, 625, 91, 104, 492, 263, 106, 264, 108, 543, + 91, 91, 105, 109, 407, 407, 407, 408, 407, 102, + 115, 107, 108, 661, 91, 104, 92, 109, 284, 106, + 285, 699, 110, 91, 405, 405, 405, 406, 405, 699, + 181, 583, 116, 115, 108, 583, 583, 583, 583, 109, + 409, 409, 409, 410, 409, 722, 182, 108, 604, 409, + 207, 208, 109, 181, 628, 583, 407, 110, 629, 583, + 630, 723, 106, 583, 583, 583, 583, 228, 722, 108, + 724, 604, 207, 602, 109, 695, 631, 107, 583, 181, + 437, 111, 438, 91, 723, 106, 735, 695, 619, 112, + + 134, 113, 620, 114, 621, 182, 602, 112, 108, 113, + 135, 114, 181, 109, 111, 91, 92, 92, 110, 735, + 622, 112, 134, 113, 412, 412, 412, 413, 412, 112, + 108, 113, 92, 690, 690, 109, 615, 615, 615, 616, + 615, 583, 445, 622, 434, 583, 583, 583, 583, 615, + 615, 615, 616, 615, 443, 603, 626, 626, 626, 627, + 626, 683, 435, 447, 633, 737, 683, 434, 268, 136, + 269, 634, 634, 634, 635, 634, 136, 116, 603, 636, + 677, 677, 254, 141, 142, 143, 144, 137, 737, 255, + 260, 92, 136, 138, 137, 254, 134, 658, 473, 136, + + 703, 462, 255, 463, 254, 704, 135, 705, 265, 261, + 421, 458, 422, 260, 654, 139, 138, 254, 134, 655, + 632, 656, 664, 669, 266, 632, 158, 670, 159, 671, + 517, 265, 637, 637, 637, 637, 637, 637, 637, 637, + 637, 637, 779, 468, 657, 787, 637, 637, 637, 637, + 637, 637, 450, 450, 450, 450, 450, 674, 452, 624, + 193, 675, 453, 676, 454, 779, 657, 624, 787, 637, + 637, 637, 637, 637, 637, 638, 638, 638, 638, 638, + 680, 1102, 194, 193, 681, 1102, 682, 454, 155, 482, + 482, 482, 483, 482, 613, 156, 482, 482, 482, 483, + + 482, 613, 684, 788, 845, 455, 685, 686, 687, 688, + 155, 678, 678, 678, 679, 678, 502, 502, 502, 503, + 502, 504, 504, 504, 505, 504, 788, 845, 455, 644, + 645, 646, 646, 646, 645, 647, 644, 647, 647, 647, + 644, 644, 648, 647, 647, 647, 647, 649, 649, 649, + 649, 649, 649, 649, 649, 649, 649, 647, 647, 647, + 647, 649, 649, 649, 649, 649, 649, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 650, 649, 649, 649, 649, 649, 649, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + + 647, 647, 647, 647, 647, 647, 647, 647, 67, 67, + 67, 151, 67, 92, 578, 662, 662, 662, 663, 662, + 492, 492, 492, 493, 492, 651, 651, 651, 651, 651, + 651, 651, 651, 651, 651, 757, 757, 757, 757, 651, + 651, 651, 651, 651, 651, 502, 502, 502, 503, 502, + 692, 708, 578, 574, 693, 696, 694, 181, 574, 697, + 281, 698, 651, 651, 651, 651, 651, 651, 282, 562, + 324, 709, 562, 182, 708, 714, 710, 551, 711, 715, + 181, 716, 281, 163, 78, 78, 164, 163, 551, 28, + 525, 525, 525, 526, 525, 700, 700, 700, 701, 700, + + 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, + 757, 757, 757, 757, 665, 665, 665, 665, 665, 665, + 525, 525, 525, 526, 525, 430, 542, 431, 254, 702, + 532, 532, 532, 533, 532, 255, 29, 665, 665, 665, + 665, 665, 665, 82, 82, 82, 168, 82, 324, 719, + 254, 780, 702, 542, 720, 781, 721, 30, 92, 516, + 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, + 437, 516, 438, 780, 666, 666, 666, 666, 666, 666, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 32, 666, 666, 666, + + 666, 666, 666, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 512, 617, + 30, 667, 667, 667, 667, 667, 667, 667, 667, 667, + 667, 141, 142, 143, 144, 667, 667, 667, 667, 667, + 667, 618, 617, 517, 517, 517, 518, 517, 532, 532, + 532, 533, 532, 724, 724, 724, 725, 724, 667, 667, + 667, 667, 667, 667, 668, 668, 668, 668, 668, 668, + 668, 668, 668, 668, 707, 462, 265, 463, 668, 668, + 668, 668, 668, 668, 724, 724, 724, 725, 724, 726, + 512, 827, 266, 727, 746, 728, 194, 707, 747, 265, + + 748, 668, 668, 668, 668, 668, 668, 543, 543, 543, + 544, 543, 730, 828, 827, 846, 731, 732, 733, 734, + 553, 553, 553, 554, 553, 555, 555, 555, 556, 555, + 553, 553, 553, 554, 553, 738, 579, 750, 846, 739, + 740, 741, 742, 565, 565, 565, 566, 565, 567, 567, + 567, 568, 567, 569, 569, 569, 570, 569, 92, 207, + 208, 750, 750, 750, 751, 750, 752, 227, 500, 227, + 753, 500, 754, 579, 579, 579, 580, 579, 786, 1009, + 789, 207, 609, 1010, 610, 421, 228, 422, 228, 92, + 227, 770, 227, 771, 772, 757, 757, 757, 757, 770, + + 491, 771, 772, 757, 757, 757, 757, 756, 792, 793, + 642, 833, 257, 794, 258, 795, 655, 491, 656, 640, + 415, 415, 415, 416, 415, 1049, 228, 1050, 92, 487, + 756, 757, 757, 757, 757, 758, 759, 760, 761, 757, + 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, + 757, 762, 763, 764, 757, 765, 766, 767, 757, 757, + 757, 757, 643, 768, 487, 769, 615, 299, 757, 757, + 757, 757, 757, 757, 181, 762, 763, 764, 757, 765, + 766, 767, 854, 855, 856, 857, 768, 773, 769, 774, + 182, 757, 757, 757, 757, 782, 858, 181, 473, 606, + + 783, 838, 784, 796, 778, 607, 284, 620, 285, 621, + 773, 254, 774, 392, 392, 392, 393, 392, 255, 858, + 798, 606, 466, 228, 430, 785, 431, 778, 482, 482, + 482, 483, 482, 254, 757, 757, 757, 757, 260, 790, + 790, 790, 791, 790, 801, 652, 860, 785, 263, 653, + 264, 799, 799, 799, 800, 799, 93, 261, 802, 804, + 626, 260, 629, 437, 630, 438, 94, 652, 466, 860, + 805, 805, 805, 806, 805, 634, 458, 441, 93, 394, + 394, 394, 395, 394, 418, 807, 878, 879, 441, 268, + 427, 269, 419, 260, 433, 638, 638, 638, 638, 638, + + 757, 757, 757, 757, 428, 434, 418, 454, 433, 878, + 879, 265, 261, 427, 775, 372, 260, 809, 809, 809, + 809, 809, 609, 435, 610, 639, 829, 266, 434, 810, + 640, 830, 96, 831, 265, 372, 865, 775, 397, 397, + 397, 398, 397, 638, 638, 638, 638, 638, 835, 1102, + 92, 92, 462, 1102, 463, 454, 882, 92, 832, 757, + 757, 757, 757, 363, 638, 638, 638, 638, 638, 847, + 1102, 363, 883, 848, 1102, 849, 454, 641, 92, 882, + 832, 97, 646, 646, 646, 646, 646, 662, 92, 98, + 620, 99, 621, 92, 454, 883, 455, 356, 638, 638, + + 638, 638, 638, 97, 1102, 629, 356, 630, 1102, 887, + 454, 98, 399, 399, 399, 400, 399, 455, 638, 638, + 638, 638, 638, 861, 1102, 349, 349, 862, 1102, 863, + 454, 281, 887, 757, 757, 757, 757, 92, 92, 282, + 836, 836, 836, 837, 836, 836, 836, 836, 837, 836, + 655, 455, 656, 281, 482, 482, 482, 483, 482, 100, + 678, 678, 678, 679, 678, 101, 502, 502, 502, 503, + 502, 455, 323, 492, 492, 492, 493, 492, 875, 888, + 92, 100, 401, 401, 401, 402, 401, 459, 896, 898, + 867, 324, 459, 460, 868, 323, 869, 324, 460, 700, + + 331, 875, 888, 757, 757, 757, 757, 331, 92, 459, + 181, 896, 898, 92, 459, 504, 504, 504, 505, 504, + 502, 502, 502, 503, 502, 321, 182, 865, 865, 865, + 866, 865, 323, 181, 102, 103, 700, 700, 700, 701, + 700, 517, 517, 517, 518, 517, 525, 525, 525, 526, + 525, 324, 783, 321, 784, 323, 102, 403, 403, 403, + 404, 403, 525, 525, 525, 526, 525, 977, 314, 931, + 708, 314, 874, 532, 532, 532, 533, 532, 757, 757, + 757, 757, 532, 532, 532, 533, 532, 92, 228, 324, + 977, 884, 931, 708, 194, 874, 885, 794, 886, 795, + + 418, 104, 724, 724, 724, 725, 724, 814, 419, 92, + 105, 724, 724, 724, 725, 724, 640, 543, 543, 543, + 544, 543, 418, 104, 405, 405, 405, 406, 405, 892, + 893, 894, 895, 553, 553, 553, 554, 553, 555, 555, + 555, 556, 555, 92, 299, 757, 757, 757, 757, 553, + 553, 553, 554, 553, 899, 900, 901, 902, 167, 643, + 181, 978, 106, 565, 565, 565, 566, 565, 154, 207, + 208, 567, 567, 567, 568, 567, 182, 107, 569, 569, + 569, 570, 569, 181, 978, 106, 407, 407, 407, 408, + 407, 207, 906, 273, 273, 983, 907, 985, 908, 750, + + 750, 750, 751, 750, 252, 915, 916, 917, 427, 918, + 919, 920, 579, 579, 579, 580, 579, 921, 983, 922, + 985, 92, 428, 392, 392, 392, 393, 392, 937, 108, + 827, 427, 780, 783, 109, 784, 781, 91, 92, 110, + 921, 92, 922, 915, 916, 917, 913, 918, 919, 920, + 92, 108, 828, 827, 780, 926, 109, 927, 790, 91, + 409, 409, 409, 410, 409, 228, 93, 92, 995, 913, + 394, 394, 394, 395, 394, 830, 94, 831, 926, 92, + 927, 415, 415, 415, 416, 415, 939, 324, 93, 434, + 609, 995, 610, 776, 92, 92, 397, 397, 397, 398, + + 397, 942, 418, 91, 92, 928, 421, 435, 422, 112, + 419, 113, 434, 114, 92, 92, 776, 399, 399, 399, + 400, 399, 933, 96, 418, 91, 943, 934, 928, 935, + 794, 112, 795, 113, 412, 412, 412, 413, 412, 97, + 92, 965, 401, 401, 401, 402, 401, 98, 92, 99, + 966, 934, 89, 935, 936, 757, 757, 757, 757, 167, + 162, 97, 945, 965, 100, 777, 620, 162, 621, 98, + 101, 403, 403, 403, 404, 403, 936, 154, 996, 405, + 405, 405, 406, 405, 799, 997, 100, 116, 777, 405, + 405, 405, 406, 405, 102, 103, 407, 407, 407, 408, + + 407, 996, 132, 412, 412, 412, 413, 412, 997, 92, + 757, 757, 757, 757, 948, 104, 102, 106, 430, 949, + 431, 965, 427, 629, 105, 630, 805, 106, 92, 952, + 966, 90, 107, 437, 930, 438, 428, 104, 89, 108, + 106, 970, 107, 965, 109, 427, 830, 87, 831, 110, + 106, 407, 407, 407, 408, 407, 116, 930, 967, 975, + 434, 108, 968, 462, 969, 463, 109, 940, 940, 940, + 941, 940, 950, 950, 950, 951, 950, 998, 435, 968, + 1039, 969, 1040, 434, 405, 405, 405, 406, 405, 809, + 809, 809, 809, 809, 108, 999, 81, 71, 972, 109, + + 998, 810, 91, 655, 110, 656, 407, 407, 407, 408, + 407, 986, 70, 459, 606, 987, 108, 988, 999, 460, + 607, 109, 106, 1002, 91, 808, 808, 808, 808, 808, + 808, 808, 808, 808, 808, 459, 606, 107, 1003, 808, + 808, 808, 808, 808, 808, 106, 1002, 69, 1017, 108, + 1005, 1007, 1022, 934, 109, 935, 609, 57, 610, 110, + 617, 1003, 808, 808, 808, 808, 808, 808, 639, 639, + 812, 108, 1053, 1005, 1007, 39, 109, 946, 946, 946, + 947, 946, 618, 617, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 1102, 1053, 1054, 1072, 813, 813, + + 813, 813, 813, 813, 1068, 1102, 1069, 1102, 617, 482, + 482, 482, 483, 482, 482, 482, 482, 483, 482, 1054, + 1072, 813, 813, 813, 813, 813, 813, 642, 642, 815, + 618, 617, 678, 678, 678, 679, 678, 502, 502, 502, + 503, 502, 1102, 816, 816, 816, 816, 816, 816, 816, + 816, 816, 816, 1102, 1073, 1102, 1102, 816, 816, 816, + 816, 816, 816, 638, 638, 638, 638, 638, 1023, 1102, + 1102, 1019, 794, 1102, 795, 454, 783, 1073, 784, 1102, + 816, 816, 816, 816, 816, 816, 817, 817, 817, 818, + 817, 606, 1102, 1102, 1102, 1026, 1102, 607, 454, 620, + + 1102, 621, 1102, 819, 819, 819, 819, 819, 819, 819, + 819, 819, 819, 606, 1102, 1102, 455, 819, 819, 819, + 819, 819, 819, 504, 504, 504, 505, 504, 502, 502, + 502, 503, 502, 865, 865, 865, 866, 865, 1102, 455, + 819, 819, 819, 819, 819, 819, 820, 821, 638, 638, + 638, 821, 822, 820, 822, 822, 822, 820, 820, 823, + 822, 822, 822, 822, 824, 824, 824, 824, 824, 824, + 824, 824, 824, 824, 822, 822, 822, 822, 824, 824, + 824, 824, 824, 824, 822, 822, 822, 822, 822, 822, + 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, + + 825, 824, 824, 824, 824, 824, 824, 822, 822, 822, + 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, + 822, 822, 822, 822, 822, 826, 826, 826, 826, 826, + 826, 826, 826, 826, 826, 1102, 1102, 1102, 1102, 826, + 826, 826, 826, 826, 826, 638, 817, 638, 638, 638, + 1027, 1102, 1102, 1044, 629, 1102, 630, 454, 830, 1102, + 831, 1102, 826, 826, 826, 826, 826, 826, 163, 78, + 78, 164, 163, 827, 28, 525, 525, 525, 526, 525, + 525, 525, 525, 526, 525, 839, 839, 839, 839, 839, + 839, 839, 839, 839, 839, 828, 827, 1102, 455, 839, + + 839, 839, 839, 839, 839, 646, 646, 646, 646, 646, + 973, 973, 973, 974, 973, 1102, 1036, 454, 1102, 1102, + 1037, 29, 839, 839, 839, 839, 839, 839, 840, 840, + 840, 840, 840, 840, 840, 840, 840, 840, 1036, 1102, + 1102, 1102, 840, 840, 840, 840, 840, 840, 638, 638, + 638, 638, 638, 517, 517, 517, 518, 517, 962, 652, + 454, 1102, 1102, 653, 1102, 840, 840, 840, 840, 840, + 840, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 652, 1102, 1102, 994, 841, 841, 841, 841, 841, + 841, 1102, 638, 638, 638, 638, 638, 1102, 1102, 1042, + + 1102, 962, 1102, 968, 454, 969, 194, 994, 841, 841, + 841, 841, 841, 841, 842, 842, 842, 842, 842, 842, + 842, 842, 842, 842, 1102, 1102, 1102, 1102, 842, 842, + 842, 842, 842, 842, 1102, 1102, 940, 940, 940, 941, + 940, 836, 1102, 1102, 1102, 455, 532, 532, 532, 533, + 532, 842, 842, 842, 842, 842, 842, 914, 914, 914, + 914, 914, 914, 914, 914, 914, 914, 1102, 1102, 1102, + 1102, 914, 914, 914, 914, 914, 914, 946, 646, 646, + 646, 646, 646, 606, 652, 1102, 1102, 459, 653, 607, + 454, 1102, 1102, 460, 914, 914, 914, 914, 914, 914, + + 409, 409, 409, 410, 409, 606, 652, 617, 1102, 459, + 163, 78, 78, 164, 163, 1102, 28, 532, 532, 532, + 533, 532, 724, 724, 724, 725, 724, 1102, 780, 618, + 617, 962, 781, 929, 724, 724, 724, 725, 724, 553, + 553, 553, 554, 553, 555, 555, 555, 556, 555, 112, + 780, 113, 1102, 114, 1102, 1102, 929, 553, 553, 553, + 554, 553, 1102, 29, 565, 565, 565, 566, 565, 1102, + 1102, 112, 1102, 113, 953, 953, 953, 953, 953, 953, + 953, 953, 953, 953, 1102, 1102, 1102, 1102, 953, 953, + 953, 953, 953, 953, 492, 492, 492, 493, 492, 567, + + 567, 567, 568, 567, 569, 569, 569, 570, 569, 1102, + 1102, 953, 953, 953, 953, 953, 953, 954, 811, 811, + 955, 954, 1102, 640, 750, 750, 750, 751, 750, 1102, + 1102, 181, 1102, 1102, 956, 956, 956, 956, 956, 956, + 956, 956, 956, 956, 1102, 1102, 1102, 182, 956, 956, + 956, 956, 956, 956, 181, 1024, 1024, 1024, 1025, 1024, + 148, 148, 148, 275, 148, 678, 678, 678, 679, 678, + 641, 956, 956, 956, 956, 956, 956, 957, 814, 814, + 958, 957, 1036, 1047, 1056, 1102, 1037, 640, 655, 934, + 656, 935, 1102, 1102, 959, 959, 959, 959, 959, 959, + + 959, 959, 959, 959, 1036, 1102, 1102, 1102, 959, 959, + 959, 959, 959, 959, 700, 700, 700, 701, 700, 1102, + 543, 543, 543, 544, 543, 865, 865, 865, 866, 865, + 643, 959, 959, 959, 959, 959, 959, 960, 960, 960, + 960, 960, 960, 960, 960, 960, 960, 1102, 875, 1102, + 1102, 960, 960, 960, 960, 960, 960, 117, 117, 117, + 232, 117, 1060, 1102, 1102, 811, 794, 324, 795, 1102, + 640, 875, 207, 208, 960, 960, 960, 960, 960, 960, + 821, 821, 821, 963, 821, 724, 724, 724, 725, 724, + 1102, 1102, 1102, 1102, 207, 1102, 1102, 964, 964, 964, + + 964, 964, 964, 964, 964, 964, 964, 1102, 1102, 1102, + 92, 964, 964, 964, 964, 964, 964, 641, 724, 724, + 724, 725, 724, 750, 750, 750, 751, 750, 1057, 1057, + 1057, 1058, 1057, 1102, 964, 964, 964, 964, 964, 964, + 644, 645, 646, 646, 646, 645, 647, 644, 647, 647, + 647, 644, 644, 648, 647, 647, 647, 647, 649, 649, + 649, 649, 649, 649, 649, 649, 649, 649, 647, 647, + 647, 647, 649, 649, 649, 649, 649, 649, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 650, 649, 649, 649, 649, 649, + + 649, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 1102, + 1102, 1102, 1102, 64, 64, 64, 64, 64, 64, 579, + 579, 579, 580, 579, 412, 412, 412, 413, 412, 1071, + 1036, 1102, 1102, 1039, 1037, 1040, 64, 64, 64, 64, + 64, 64, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 1036, 1015, 1102, 115, 30, 30, 30, 30, + 30, 30, 394, 394, 394, 395, 394, 1102, 1102, 1038, + 1102, 1102, 228, 1039, 1102, 1040, 1015, 116, 115, 30, + + 30, 30, 30, 30, 30, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 1102, 1041, 95, 1102, 33, + 33, 33, 33, 33, 33, 1102, 392, 392, 392, 393, + 392, 1102, 1059, 1102, 1102, 96, 1102, 783, 1041, 784, + 95, 1102, 33, 33, 33, 33, 33, 33, 976, 976, + 976, 976, 976, 976, 976, 976, 976, 976, 1102, 1102, + 1102, 1102, 976, 976, 976, 976, 976, 976, 1102, 93, + 397, 397, 397, 398, 397, 1102, 1102, 973, 940, 94, + 399, 399, 399, 400, 399, 976, 976, 976, 976, 976, + 976, 93, 401, 401, 401, 402, 401, 403, 403, 403, + + 404, 403, 1102, 1102, 405, 405, 405, 406, 405, 1045, + 1102, 1102, 1102, 97, 1102, 1102, 407, 407, 407, 408, + 407, 98, 1074, 99, 606, 652, 968, 100, 969, 653, + 607, 1077, 1102, 101, 1102, 97, 830, 1102, 831, 827, + 1102, 104, 106, 98, 102, 103, 606, 652, 1102, 100, + 105, 415, 415, 415, 416, 415, 1102, 107, 1102, 108, + 1102, 828, 827, 104, 109, 106, 102, 1102, 1102, 110, + 405, 405, 405, 406, 405, 1102, 407, 407, 407, 408, + 407, 108, 1075, 1102, 1102, 1102, 109, 409, 409, 409, + 410, 409, 1102, 1102, 1102, 117, 117, 117, 232, 117, + + 1079, 1102, 1102, 1102, 92, 934, 1102, 935, 106, 117, + 117, 117, 232, 117, 117, 117, 117, 232, 117, 108, + 111, 1085, 1102, 107, 109, 965, 1068, 1102, 1069, 110, + 1102, 106, 181, 1087, 966, 1102, 112, 1039, 113, 1040, + 114, 108, 1102, 111, 1102, 1102, 109, 965, 182, 117, + 117, 117, 232, 117, 1102, 181, 1102, 1090, 112, 1095, + 113, 968, 92, 969, 1068, 1102, 1069, 92, 1020, 1020, + 1020, 1021, 1020, 646, 646, 646, 646, 646, 638, 821, + 638, 638, 638, 227, 1102, 454, 1102, 1102, 1102, 1102, + 454, 865, 865, 865, 866, 865, 1102, 1045, 1045, 1045, + + 1046, 1045, 228, 1102, 1102, 1102, 227, 175, 175, 175, + 300, 175, 482, 482, 482, 483, 482, 780, 1098, 1102, + 1067, 781, 1039, 1020, 1040, 1068, 962, 1069, 827, 1102, + 1102, 962, 1096, 1096, 1096, 1097, 1096, 1102, 1102, 780, + 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028, + 828, 827, 1070, 1102, 1028, 1028, 1028, 1028, 1028, 1028, + 92, 1102, 1102, 1102, 1102, 92, 482, 482, 482, 483, + 482, 780, 1102, 1102, 1070, 781, 1102, 1028, 1028, 1028, + 1028, 1028, 1028, 1029, 1029, 1029, 1029, 1029, 1029, 1029, + 1029, 1029, 1029, 780, 1102, 1102, 1102, 1029, 1029, 1029, + + 1029, 1029, 1029, 502, 502, 502, 503, 502, 504, 504, + 504, 505, 504, 821, 821, 821, 963, 821, 1102, 92, + 1029, 1029, 1029, 1029, 1029, 1029, 1030, 1030, 1030, 1030, + 1030, 1030, 1030, 1030, 1030, 1030, 1102, 1102, 1102, 1102, + 1030, 1030, 1030, 1030, 1030, 1030, 1100, 1102, 1102, 1102, + 1102, 1068, 1102, 1069, 1102, 1102, 92, 1102, 1102, 1102, + 1102, 92, 1102, 1030, 1030, 1030, 1030, 1030, 1030, 820, + 1031, 646, 646, 646, 1031, 1032, 820, 1032, 1032, 1032, + 820, 820, 823, 1032, 1032, 1032, 1032, 1033, 1033, 1033, + 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1032, 1032, 1032, + + 1032, 1033, 1033, 1033, 1033, 1033, 1033, 1032, 1032, 1032, + 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, + 1032, 1032, 1032, 1034, 1033, 1033, 1033, 1033, 1033, 1033, + 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, + 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1035, 1035, + 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1102, 1102, + 1102, 1102, 1035, 1035, 1035, 1035, 1035, 1035, 492, 492, + 492, 493, 492, 502, 502, 502, 503, 502, 700, 700, + 700, 701, 700, 1102, 1102, 1035, 1035, 1035, 1035, 1035, + 1035, 517, 517, 517, 518, 517, 175, 175, 175, 300, + + 175, 1102, 1102, 1102, 1102, 181, 175, 175, 175, 300, + 175, 1102, 995, 525, 525, 525, 526, 525, 1102, 1102, + 1102, 182, 193, 1102, 1102, 1102, 92, 1102, 181, 1102, + 323, 324, 1102, 1102, 1102, 995, 525, 525, 525, 526, + 525, 1102, 1102, 1102, 194, 193, 1102, 1102, 1102, 324, + 1102, 1102, 1102, 323, 532, 532, 532, 533, 532, 92, + 532, 532, 532, 533, 532, 1102, 92, 543, 543, 543, + 544, 543, 553, 553, 553, 554, 553, 555, 555, 555, + 556, 555, 553, 553, 553, 554, 553, 1102, 1088, 92, + 565, 565, 565, 566, 565, 567, 567, 567, 568, 567, + + 569, 569, 569, 570, 569, 1102, 1102, 92, 579, 579, + 579, 580, 579, 92, 175, 175, 175, 300, 175, 207, + 208, 1102, 1102, 1102, 1102, 92, 1102, 1102, 1102, 1102, + 92, 1102, 1102, 1102, 1102, 92, 1036, 1102, 1102, 1102, + 1037, 207, 227, 92, 1102, 1102, 1102, 1102, 92, 1102, + 1102, 1102, 1102, 92, 1102, 1102, 1102, 1102, 1036, 1102, + 1102, 228, 1102, 1102, 1102, 227, 1102, 92, 1061, 1061, + 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1102, 1102, + 1102, 1102, 1061, 1061, 1061, 1061, 1061, 1061, 646, 646, + 646, 646, 646, 678, 678, 678, 679, 678, 1102, 1102, + + 454, 1102, 1102, 1102, 1102, 1061, 1061, 1061, 1061, 1061, + 1061, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, + 1062, 1102, 1102, 1102, 1102, 1062, 1062, 1062, 1062, 1062, + 1062, 646, 646, 646, 646, 646, 1075, 1075, 1075, 1076, + 1075, 962, 1102, 454, 1102, 1102, 92, 1102, 1062, 1062, + 1062, 1062, 1062, 1062, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1102, 1102, 1102, 1102, 1063, 1063, + 1063, 1063, 1063, 1063, 724, 724, 724, 725, 724, 1102, + 965, 1102, 1102, 1102, 962, 1102, 1102, 1102, 1102, 966, + 1102, 1063, 1063, 1063, 1063, 1063, 1063, 1031, 1031, 1031, + + 1064, 1031, 965, 1102, 1102, 1102, 1102, 1102, 1102, 454, + 1102, 1102, 1102, 1102, 1065, 1065, 1065, 1065, 1065, 1065, + 1065, 1065, 1065, 1065, 1102, 1102, 1102, 92, 1065, 1065, + 1065, 1065, 1065, 1065, 700, 700, 700, 701, 700, 724, + 724, 724, 725, 724, 1102, 1102, 1102, 1102, 1102, 1102, + 962, 1065, 1065, 1065, 1065, 1065, 1065, 1066, 1066, 1066, + 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1102, 323, 1102, + 1102, 1066, 1066, 1066, 1066, 1066, 1066, 750, 750, 750, + 751, 750, 1102, 1102, 1102, 1102, 1102, 324, 1102, 1102, + 1102, 323, 92, 1102, 1066, 1066, 1066, 1066, 1066, 1066, + + 646, 1031, 646, 646, 646, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 454, 1088, 1088, 1088, 1089, 1088, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 92, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, + 1080, 1102, 1102, 1102, 1102, 1080, 1080, 1080, 1080, 1080, + 1080, 1102, 1102, 962, 1102, 1102, 1088, 1088, 1088, 1089, + 1088, 1102, 1036, 1102, 1102, 1102, 1037, 1102, 1080, 1080, + 1080, 1080, 1080, 1080, 1081, 1081, 1081, 1081, 1081, 1081, + 1081, 1081, 1081, 1081, 1036, 1102, 1102, 1102, 1081, 1081, + 1081, 1081, 1081, 1081, 865, 865, 865, 866, 865, 1102, + + 1102, 1102, 1102, 1102, 1102, 1036, 1102, 1102, 1102, 1037, + 1102, 1081, 1081, 1081, 1081, 1081, 1081, 1082, 1082, 1082, + 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1036, 1102, 1102, + 1102, 1082, 1082, 1082, 1082, 1082, 1082, 1031, 1031, 1031, + 1064, 1031, 1102, 1102, 1102, 1102, 1102, 92, 1102, 454, + 1102, 1102, 1102, 1102, 1082, 1082, 1082, 1082, 1082, 1082, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1072, - 1074, 1074, 1074, 1074, 1074, 1152, 1072, 1152, 1152, 1152, - 1072, 1072, 1075, 1078, 1152, 1152, 1152, 1152, 1079, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1080, 1072, 1074, 1074, 1074, - 1074, 1074, 1152, 1072, 1152, 1152, 1152, 1072, 1072, 1075, - 1078, 1152, 1152, 1152, 1152, 1079, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1080, 1072, 1074, 1074, 1074, 1074, 1074, 1152, - 1072, 1152, 1152, 1152, 1072, 1072, 1075, 1078, 1152, 1152, - - 1152, 1152, 1079, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1080, - 1072, 1074, 1074, 1074, 1074, 1074, 1152, 1072, 1152, 1152, - 1152, 1072, 1072, 1075, 1078, 1152, 1152, 1152, 1152, 1079, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1080, 791, 792, 792, - - 792, 792, 792, 1152, 791, 1152, 1152, 1152, 791, 791, - 794, 1078, 1152, 1152, 1152, 1152, 795, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 796, 1072, 1074, 1074, 1074, 1074, 1074, - 1152, 1072, 1152, 1152, 1152, 1072, 1072, 1075, 1110, 1152, - 1152, 1152, 1152, 1079, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1080, 1072, 1082, 1082, 1082, 1111, 1082, 1152, 1072, 1152, - 1152, 1152, 1072, 1072, 1075, 1078, 1152, 1152, 1152, 1152, - 1079, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, - 1112, 1152, 1152, 1152, 1152, 1112, 1112, 1112, 1112, 1112, - 1112, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1080, 1112, 1112, - 1112, 1112, 1112, 940, 953, 953, 953, 1000, 953, 945, - 940, 945, 945, 945, 940, 940, 943, 946, 945, 945, - 945, 945, 947, 1113, 1113, 1113, 1113, 1113, 1113, 1113, - - 1113, 1113, 1113, 945, 945, 945, 945, 1113, 1113, 1113, - 1113, 1113, 1113, 945, 945, 945, 945, 945, 945, 945, - 945, 945, 945, 945, 945, 945, 945, 945, 945, 948, - 1113, 1113, 1113, 1113, 1113, 945, 945, 945, 945, 945, - 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, - 945, 945, 945, 945, 668, 799, 799, 799, 894, 799, - 1152, 668, 1152, 1152, 1152, 668, 668, 671, 672, 1152, - 1152, 1152, 1152, 673, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 674, 907, 917, 917, 917, 965, 917, 912, 907, 912, - 912, 912, 907, 907, 910, 913, 912, 912, 912, 912, - 914, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, - 1114, 912, 912, 912, 912, 1114, 1114, 1114, 1114, 1114, - 1114, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 915, 1114, 1114, - 1114, 1114, 1114, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 967, 977, 977, 977, 1007, 977, 972, 967, - - 972, 972, 972, 967, 967, 970, 973, 972, 972, 972, - 972, 974, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, - 1115, 1115, 972, 972, 972, 972, 1115, 1115, 1115, 1115, - 1115, 1115, 972, 972, 972, 972, 972, 972, 972, 972, - 972, 972, 972, 972, 972, 972, 972, 972, 975, 1115, - 1115, 1115, 1115, 1115, 972, 972, 972, 972, 972, 972, - 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, - 972, 972, 972, 775, 859, 859, 859, 930, 859, 1152, - 775, 1152, 1152, 1152, 775, 775, 778, 779, 1152, 1152, - 1152, 1152, 780, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 781, - 871, 881, 881, 881, 938, 881, 1152, 871, 1152, 1152, - 1152, 871, 871, 874, 877, 1152, 1152, 1152, 1152, 878, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 879, 1100, 1053, 1053, - 1101, 1100, 1152, 1045, 1152, 1152, 1152, 1152, 1152, 1152, - - 1046, 1152, 1152, 1152, 1152, 1152, 1122, 1122, 1122, 1122, - 1122, 1122, 1122, 1122, 1122, 1122, 1152, 1152, 1152, 1152, - 1122, 1122, 1122, 1122, 1122, 1122, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1047, 1122, 1122, 1122, 1122, 1122, 1057, 1020, - 1020, 1058, 1057, 1152, 993, 1152, 1152, 1152, 1152, 1152, - 1152, 994, 1152, 1152, 1152, 1152, 1152, 1123, 1123, 1123, - 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1152, 1152, 1152, - 1152, 1123, 1123, 1123, 1123, 1123, 1123, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 995, 1123, 1123, 1123, 1123, 1123, 1124, - 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1152, - 1152, 1152, 1152, 1124, 1124, 1124, 1124, 1124, 1124, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1124, 1124, 1124, 1124, - 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, - 1125, 1152, 1152, 1152, 1152, 1125, 1125, 1125, 1125, 1125, - 1125, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1125, 1125, - 1125, 1125, 1125, 888, 889, 889, 889, 889, 889, 1152, - - 888, 1152, 1152, 1152, 888, 888, 891, 1078, 1152, 1152, - 1152, 1152, 892, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 893, - 1072, 1074, 1082, 1074, 1074, 1074, 1152, 1072, 1152, 1152, - 1152, 1072, 1072, 1075, 1078, 1152, 1152, 1152, 1152, 1079, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1080, 1126, 1126, 1126, - 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1152, 1152, 1152, - 1152, 1126, 1126, 1126, 1126, 1126, 1126, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1126, 1126, 1126, 1126, 1126, 1127, - 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1152, - 1152, 1152, 1152, 1127, 1127, 1127, 1127, 1127, 1127, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1127, 1127, 1127, 1127, - 1127, 912, 912, 912, 912, 912, 912, 912, 912, 912, - - 912, 1152, 1152, 1152, 1152, 912, 912, 912, 912, 912, - 912, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 912, 912, - 912, 912, 912, 1128, 1128, 1128, 1128, 1128, 1128, 1128, - 1128, 1128, 1128, 1152, 1152, 1152, 1152, 1128, 1128, 1128, - 1128, 1128, 1128, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1128, 1128, 1128, 1128, 1128, 1134, 1134, 1134, 1134, 1134, - 1134, 1134, 1134, 1134, 1134, 1152, 1152, 1152, 1152, 1134, - 1134, 1134, 1134, 1134, 1134, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1134, 1134, 1134, 1134, 1134, 1135, 1135, 1135, - 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1152, 1152, 1152, - 1152, 1135, 1135, 1135, 1135, 1135, 1135, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1135, 1135, 1135, 1135, 1135, 1136, - 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1152, - 1152, 1152, 1152, 1136, 1136, 1136, 1136, 1136, 1136, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1136, 1136, 1136, 1136, - - 1136, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, - 1137, 1152, 1152, 1152, 1152, 1137, 1137, 1137, 1137, 1137, - 1137, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1137, 1137, - 1137, 1137, 1137, 1138, 1138, 1138, 1138, 1138, 1138, 1138, - 1138, 1138, 1138, 1152, 1152, 1152, 1152, 1138, 1138, 1138, - 1138, 1138, 1138, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1138, 1138, 1138, 1138, 1138, 945, 945, 945, 945, 945, - 945, 945, 945, 945, 945, 1152, 1152, 1152, 1152, 945, - - 945, 945, 945, 945, 945, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 945, 945, 945, 945, 945, 972, 972, 972, - 972, 972, 972, 972, 972, 972, 972, 1152, 1152, 1152, - 1152, 972, 972, 972, 972, 972, 972, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 972, 972, 972, 972, 972, 1141, - 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1152, - 1152, 1152, 1152, 1141, 1141, 1141, 1141, 1141, 1141, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1141, 1141, 1141, 1141, - 1141, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, - 1142, 1152, 1152, 1152, 1152, 1142, 1142, 1142, 1142, 1142, - 1142, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1142, 1142, - 1142, 1142, 1142, 1143, 1143, 1143, 1143, 1143, 1143, 1143, - 1143, 1143, 1143, 1152, 1152, 1152, 1152, 1143, 1143, 1143, - 1143, 1143, 1143, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1143, 1143, 1143, 1143, 1143, 1144, 1144, 1144, 1144, 1144, - - 1144, 1144, 1144, 1144, 1144, 1152, 1152, 1152, 1152, 1144, - 1144, 1144, 1144, 1144, 1144, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1144, 1144, 1144, 1144, 1144, 1145, 1145, 1145, - 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1152, 1152, 1152, - 1152, 1145, 1145, 1145, 1145, 1145, 1145, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1145, 1145, 1145, 1145, 1145, 1149, - 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1152, - 1152, 1152, 1152, 1149, 1149, 1149, 1149, 1149, 1149, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1149, 1149, 1149, 1149, - 1149, 992, 992, 992, 992, 992, 992, 992, 992, 992, - 992, 1152, 1152, 1152, 1152, 992, 992, 992, 992, 992, - 992, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 992, 992, - 992, 992, 992, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1152, 1152, 1152, 1152, 1150, 1150, 1150, - 1150, 1150, 1150, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1150, 1150, 1150, 1150, 1150, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 1152, 1152, 1152, 1152, 996, - 996, 996, 996, 996, 996, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 996, 996, 996, 996, 996, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1152, 1152, 1152, - 1152, 1151, 1151, 1151, 1151, 1151, 1151, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1151, 1151, 1151, 1151, 1151, 1044, - 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1152, - - 1152, 1152, 1152, 1044, 1044, 1044, 1044, 1044, 1044, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1044, 1044, 1044, 1044, - 1044, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, - 1060, 1152, 1152, 1152, 1152, 1060, 1060, 1060, 1060, 1060, - 1060, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1060, 1060, - 1060, 1060, 1060, 1077, 1077, 1077, 1077, 1077, 1077, 1077, - 1077, 1077, 1077, 1152, 1152, 1152, 1152, 1077, 1077, 1077, - 1077, 1077, 1077, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1077, 1077, 1077, 1077, 1077, 35, 35, 1152, 35, 35, - 35, 35, 35, 35, 38, 38, 38, 40, 40, 1152, - 40, 40, 40, 40, 40, 40, 43, 1152, 43, 70, - 70, 70, 70, 73, 73, 1152, 73, 73, 73, 73, - 73, 73, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 83, 83, 1152, 83, 83, 83, 83, 83, 83, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 92, 92, - 92, 138, 138, 1152, 138, 138, 138, 138, 138, 138, - - 143, 143, 143, 143, 143, 143, 143, 143, 143, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 158, 158, 1152, - 158, 158, 158, 158, 158, 158, 244, 244, 244, 244, - 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 375, 375, 375, 375, 1152, 375, 375, - 375, 382, 382, 382, 382, 382, 382, 382, 382, 382, - 384, 384, 384, 384, 384, 384, 384, 384, 384, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 158, 158, - - 1152, 158, 158, 158, 158, 158, 158, 525, 525, 1152, - 525, 525, 525, 525, 525, 525, 528, 528, 1152, 528, - 528, 528, 528, 528, 528, 382, 382, 382, 382, 382, - 382, 382, 382, 382, 244, 244, 244, 244, 244, 244, - 244, 244, 244, 384, 384, 384, 384, 384, 384, 384, - 384, 384, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 662, - 662, 662, 662, 662, 662, 662, 662, 662, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 670, 670, 670, - - 670, 670, 670, 670, 670, 670, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 668, 668, 668, 668, 668, - 668, 668, 668, 668, 793, 793, 793, 793, 793, 793, - 793, 793, 793, 375, 375, 375, 1152, 1152, 375, 375, - 375, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 853, 853, 853, 853, 853, 853, 853, 853, 853, 866, - 866, 866, 866, 866, 866, 866, 866, 866, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 668, 668, 668, - 668, 668, 668, 668, 668, 668, 871, 871, 871, 871, - 871, 871, 871, 871, 871, 876, 876, 876, 876, 876, - - 876, 876, 876, 876, 890, 890, 890, 890, 890, 890, - 890, 890, 890, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 793, 793, 793, 793, 793, 793, 793, 793, - 793, 851, 851, 851, 851, 851, 851, 851, 851, 851, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 907, - 907, 907, 907, 907, 907, 907, 907, 907, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 926, 926, 926, - 926, 926, 926, 926, 926, 926, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 853, 853, 853, 853, 853, - 853, 853, 853, 853, 866, 866, 866, 866, 866, 866, - - 866, 866, 866, 932, 932, 932, 932, 932, 932, 932, - 932, 932, 525, 525, 525, 525, 525, 525, 525, 525, - 525, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 888, 888, 888, 888, 888, 888, 888, 888, 888, 871, - 871, 871, 871, 871, 871, 871, 871, 871, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 876, 876, 876, - 876, 876, 876, 876, 876, 876, 793, 793, 793, 793, - 793, 793, 793, 793, 793, 940, 940, 940, 940, 940, - 940, 940, 940, 940, 945, 945, 945, 945, 945, 945, - 945, 945, 945, 670, 670, 670, 670, 670, 670, 670, - - 670, 670, 92, 92, 1152, 1152, 1152, 92, 92, 92, - 924, 924, 924, 924, 924, 924, 924, 924, 924, 907, - 907, 907, 907, 907, 907, 907, 907, 907, 851, 851, - 851, 851, 851, 851, 851, 851, 851, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 853, 853, 853, 853, - 853, 853, 853, 853, 853, 967, 967, 967, 967, 967, - 967, 967, 967, 967, 972, 972, 972, 972, 972, 972, - 972, 972, 972, 985, 985, 985, 985, 985, 985, 985, - 985, 985, 525, 525, 525, 525, 525, 525, 525, 525, - 525, 528, 528, 528, 528, 528, 528, 528, 528, 528, - - 888, 888, 888, 888, 888, 888, 888, 888, 888, 890, - 890, 890, 890, 890, 890, 890, 890, 890, 876, 876, - 876, 876, 876, 876, 876, 876, 876, 940, 940, 940, - 940, 940, 940, 940, 940, 940, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 945, 945, 945, 945, 945, - 945, 945, 945, 945, 793, 793, 793, 793, 793, 793, - 793, 793, 793, 992, 992, 992, 992, 992, 992, 992, - 992, 992, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 375, 375, 375, 1152, 1152, 375, 375, 375, 92, - 92, 1152, 1152, 1152, 92, 92, 92, 924, 924, 924, - - 924, 924, 924, 924, 924, 924, 926, 926, 926, 926, - 926, 926, 926, 926, 926, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 967, 967, 967, 967, 967, 967, - 967, 967, 967, 851, 851, 851, 851, 851, 851, 851, - 851, 851, 972, 972, 972, 972, 972, 972, 972, 972, - 972, 853, 853, 853, 853, 853, 853, 853, 853, 853, - 985, 985, 985, 985, 985, 985, 985, 985, 985, 932, - 932, 932, 932, 932, 932, 932, 932, 932, 525, 525, - 525, 525, 525, 525, 525, 525, 525, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 888, 888, 888, 888, - - 888, 888, 888, 888, 888, 890, 890, 890, 890, 890, - 890, 890, 890, 890, 992, 992, 992, 992, 992, 992, - 992, 992, 992, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, - 1016, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 1024, - 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1027, 1027, - 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1033, 1033, 1033, - 1033, 1033, 1033, 1033, 1033, 1033, 945, 945, 945, 945, - 945, 945, 945, 945, 945, 375, 375, 375, 1152, 1152, - - 375, 375, 375, 924, 924, 924, 924, 924, 924, 924, - 924, 924, 926, 926, 926, 926, 926, 926, 926, 926, - 926, 972, 972, 972, 972, 972, 972, 972, 972, 972, - 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 907, - 907, 907, 907, 907, 907, 907, 907, 907, 1053, 1053, - 1053, 1053, 1053, 1053, 1053, 1053, 1053, 992, 992, 992, - 992, 992, 992, 992, 992, 992, 1016, 1016, 1016, 1016, - 1016, 1016, 1016, 1016, 1016, 1060, 1060, 1060, 1060, 1060, - 1060, 1060, 1060, 1060, 1065, 1065, 1065, 1065, 1065, 1065, - 1065, 1065, 1065, 996, 996, 996, 996, 996, 996, 996, - - 996, 996, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, - 1024, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, - 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 1095, 1095, - 1095, 1095, 1095, 1095, 1095, 1095, 1095, 525, 525, 1152, - 525, 525, 525, 525, 525, 525, 992, 992, 992, 992, - 992, 992, 992, 992, 992, 1060, 1060, 1060, 1060, 1060, - 1060, 1060, 1060, 1060, 1065, 1065, 1065, 1065, 1065, 1065, - 1065, 1065, 1065, 528, 528, 1152, 528, 528, 528, 528, - 528, 528, 996, 996, 996, 996, 996, 996, 996, 996, - - 996, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, - 791, 791, 791, 791, 791, 791, 791, 791, 791, 1077, - 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 793, 793, - 793, 793, 793, 793, 793, 793, 793, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 876, 876, 876, 876, 876, - 876, 876, 876, 876, 1116, 1116, 1116, 1116, 1116, 1116, - 1116, 1116, 1116, 1118, 1118, 1118, 1118, 1118, 1118, 1118, - 1118, 1118, 866, 866, 866, 866, 866, 866, 866, 866, - 866, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, - - 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 888, - 888, 888, 888, 888, 888, 888, 888, 888, 890, 890, - 890, 890, 890, 890, 890, 890, 890, 1129, 1129, 1129, - 1129, 1129, 1129, 1129, 1129, 1129, 1140, 1140, 1140, 1140, - 1140, 1140, 1140, 1140, 1140, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1147, 1147, 1147, 1147, 1147, 1147, - 1147, 1147, 1147, 3, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152 + 1102, 1102, 1102, 1102, 1083, 1083, 1083, 1083, 1083, 1083, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 962, 1102, 1102, 1102, 1102, 1102, 1102, 1083, 1083, 1083, + + 1083, 1083, 1083, 1084, 1084, 1084, 1084, 1084, 1084, 1084, + 1084, 1084, 1084, 1102, 1102, 1102, 1102, 1084, 1084, 1084, + 1084, 1084, 1084, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1084, 1084, 1084, 1084, 1084, 1084, 1091, 1091, 1091, 1091, + 1091, 1091, 1091, 1091, 1091, 1091, 1102, 1102, 1102, 1102, + 1091, 1091, 1091, 1091, 1091, 1091, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1091, 1091, 1091, 1091, 1091, 1091, 1092, + 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1102, + + 1102, 1102, 1102, 1092, 1092, 1092, 1092, 1092, 1092, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1092, 1092, 1092, 1092, + 1092, 1092, 451, 451, 451, 451, 451, 451, 451, 451, + 451, 451, 1102, 1102, 1102, 1102, 451, 451, 451, 451, + 451, 451, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 451, + 451, 451, 451, 451, 451, 1093, 1093, 1093, 1093, 1093, + 1093, 1093, 1093, 1093, 1093, 1102, 1102, 1102, 1102, 1093, + 1093, 1093, 1093, 1093, 1093, 1102, 1102, 1102, 1102, 1102, + + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1093, 1093, 1093, 1093, 1093, 1093, 1094, 1094, + 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1102, 1102, + 1102, 1102, 1094, 1094, 1094, 1094, 1094, 1094, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1094, 1094, 1094, 1094, 1094, + 1094, 639, 639, 639, 639, 639, 639, 639, 639, 639, + 639, 1102, 1102, 1102, 1102, 639, 639, 639, 639, 639, + 639, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 639, 639, + + 639, 639, 639, 639, 642, 642, 642, 642, 642, 642, + 642, 642, 642, 642, 1102, 1102, 1102, 1102, 642, 642, + 642, 642, 642, 642, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 642, 642, 642, 642, 642, 642, 1099, 1099, 1099, + 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1102, 1102, 1102, + 1102, 1099, 1099, 1099, 1099, 1099, 1099, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1099, 1099, 1099, 1099, 1099, 1099, + 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, + + 1102, 1102, 1102, 1102, 1101, 1101, 1101, 1101, 1101, 1101, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1101, 1101, 1101, + 1101, 1101, 1101, 27, 27, 1102, 27, 27, 27, 27, + 27, 27, 30, 30, 30, 30, 33, 33, 1102, 33, + 33, 33, 33, 33, 33, 36, 1102, 1102, 36, 64, + 64, 1102, 64, 64, 67, 67, 1102, 67, 67, 67, + 67, 67, 67, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 82, 82, 1102, 82, 82, 82, 82, 82, + 82, 84, 84, 84, 84, 84, 84, 84, 84, 84, + + 88, 88, 88, 88, 88, 88, 88, 88, 88, 91, + 1102, 91, 91, 148, 148, 1102, 148, 148, 148, 148, + 148, 148, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 175, + 175, 1102, 175, 175, 175, 175, 175, 175, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 294, 294, 294, + 294, 294, 294, 294, 294, 294, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 451, 451, 451, 1102, 451, + 451, 451, 451, 457, 457, 457, 457, 457, 457, 457, + + 457, 457, 472, 472, 472, 472, 472, 472, 472, 472, + 472, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 639, 639, 1102, 639, 639, 639, 639, 639, 639, 642, + 642, 1102, 642, 642, 642, 642, 642, 642, 457, 457, + 457, 457, 457, 457, 457, 457, 457, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 472, 472, 472, 472, 472, + 472, 472, 472, 472, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 811, 811, 811, 811, 811, 811, 811, + 811, 811, 814, 814, 814, 814, 814, 814, 814, 814, + + 814, 961, 961, 1102, 1102, 961, 961, 961, 961, 3, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102 } ; -static const flex_int16_t yy_chk[17346] = +static const flex_int16_t yy_chk[7190] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2758,1907 +1599,789 @@ static const flex_int16_t yy_chk[17346] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 5, 5, 5, 5, 5, 6, 6, 6, 6, - 6, 8, 10, 13, 20, 5, 5, 34, 40, 5, - - 6, 6, 53, 52, 6, 7, 7, 7, 7, 7, - 35, 65, 5, 52, 43, 55, 85, 6, 34, 58, - 53, 55, 67, 7, 52, 53, 32, 32, 32, 32, - 32, 70, 13, 65, 58, 1163, 55, 10, 20, 66, - 8, 58, 61, 40, 32, 67, 7, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 5, 43, 35, - 66, 85, 6, 843, 61, 61, 843, 32, 7, 16, - 56, 56, 544, 90, 544, 70, 16, 16, 90, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 32, - 151, 56, 1147, 16, 16, 16, 16, 16, 16, 16, - - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 19, 21, 68, 16, - 73, 79, 19, 144, 151, 1146, 19, 57, 144, 19, - 54, 26, 26, 26, 26, 26, 57, 125, 54, 19, - 54, 68, 79, 125, 19, 26, 26, 19, 57, 26, - 19, 54, 134, 205, 555, 21, 555, 205, 125, 54, - 80, 21, 26, 45, 73, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 134, 21, 22, 22, 22, - - 22, 22, 22, 22, 22, 22, 22, 138, 140, 101, - 1140, 22, 22, 22, 22, 22, 22, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 26, 81, 80, - 60, 101, 101, 81, 22, 22, 22, 22, 22, 37, - 37, 37, 146, 153, 148, 1139, 60, 146, 60, 178, - 60, 138, 140, 60, 178, 136, 178, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 60, 96, 60, - 86, 37, 37, 37, 37, 37, 37, 72, 136, 86, - 822, 207, 81, 97, 96, 207, 822, 97, 153, 97, - 96, 107, 107, 148, 37, 37, 37, 37, 37, 39, - - 39, 39, 39, 39, 39, 39, 39, 39, 39, 97, - 72, 1132, 107, 39, 39, 39, 39, 39, 39, 1129, - 251, 72, 161, 59, 86, 251, 137, 116, 59, 215, - 97, 72, 123, 59, 123, 135, 39, 39, 39, 39, - 39, 41, 41, 41, 59, 161, 116, 120, 137, 59, - 116, 120, 120, 120, 120, 123, 135, 123, 147, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 126, - 126, 1121, 127, 41, 41, 41, 41, 41, 41, 147, - 160, 127, 149, 215, 160, 106, 160, 149, 117, 106, - 126, 106, 117, 127, 117, 1120, 41, 41, 41, 41, - - 41, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 106, 106, 236, 117, 44, 44, 44, 44, 44, - 44, 122, 162, 122, 122, 122, 122, 122, 122, 578, - 1118, 578, 106, 106, 236, 117, 149, 1116, 44, 44, - 44, 44, 44, 63, 63, 162, 1095, 1076, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 1075, 1072, 128, 131, 71, 71, - 71, 71, 71, 71, 154, 584, 1050, 584, 170, 172, - 100, 128, 183, 154, 100, 100, 100, 100, 128, 131, - 131, 71, 71, 71, 71, 71, 74, 74, 74, 74, - 74, 170, 172, 181, 166, 183, 100, 74, 166, 312, - 166, 1049, 1034, 312, 100, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 181, 181, 100, 154, 74, - - 74, 74, 74, 74, 74, 100, 182, 1031, 1015, 184, - 104, 182, 238, 182, 104, 104, 104, 104, 1014, 376, - 187, 74, 74, 74, 74, 74, 74, 82, 82, 82, - 82, 82, 184, 82, 238, 124, 104, 124, 124, 124, - 124, 124, 124, 187, 985, 104, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 130, 104, 176, 377, - 82, 82, 82, 82, 82, 82, 104, 186, 376, 971, - 383, 186, 130, 186, 130, 383, 130, 176, 970, 130, - 188, 176, 82, 82, 82, 82, 82, 82, 84, 84, - 84, 84, 84, 130, 169, 130, 195, 195, 169, 169, - - 169, 169, 314, 188, 377, 197, 314, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 195, 199, 237, - 967, 84, 84, 84, 84, 84, 84, 141, 197, 192, - 944, 239, 177, 192, 385, 192, 177, 141, 177, 385, - 237, 199, 252, 84, 84, 84, 84, 84, 84, 87, - 87, 87, 87, 87, 239, 220, 196, 220, 177, 87, - 196, 196, 196, 196, 525, 368, 255, 943, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 220, 177, - 220, 141, 87, 87, 87, 87, 87, 87, 212, 255, - 246, 940, 212, 240, 212, 102, 252, 256, 932, 102, - - 102, 102, 102, 240, 87, 87, 87, 87, 87, 87, - 91, 246, 268, 525, 91, 91, 91, 91, 254, 368, - 256, 102, 254, 129, 254, 102, 927, 270, 129, 528, - 91, 91, 91, 129, 91, 268, 91, 924, 280, 91, - 91, 91, 102, 280, 129, 280, 102, 240, 911, 129, - 270, 284, 91, 91, 91, 91, 284, 91, 284, 910, - 91, 91, 91, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 397, 528, 417, 285, 93, 93, 93, - 93, 93, 93, 203, 589, 907, 589, 203, 203, 203, - 203, 217, 286, 290, 291, 217, 217, 217, 217, 285, - - 93, 93, 93, 93, 93, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 286, 290, 291, 295, 95, - 95, 95, 95, 95, 95, 296, 891, 397, 108, 417, - 419, 95, 108, 111, 108, 303, 888, 111, 111, 111, - 111, 295, 95, 95, 95, 95, 95, 259, 296, 108, - 294, 259, 95, 259, 108, 294, 115, 294, 303, 111, - 115, 115, 115, 115, 111, 257, 257, 257, 257, 257, - 263, 108, 665, 211, 263, 108, 263, 211, 789, 211, - 111, 344, 115, 789, 419, 111, 875, 305, 115, 121, - 115, 344, 121, 121, 121, 121, 121, 121, 121, 211, - - 874, 277, 344, 115, 121, 277, 121, 277, 871, 115, - 305, 115, 119, 119, 119, 119, 119, 665, 866, 219, - 211, 219, 219, 219, 219, 219, 219, 121, 601, 121, - 601, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 329, 627, 329, 627, 119, 119, 119, 119, 119, - 119, 258, 258, 258, 258, 258, 191, 353, 353, 351, - 191, 191, 191, 191, 329, 351, 329, 119, 119, 119, - 119, 119, 119, 139, 139, 139, 139, 139, 353, 371, - 351, 221, 191, 221, 221, 221, 221, 221, 221, 854, - 851, 191, 139, 139, 139, 139, 139, 139, 139, 139, - - 139, 139, 371, 191, 357, 364, 139, 139, 139, 139, - 139, 139, 191, 232, 232, 232, 232, 232, 267, 357, - 850, 392, 267, 267, 267, 267, 357, 364, 364, 139, - 139, 139, 139, 139, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 392, 369, 232, 346, 142, 142, - 142, 142, 142, 142, 272, 272, 272, 272, 272, 273, - 273, 273, 273, 273, 393, 346, 369, 370, 232, 232, - 346, 142, 142, 142, 142, 142, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 440, 393, 370, 409, - 150, 150, 150, 150, 150, 150, 274, 274, 274, 274, - - 274, 287, 287, 287, 287, 287, 288, 288, 288, 288, - 288, 794, 409, 150, 150, 150, 150, 150, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 386, 791, - 790, 411, 152, 152, 152, 152, 152, 152, 782, 778, - 440, 224, 224, 224, 224, 224, 289, 298, 775, 386, - 289, 298, 289, 298, 411, 152, 152, 152, 152, 152, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 634, 406, 634, 634, 155, 155, 155, 155, 155, 155, - 292, 292, 292, 292, 292, 774, 224, 406, 157, 157, - 157, 157, 157, 406, 224, 433, 224, 155, 155, 155, - - 155, 155, 157, 157, 165, 318, 157, 224, 165, 318, - 165, 318, 662, 520, 433, 224, 302, 356, 433, 157, - 302, 302, 302, 302, 165, 293, 293, 293, 293, 293, - 165, 654, 218, 355, 520, 218, 218, 218, 218, 218, - 218, 218, 355, 354, 321, 772, 165, 218, 321, 218, - 321, 165, 654, 751, 355, 266, 266, 266, 266, 266, - 783, 662, 356, 750, 157, 159, 159, 159, 159, 159, - 218, 356, 218, 307, 307, 307, 307, 307, 308, 308, - 308, 308, 308, 356, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 266, 435, 354, 354, 159, 159, - - 159, 159, 159, 159, 283, 283, 283, 283, 283, 783, - 266, 309, 309, 309, 309, 309, 266, 354, 435, 748, - 747, 159, 159, 159, 159, 159, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 447, 283, 741, 436, - 216, 216, 216, 216, 216, 216, 315, 315, 315, 315, - 315, 223, 223, 223, 223, 223, 352, 431, 739, 283, - 283, 347, 436, 216, 216, 216, 216, 216, 222, 222, - 222, 222, 222, 225, 225, 225, 225, 225, 735, 431, - 431, 226, 226, 226, 226, 226, 442, 222, 223, 1051, - 447, 222, 222, 222, 222, 678, 223, 347, 443, 227, - - 227, 227, 227, 227, 352, 733, 223, 427, 365, 442, - 352, 223, 427, 222, 427, 347, 678, 223, 225, 449, - 347, 443, 225, 222, 730, 352, 226, 786, 225, 228, - 228, 228, 228, 228, 222, 226, 226, 473, 1051, 225, - 365, 473, 449, 225, 227, 227, 729, 226, 229, 229, - 229, 229, 229, 712, 227, 358, 226, 301, 301, 301, - 301, 301, 365, 365, 391, 227, 227, 398, 391, 228, - 391, 398, 786, 398, 228, 233, 233, 233, 233, 233, - 807, 310, 468, 711, 228, 310, 310, 310, 310, 345, - 470, 228, 359, 229, 358, 228, 709, 359, 229, 480, - - 326, 807, 359, 229, 326, 326, 326, 326, 233, 358, - 708, 301, 301, 359, 229, 233, 358, 705, 359, 229, - 230, 230, 230, 230, 230, 316, 316, 316, 316, 316, - 233, 233, 301, 345, 450, 703, 468, 233, 234, 234, - 234, 234, 234, 345, 470, 702, 242, 242, 242, 242, - 242, 460, 242, 480, 345, 230, 242, 450, 242, 317, - 317, 317, 317, 317, 242, 230, 394, 394, 394, 394, - 394, 230, 697, 230, 460, 230, 402, 475, 230, 349, - 402, 475, 402, 234, 457, 457, 230, 349, 234, 349, - 482, 695, 230, 234, 230, 231, 231, 231, 231, 231, - - 349, 242, 462, 615, 234, 457, 363, 615, 349, 234, - 363, 363, 363, 363, 231, 692, 691, 434, 231, 231, - 231, 231, 434, 617, 434, 462, 327, 617, 231, 327, - 327, 327, 327, 327, 327, 327, 395, 395, 395, 395, - 395, 327, 519, 327, 482, 324, 324, 324, 324, 324, - 231, 231, 241, 241, 241, 241, 241, 401, 401, 401, - 401, 401, 689, 348, 327, 519, 327, 348, 348, 348, - 348, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 324, 688, 348, 493, 241, 241, 241, 241, 241, - 241, 328, 671, 328, 328, 328, 328, 328, 328, 348, - - 324, 668, 740, 493, 324, 348, 740, 493, 241, 241, - 241, 241, 241, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 497, 497, 497, 497, 243, 243, 243, - 243, 243, 243, 330, 661, 330, 330, 330, 330, 330, - 330, 408, 687, 823, 687, 408, 408, 408, 408, 823, - 243, 243, 243, 243, 243, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 516, 516, 516, 516, 247, - 247, 247, 247, 247, 247, 341, 341, 341, 341, 341, - 413, 413, 413, 413, 413, 414, 414, 414, 414, 414, - 657, 629, 247, 247, 247, 247, 247, 248, 248, 248, - - 248, 248, 248, 248, 248, 248, 248, 628, 341, 539, - 545, 248, 248, 248, 248, 248, 248, 415, 415, 415, - 415, 415, 420, 423, 625, 623, 420, 423, 420, 423, - 341, 341, 539, 545, 248, 248, 248, 248, 248, 249, - 249, 249, 249, 249, 249, 249, 249, 249, 249, 484, - 554, 546, 560, 249, 249, 249, 249, 249, 249, 430, - 430, 430, 430, 430, 437, 437, 437, 437, 437, 438, - 438, 438, 438, 438, 546, 560, 249, 249, 249, 249, - 249, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 1063, 430, 562, 585, 253, 253, 253, 253, 253, - - 253, 432, 441, 484, 554, 707, 441, 707, 441, 444, - 444, 444, 444, 444, 430, 430, 562, 585, 253, 253, - 253, 253, 253, 276, 276, 276, 276, 276, 276, 276, - 276, 276, 276, 432, 600, 575, 1063, 276, 276, 276, - 276, 276, 276, 445, 445, 445, 445, 445, 518, 518, - 518, 518, 448, 586, 575, 432, 432, 448, 575, 448, - 276, 276, 276, 276, 276, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 458, 586, 590, 591, 325, - 325, 325, 325, 325, 325, 622, 616, 407, 600, 626, - 332, 332, 332, 332, 332, 451, 451, 451, 451, 451, - - 590, 591, 325, 325, 325, 325, 325, 331, 331, 331, - 331, 331, 333, 333, 333, 333, 333, 360, 494, 334, - 334, 334, 334, 334, 614, 407, 331, 332, 458, 458, - 331, 331, 331, 331, 609, 332, 335, 335, 335, 335, - 335, 407, 453, 626, 607, 332, 453, 407, 453, 458, - 332, 742, 331, 494, 485, 742, 332, 333, 485, 603, - 485, 360, 331, 706, 334, 333, 360, 333, 334, 602, - 594, 360, 494, 331, 334, 594, 494, 594, 333, 849, - 595, 335, 360, 599, 849, 334, 333, 360, 650, 334, - 335, 335, 336, 336, 336, 336, 336, 350, 559, 559, - - 559, 559, 335, 595, 650, 337, 337, 337, 337, 337, - 650, 335, 452, 452, 452, 452, 452, 706, 338, 338, - 338, 338, 338, 580, 342, 342, 342, 342, 342, 724, - 579, 724, 343, 343, 343, 343, 343, 336, 336, 844, - 489, 350, 844, 596, 489, 337, 489, 336, 459, 350, - 337, 350, 459, 459, 459, 459, 573, 342, 336, 336, - 337, 362, 350, 338, 342, 361, 596, 337, 338, 572, - 350, 337, 549, 338, 606, 569, 549, 343, 549, 342, - 342, 361, 343, 361, 338, 361, 342, 343, 361, 338, - 339, 339, 339, 339, 339, 362, 568, 606, 343, 563, - - 663, 608, 361, 343, 361, 663, 456, 456, 456, 456, - 456, 362, 746, 362, 746, 362, 567, 561, 362, 582, - 567, 867, 567, 366, 608, 339, 867, 366, 366, 366, - 366, 870, 362, 571, 362, 339, 870, 571, 582, 571, - 366, 339, 582, 339, 636, 339, 636, 636, 339, 426, - 426, 426, 426, 426, 663, 557, 339, 683, 556, 366, - 456, 456, 339, 366, 339, 340, 340, 340, 340, 340, - 464, 464, 464, 464, 464, 465, 465, 465, 465, 465, - 683, 456, 872, 553, 340, 426, 684, 872, 340, 340, - 340, 340, 551, 374, 374, 374, 374, 374, 340, 374, - - 819, 550, 819, 374, 426, 374, 621, 491, 426, 684, - 621, 374, 621, 490, 405, 405, 405, 405, 405, 487, - 340, 340, 373, 373, 373, 373, 373, 373, 373, 373, - 373, 373, 605, 605, 605, 605, 373, 373, 373, 373, - 373, 373, 466, 466, 466, 466, 466, 906, 374, 694, - 471, 486, 906, 405, 471, 471, 471, 471, 483, 373, - 373, 373, 373, 373, 375, 375, 375, 375, 375, 405, - 375, 820, 694, 820, 375, 405, 375, 379, 379, 379, - 379, 379, 375, 379, 481, 479, 474, 379, 472, 379, - 379, 613, 613, 613, 613, 379, 476, 476, 476, 476, - - 476, 477, 477, 477, 477, 477, 478, 478, 478, 478, - 478, 488, 488, 488, 488, 488, 469, 467, 499, 375, - 499, 499, 499, 499, 499, 499, 547, 547, 547, 547, - 547, 463, 379, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 381, 381, 381, 381, 381, 548, - 548, 548, 548, 548, 461, 492, 492, 492, 492, 492, - 455, 576, 454, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 446, 439, 652, 696, 381, 381, 381, - 381, 381, 381, 498, 498, 498, 498, 498, 498, 498, - 716, 492, 429, 714, 652, 498, 576, 498, 652, 696, - 381, 381, 381, 381, 381, 387, 387, 387, 387, 387, - 492, 387, 714, 716, 492, 576, 714, 701, 498, 576, - 498, 701, 428, 701, 387, 387, 387, 387, 387, 387, - - 387, 387, 387, 387, 717, 425, 720, 424, 387, 387, - 387, 387, 387, 387, 500, 500, 500, 500, 500, 500, - 500, 552, 552, 552, 552, 552, 500, 717, 500, 720, - 387, 387, 387, 387, 387, 387, 388, 388, 388, 388, - 388, 501, 721, 501, 501, 501, 501, 501, 501, 500, - 422, 500, 388, 421, 418, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 721, 416, 412, 410, 388, - 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, - - 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 404, 403, 400, 388, 389, 389, 389, 389, - 389, 564, 564, 564, 564, 564, 389, 399, 908, 515, - 515, 515, 515, 908, 396, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 515, 725, 726, 1052, 389, - 389, 389, 389, 389, 389, 1052, 512, 512, 512, 512, - 512, 515, 565, 565, 565, 565, 565, 515, 384, 725, - 726, 389, 389, 389, 389, 389, 389, 390, 390, 390, - 390, 390, 390, 390, 390, 390, 390, 382, 367, 512, - 732, 390, 390, 390, 390, 390, 390, 1052, 323, 504, - - 504, 504, 504, 504, 322, 320, 502, 502, 502, 502, - 502, 512, 512, 732, 390, 390, 390, 390, 390, 496, - 496, 496, 496, 496, 496, 496, 496, 496, 496, 502, - 502, 502, 502, 496, 496, 496, 496, 496, 496, 503, - 503, 503, 503, 503, 504, 319, 505, 505, 505, 505, - 505, 502, 504, 313, 504, 311, 496, 496, 496, 496, - 496, 502, 306, 304, 300, 504, 506, 506, 506, 506, - 506, 299, 502, 504, 666, 734, 503, 297, 507, 507, - 507, 507, 507, 666, 503, 508, 508, 508, 508, 508, - 282, 505, 784, 281, 503, 505, 832, 784, 734, 503, - - 279, 505, 278, 832, 275, 503, 566, 566, 566, 566, - 566, 506, 505, 787, 936, 271, 505, 269, 265, 936, - 506, 506, 787, 507, 507, 508, 832, 264, 666, 262, - 508, 261, 506, 507, 509, 509, 509, 509, 509, 260, - 508, 506, 250, 941, 507, 507, 784, 508, 941, 245, - 244, 508, 570, 570, 570, 570, 570, 511, 511, 511, - 511, 511, 513, 513, 513, 513, 513, 787, 214, 833, - 213, 514, 514, 514, 514, 514, 833, 210, 209, 509, - 511, 511, 511, 511, 509, 208, 206, 204, 202, 509, - 511, 517, 517, 517, 517, 513, 963, 201, 968, 833, - - 509, 963, 513, 968, 517, 509, 510, 510, 510, 510, - 510, 200, 511, 511, 986, 990, 514, 513, 513, 986, - 990, 514, 198, 517, 513, 194, 514, 517, 523, 523, - 523, 523, 523, 1005, 1043, 193, 190, 514, 1005, 1043, - 523, 510, 514, 1073, 1096, 189, 523, 1064, 1073, 1096, - 1064, 510, 558, 558, 558, 558, 558, 510, 1098, 510, - 185, 510, 180, 1098, 510, 587, 587, 587, 587, 587, - 179, 175, 510, 574, 574, 574, 574, 574, 510, 174, - 510, 522, 522, 522, 522, 522, 522, 522, 522, 522, - 522, 558, 1064, 173, 171, 522, 522, 522, 522, 522, - - 522, 588, 588, 588, 588, 588, 1109, 558, 168, 574, - 1117, 1109, 1130, 558, 167, 1117, 164, 1130, 522, 522, - 522, 522, 522, 524, 524, 524, 524, 524, 574, 524, - 163, 158, 574, 524, 1133, 524, 524, 156, 145, 1133, - 143, 524, 526, 526, 526, 526, 526, 592, 592, 592, - 592, 592, 133, 132, 526, 531, 531, 531, 531, 531, - 526, 531, 118, 114, 113, 531, 112, 531, 593, 593, - 593, 593, 593, 531, 110, 109, 105, 103, 524, 527, - 527, 527, 597, 597, 597, 597, 597, 581, 581, 581, - 581, 581, 598, 598, 598, 598, 598, 527, 527, 527, - - 527, 527, 527, 527, 527, 527, 527, 99, 98, 94, - 531, 527, 527, 527, 527, 527, 527, 92, 89, 83, - 581, 610, 610, 610, 610, 610, 611, 611, 611, 611, - 611, 78, 77, 64, 527, 527, 527, 527, 527, 529, - 529, 529, 581, 581, 612, 612, 612, 612, 612, 618, - 618, 618, 618, 618, 62, 51, 48, 529, 529, 529, - 529, 529, 529, 529, 529, 529, 529, 46, 42, 38, - 33, 529, 529, 529, 529, 529, 529, 619, 619, 619, - 619, 619, 620, 620, 620, 620, 620, 624, 624, 624, - 624, 624, 29, 25, 529, 529, 529, 529, 529, 530, - - 530, 530, 530, 530, 530, 24, 530, 17, 15, 1148, - 530, 530, 530, 530, 1148, 9, 3, 0, 530, 532, - 532, 532, 532, 532, 0, 532, 0, 0, 0, 532, - 0, 532, 533, 533, 533, 533, 533, 532, 533, 0, - 0, 0, 533, 0, 533, 604, 604, 604, 604, 604, - 533, 0, 0, 0, 0, 530, 0, 534, 534, 534, - 534, 534, 0, 534, 0, 0, 0, 534, 0, 534, - 0, 0, 0, 0, 532, 534, 535, 535, 535, 535, - 535, 0, 535, 0, 0, 0, 535, 533, 535, 535, - 1028, 1028, 0, 0, 535, 0, 0, 0, 1028, 604, - - 604, 1028, 633, 633, 633, 0, 633, 633, 633, 950, - 950, 950, 534, 0, 633, 0, 633, 0, 950, 0, - 604, 950, 0, 0, 0, 630, 630, 630, 630, 630, - 0, 535, 536, 536, 536, 536, 536, 633, 536, 633, - 0, 0, 536, 1028, 536, 647, 647, 647, 647, 647, - 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, - 536, 630, 0, 950, 0, 536, 536, 536, 536, 536, - 536, 685, 685, 685, 685, 685, 0, 0, 0, 0, - 630, 0, 0, 0, 630, 0, 0, 536, 536, 536, - 536, 536, 536, 537, 537, 537, 537, 537, 537, 537, - - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 538, 538, 538, 538, 538, 686, - 686, 686, 686, 686, 0, 679, 679, 679, 679, 679, - 0, 679, 0, 538, 538, 538, 538, 538, 538, 538, - - 538, 538, 538, 0, 0, 0, 0, 538, 538, 538, - 538, 538, 538, 635, 635, 635, 0, 635, 635, 635, - 637, 637, 637, 637, 637, 635, 0, 635, 0, 0, - 538, 538, 538, 538, 538, 540, 540, 540, 540, 540, - 679, 540, 690, 690, 690, 690, 690, 0, 635, 0, - 635, 0, 0, 0, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 0, 637, 0, 0, 540, 540, - 540, 540, 540, 540, 0, 637, 0, 639, 639, 639, - 639, 639, 0, 0, 0, 0, 637, 0, 0, 0, - 540, 540, 540, 540, 540, 540, 541, 541, 541, 541, - - 541, 541, 541, 541, 541, 541, 0, 0, 0, 0, - 541, 541, 541, 541, 541, 541, 698, 698, 698, 698, - 698, 0, 639, 642, 642, 642, 642, 642, 0, 0, - 639, 0, 639, 541, 541, 541, 541, 541, 542, 542, - 542, 542, 542, 639, 0, 0, 0, 0, 542, 0, - 0, 639, 699, 699, 699, 699, 699, 542, 542, 542, - 542, 542, 542, 542, 542, 542, 542, 0, 0, 642, - 0, 542, 542, 542, 542, 542, 542, 0, 642, 641, - 641, 641, 641, 641, 700, 700, 700, 700, 700, 0, - 642, 0, 0, 542, 542, 542, 542, 542, 542, 543, - - 543, 543, 543, 543, 543, 543, 543, 543, 543, 0, - 0, 0, 0, 543, 543, 543, 543, 543, 543, 640, - 640, 640, 640, 640, 0, 0, 0, 0, 638, 638, - 638, 638, 638, 641, 641, 0, 543, 543, 543, 543, - 543, 632, 632, 632, 632, 632, 632, 632, 632, 632, - 632, 0, 0, 0, 641, 632, 632, 632, 632, 632, - 632, 0, 0, 0, 0, 638, 0, 0, 640, 643, - 643, 643, 643, 643, 640, 0, 0, 0, 632, 632, - 632, 632, 632, 638, 0, 0, 0, 0, 638, 640, - 644, 644, 644, 644, 644, 645, 645, 645, 645, 645, - - 0, 0, 0, 646, 646, 646, 646, 646, 0, 643, - 0, 648, 648, 648, 648, 648, 693, 693, 693, 693, - 693, 0, 0, 0, 643, 649, 649, 649, 649, 649, - 645, 643, 0, 0, 0, 644, 646, 0, 0, 0, - 644, 1066, 1066, 0, 0, 644, 645, 0, 645, 1066, - 645, 648, 1066, 645, 0, 693, 644, 0, 646, 646, - 0, 644, 0, 0, 0, 0, 648, 645, 0, 645, - 649, 693, 0, 648, 0, 649, 0, 693, 0, 0, - 649, 704, 704, 704, 704, 704, 718, 718, 718, 718, - 718, 649, 0, 0, 1066, 0, 649, 656, 656, 656, - - 656, 656, 656, 656, 656, 656, 656, 0, 0, 0, - 0, 656, 656, 656, 656, 656, 656, 0, 0, 0, - 0, 710, 710, 710, 710, 710, 719, 719, 719, 719, - 719, 0, 0, 0, 656, 656, 656, 656, 656, 658, - 658, 658, 658, 658, 658, 0, 658, 0, 0, 0, - 658, 658, 658, 658, 0, 0, 0, 710, 658, 659, - 659, 659, 659, 659, 0, 0, 669, 669, 669, 669, - 669, 659, 0, 996, 996, 996, 710, 659, 669, 669, - 710, 0, 996, 0, 669, 996, 0, 0, 0, 675, - 675, 675, 675, 675, 0, 658, 664, 664, 664, 664, - - 664, 675, 664, 0, 0, 0, 0, 675, 713, 713, - 713, 713, 713, 0, 0, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 0, 0, 996, 0, 664, - 664, 664, 664, 664, 664, 722, 722, 722, 722, 722, - 0, 713, 0, 0, 675, 723, 723, 723, 723, 723, - 0, 664, 664, 664, 664, 664, 664, 667, 667, 667, - 667, 667, 0, 713, 713, 0, 0, 667, 727, 727, - 727, 727, 727, 0, 0, 0, 667, 667, 667, 667, - 667, 667, 667, 667, 667, 667, 0, 0, 0, 0, - 667, 667, 667, 667, 667, 667, 728, 728, 728, 728, - - 728, 736, 736, 736, 736, 736, 731, 731, 731, 731, - 731, 0, 667, 667, 667, 667, 667, 667, 670, 670, - 670, 670, 670, 670, 0, 670, 0, 0, 0, 670, - 670, 670, 670, 0, 0, 0, 0, 670, 737, 737, - 737, 737, 737, 738, 738, 738, 738, 738, 743, 743, - 743, 743, 743, 744, 744, 744, 744, 744, 0, 0, - 731, 731, 745, 745, 745, 745, 745, 749, 749, 749, - 749, 749, 0, 0, 670, 672, 672, 672, 672, 672, - 672, 731, 672, 0, 0, 0, 672, 672, 672, 672, - 0, 0, 0, 0, 672, 754, 754, 754, 754, 754, - - 0, 0, 752, 752, 752, 752, 752, 755, 755, 755, - 755, 755, 756, 756, 756, 756, 756, 0, 0, 760, - 760, 760, 760, 760, 0, 764, 764, 764, 764, 764, - 0, 672, 673, 673, 673, 673, 673, 673, 752, 673, - 0, 0, 0, 673, 673, 673, 673, 0, 0, 756, - 754, 673, 755, 0, 0, 0, 0, 752, 764, 0, - 0, 752, 755, 0, 0, 760, 0, 756, 0, 0, - 0, 0, 756, 755, 760, 773, 773, 773, 773, 773, - 764, 764, 0, 0, 0, 0, 760, 0, 673, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 676, 676, 676, 676, 676, 813, 813, 813, 813, 813, - 0, 0, 676, 761, 761, 761, 761, 761, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 0, - - 0, 813, 0, 676, 676, 676, 676, 676, 676, 1021, - 1021, 0, 0, 1021, 821, 821, 821, 821, 821, 0, - 1021, 0, 0, 761, 0, 676, 676, 676, 676, 676, - 676, 677, 677, 677, 677, 677, 0, 821, 761, 821, - 901, 901, 901, 901, 901, 761, 0, 0, 0, 0, - 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, - 0, 0, 1021, 901, 677, 677, 677, 677, 677, 677, - 759, 759, 759, 759, 759, 0, 834, 834, 834, 834, - 834, 0, 0, 0, 0, 0, 0, 677, 677, 677, - 677, 677, 680, 680, 680, 680, 680, 680, 680, 680, - - 680, 680, 834, 0, 0, 0, 680, 680, 680, 680, - 680, 680, 0, 765, 765, 765, 765, 765, 835, 835, - 835, 835, 835, 0, 759, 759, 0, 0, 0, 680, - 680, 680, 680, 680, 681, 681, 681, 681, 681, 681, - 681, 681, 681, 681, 835, 759, 0, 0, 681, 681, - 681, 681, 681, 681, 757, 757, 757, 757, 757, 0, - 0, 0, 0, 758, 758, 758, 758, 758, 765, 0, - 0, 681, 681, 681, 681, 681, 682, 682, 682, 682, - 682, 682, 682, 682, 682, 682, 0, 0, 0, 0, - 682, 682, 682, 682, 682, 682, 0, 0, 0, 757, - - 762, 762, 762, 762, 762, 0, 0, 757, 0, 757, - 0, 0, 758, 682, 682, 682, 682, 682, 758, 0, - 757, 763, 763, 763, 763, 763, 0, 0, 757, 0, - 0, 0, 0, 758, 0, 766, 766, 766, 766, 766, - 0, 0, 949, 949, 949, 762, 0, 949, 0, 0, - 762, 0, 0, 0, 949, 762, 763, 767, 767, 767, - 767, 767, 0, 0, 0, 0, 762, 0, 0, 0, - 0, 762, 763, 0, 763, 766, 763, 0, 0, 763, - 768, 768, 768, 768, 768, 769, 769, 769, 769, 769, - 766, 0, 0, 763, 0, 763, 949, 766, 992, 992, - - 992, 0, 767, 992, 0, 0, 0, 767, 0, 0, - 992, 0, 767, 770, 770, 770, 770, 770, 0, 768, - 0, 0, 0, 767, 0, 0, 0, 0, 767, 771, - 771, 771, 771, 771, 0, 768, 0, 0, 0, 0, - 769, 768, 776, 776, 776, 776, 776, 1054, 1054, 770, - 0, 1054, 992, 0, 776, 776, 0, 0, 1054, 0, - 776, 792, 792, 792, 792, 792, 0, 0, 770, 0, - 0, 0, 770, 792, 792, 0, 0, 0, 0, 792, - 0, 0, 0, 0, 771, 777, 777, 777, 777, 777, - 777, 0, 777, 0, 0, 0, 777, 777, 777, 777, - - 1054, 0, 0, 0, 777, 795, 795, 795, 795, 795, - 0, 795, 0, 0, 0, 795, 0, 795, 795, 0, - 0, 0, 0, 795, 808, 808, 808, 808, 808, 809, - 809, 809, 809, 809, 810, 810, 810, 810, 810, 0, - 0, 777, 779, 779, 779, 779, 779, 779, 0, 779, - 0, 0, 0, 779, 779, 779, 779, 0, 0, 0, - 795, 779, 0, 0, 0, 0, 814, 814, 814, 814, - 814, 815, 815, 815, 815, 815, 0, 0, 0, 808, - 0, 0, 0, 0, 809, 0, 0, 0, 0, 810, - 816, 816, 816, 816, 816, 0, 0, 0, 779, 780, - - 780, 780, 780, 780, 780, 814, 780, 0, 0, 0, - 780, 780, 780, 780, 0, 0, 0, 0, 780, 0, - 0, 814, 0, 0, 0, 0, 815, 814, 845, 845, - 845, 845, 845, 0, 852, 852, 852, 852, 852, 0, - 0, 0, 0, 0, 0, 816, 852, 852, 0, 0, - 0, 0, 852, 0, 845, 780, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 785, 785, 785, - 785, 785, 0, 785, 0, 0, 0, 0, 817, 817, - 817, 817, 817, 0, 0, 0, 785, 785, 785, 785, - 785, 785, 785, 785, 785, 785, 0, 0, 0, 0, - 785, 785, 785, 785, 785, 785, 1016, 1016, 1016, 0, - 0, 1016, 825, 825, 825, 825, 825, 0, 1016, 0, - 0, 0, 785, 785, 785, 785, 785, 785, 788, 788, - - 788, 788, 788, 817, 0, 0, 0, 0, 788, 0, - 0, 0, 0, 0, 0, 825, 0, 788, 788, 788, - 788, 788, 788, 788, 788, 788, 788, 0, 0, 0, - 1016, 788, 788, 788, 788, 788, 788, 825, 825, 824, - 824, 824, 824, 824, 826, 826, 826, 826, 826, 0, - 0, 0, 0, 788, 788, 788, 788, 788, 788, 793, - 793, 793, 793, 793, 793, 824, 793, 0, 0, 0, - 793, 793, 793, 793, 0, 824, 0, 0, 793, 0, - 826, 0, 0, 873, 873, 873, 873, 873, 1119, 1119, - 1119, 1119, 1119, 0, 824, 873, 873, 0, 824, 826, - - 1119, 873, 0, 826, 0, 0, 1119, 0, 0, 0, - 0, 0, 0, 0, 0, 793, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 797, 797, 797, - - 797, 797, 797, 0, 797, 0, 0, 0, 797, 797, - 797, 797, 0, 0, 0, 0, 797, 827, 827, 827, - 827, 827, 828, 828, 828, 828, 828, 829, 829, 829, - 829, 829, 830, 830, 830, 830, 830, 831, 831, 831, - 831, 831, 836, 836, 836, 836, 836, 837, 837, 837, - 837, 837, 0, 797, 798, 798, 798, 798, 798, 798, - 0, 798, 0, 0, 0, 798, 798, 798, 798, 0, - 0, 0, 827, 798, 994, 994, 994, 828, 0, 994, - 0, 0, 829, 0, 0, 0, 994, 830, 0, 0, - 0, 994, 831, 0, 0, 0, 836, 836, 0, 0, - - 0, 0, 837, 838, 838, 838, 838, 838, 0, 0, - 798, 799, 799, 799, 799, 799, 799, 836, 799, 0, - 0, 0, 799, 799, 799, 799, 0, 0, 994, 0, - 799, 839, 839, 839, 839, 839, 840, 840, 840, 840, - 840, 841, 841, 841, 841, 841, 842, 842, 842, 842, - 842, 0, 846, 846, 846, 846, 846, 0, 838, 847, - 847, 847, 847, 847, 0, 0, 0, 799, 800, 800, - 800, 800, 800, 800, 0, 800, 0, 0, 0, 800, - 800, 800, 800, 0, 0, 0, 839, 800, 846, 0, - 0, 840, 0, 0, 0, 0, 841, 1020, 1020, 1020, - - 0, 842, 1020, 0, 0, 0, 0, 846, 0, 1020, - 0, 846, 0, 0, 847, 0, 898, 898, 898, 898, - 898, 0, 0, 0, 800, 801, 801, 801, 801, 801, - 801, 0, 801, 0, 0, 0, 801, 801, 801, 801, - 0, 0, 0, 0, 801, 855, 855, 855, 855, 855, - 0, 1020, 889, 889, 889, 889, 889, 855, 855, 0, - 0, 0, 0, 855, 889, 889, 0, 0, 0, 0, - 889, 898, 902, 902, 902, 902, 902, 0, 0, 0, - 0, 801, 802, 802, 802, 802, 802, 802, 0, 802, - 0, 0, 0, 802, 802, 802, 802, 0, 0, 0, - - 855, 802, 903, 903, 903, 903, 903, 0, 902, 904, - 904, 904, 904, 904, 905, 905, 905, 905, 905, 962, - 962, 962, 962, 962, 1024, 1024, 1024, 902, 0, 0, - 0, 902, 0, 1024, 0, 0, 1024, 0, 802, 803, - 803, 803, 803, 803, 803, 0, 803, 0, 0, 0, - 803, 803, 803, 803, 0, 0, 0, 903, 803, 909, - 909, 909, 909, 909, 904, 0, 0, 0, 0, 905, - 0, 909, 909, 0, 962, 0, 0, 909, 1024, 0, - 0, 1010, 1010, 1010, 1010, 1010, 0, 1010, 0, 0, - 0, 0, 0, 0, 0, 803, 804, 804, 804, 804, - - 804, 804, 0, 804, 0, 0, 0, 804, 804, 804, - 804, 0, 0, 0, 0, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 0, 0, 0, 0, - 804, 804, 804, 804, 804, 804, 1010, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 804, 804, 804, 804, 804, 804, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, - - 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, 805, 806, - 806, 806, 806, 806, 0, 0, 0, 0, 0, 0, - 0, 806, 0, 0, 0, 0, 0, 806, 806, 806, - 806, 806, 806, 806, 806, 806, 806, 806, 0, 0, - 0, 0, 806, 806, 806, 806, 806, 806, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 806, 806, 806, 806, 806, 806, - - 811, 811, 811, 811, 811, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 811, - 811, 811, 811, 811, 811, 811, 811, 811, 811, 0, - 997, 997, 997, 811, 811, 811, 811, 811, 811, 997, - 0, 0, 997, 0, 0, 0, 0, 997, 0, 0, - 0, 0, 0, 0, 0, 811, 811, 811, 811, 811, - 811, 818, 818, 818, 818, 818, 818, 818, 818, 818, - 818, 0, 0, 0, 0, 818, 818, 818, 818, 818, - 818, 0, 0, 0, 997, 1011, 1011, 1011, 1011, 1011, - 0, 0, 0, 0, 0, 1011, 0, 0, 818, 818, - - 818, 818, 818, 853, 853, 853, 853, 853, 853, 0, - 853, 0, 0, 0, 853, 853, 853, 853, 0, 0, - 0, 0, 853, 925, 925, 925, 925, 925, 0, 0, - 942, 942, 942, 942, 942, 925, 925, 0, 0, 0, - 1011, 925, 942, 942, 0, 0, 0, 0, 942, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 853, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 857, 857, 857, 857, 857, 857, 0, 857, 0, - 0, 0, 857, 857, 857, 857, 0, 0, 0, 0, - 857, 969, 969, 969, 969, 969, 0, 0, 993, 993, - 993, 993, 993, 969, 969, 0, 0, 0, 0, 969, - 993, 993, 0, 0, 0, 0, 993, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 857, 858, 858, - - 858, 858, 858, 858, 0, 858, 0, 0, 0, 858, - 858, 858, 858, 0, 0, 0, 0, 858, 1003, 1003, - 1003, 1003, 1003, 0, 0, 1013, 1013, 1013, 1013, 1013, - 1003, 0, 0, 0, 0, 0, 1003, 1013, 1013, 0, - 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 858, 859, 859, 859, 859, 859, - 859, 0, 859, 0, 0, 0, 859, 859, 859, 859, - 0, 0, 0, 1003, 859, 1017, 1017, 1017, 1017, 1017, - 1018, 1018, 1018, 1018, 1018, 0, 1018, 1017, 1017, 1022, - 1022, 1022, 1018, 1017, 1022, 1027, 1027, 1027, 1018, 0, - - 0, 1022, 0, 0, 1027, 0, 1022, 1027, 0, 0, - 0, 859, 860, 860, 860, 860, 860, 860, 0, 860, - 0, 0, 0, 860, 860, 860, 860, 0, 0, 0, - 0, 860, 1060, 1060, 1060, 1018, 1025, 1025, 1025, 1025, - 1025, 1060, 0, 1022, 1060, 0, 1025, 0, 1025, 1027, - 1029, 1029, 1029, 0, 1025, 0, 0, 0, 0, 1029, - 0, 0, 1029, 0, 0, 0, 0, 1029, 860, 861, - 861, 861, 861, 861, 861, 0, 861, 0, 0, 0, - 861, 861, 861, 861, 0, 0, 1060, 0, 861, 0, - 0, 1025, 0, 1032, 1032, 1032, 1032, 1032, 1044, 1044, - - 1044, 0, 0, 1044, 1029, 1032, 1032, 1046, 1046, 1046, - 1044, 1032, 1046, 0, 0, 0, 0, 0, 0, 1046, - 0, 0, 0, 0, 1046, 861, 862, 862, 862, 862, - 862, 862, 0, 862, 0, 0, 0, 862, 862, 862, - 862, 0, 0, 0, 0, 862, 1045, 1045, 1045, 1045, - 1045, 0, 1044, 1048, 1048, 1048, 1048, 1048, 1045, 1045, - 0, 1046, 0, 0, 1045, 1048, 1048, 1053, 1053, 1053, - 0, 1048, 1053, 0, 0, 0, 0, 0, 0, 1053, - 0, 0, 862, 863, 863, 863, 863, 863, 863, 0, - 863, 0, 0, 0, 863, 863, 863, 863, 0, 0, - - 0, 0, 863, 1055, 1055, 1055, 0, 0, 1055, 0, - 0, 0, 0, 0, 0, 1055, 0, 1057, 1057, 1057, - 1055, 1053, 1057, 0, 0, 0, 1058, 1058, 1058, 1057, - 0, 1058, 0, 0, 0, 0, 0, 0, 1058, 863, - 864, 864, 864, 864, 864, 864, 0, 864, 0, 0, - 0, 864, 864, 864, 864, 0, 0, 1055, 0, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, - 0, 1057, 0, 0, 864, 864, 864, 864, 864, 864, - 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 864, 864, 864, 864, - - 864, 864, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 868, 868, 868, 868, 868, 0, 868, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 868, 868, 868, 868, 868, 868, 868, 868, - 868, 868, 0, 0, 0, 0, 868, 868, 868, 868, - 868, 868, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 868, 868, - 868, 868, 868, 868, 869, 869, 869, 869, 869, 0, - 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, - 0, 0, 0, 869, 869, 869, 869, 869, 869, 869, - 869, 869, 869, 0, 1061, 1061, 1061, 869, 869, 869, - 869, 869, 869, 1061, 0, 0, 1061, 0, 0, 0, - 0, 1061, 0, 0, 0, 0, 0, 0, 0, 869, - - 869, 869, 869, 869, 869, 876, 876, 876, 876, 876, - 876, 0, 876, 0, 0, 0, 876, 876, 876, 876, - 0, 0, 0, 0, 876, 1065, 1065, 1065, 1061, 1067, - 1067, 1067, 0, 0, 1065, 0, 0, 1065, 1067, 0, - 0, 1067, 1069, 1069, 1069, 0, 1067, 1070, 1070, 1070, - 0, 1069, 0, 0, 1069, 0, 1070, 0, 0, 1070, - 0, 876, 877, 877, 877, 877, 877, 877, 0, 877, - 0, 0, 0, 877, 877, 877, 877, 0, 0, 1065, - 0, 877, 0, 1067, 0, 1074, 1074, 1074, 1074, 1074, - 1099, 1099, 1099, 0, 0, 1099, 1069, 1074, 1074, 0, - - 0, 1070, 1099, 1074, 1100, 1100, 1100, 0, 0, 1100, - 0, 0, 0, 0, 0, 0, 1100, 0, 877, 878, - 878, 878, 878, 878, 878, 0, 878, 0, 0, 0, - 878, 878, 878, 878, 0, 0, 0, 0, 878, 1097, - 1097, 1097, 1097, 1097, 1099, 0, 0, 0, 0, 0, - 0, 1097, 1097, 0, 0, 0, 0, 1097, 1100, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 878, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 880, 880, 880, - 880, 880, 880, 0, 880, 0, 0, 0, 880, 880, - 880, 880, 0, 0, 0, 0, 880, 1101, 1101, 1101, - 0, 0, 1101, 1104, 1104, 1104, 0, 0, 0, 1101, - 0, 0, 1104, 0, 0, 1104, 1105, 1105, 1105, 0, - - 1106, 1106, 1106, 0, 0, 1105, 0, 0, 1105, 1106, - 0, 0, 1106, 880, 881, 881, 881, 881, 881, 881, - 0, 881, 0, 0, 0, 881, 881, 881, 881, 0, - 0, 1101, 0, 881, 0, 0, 0, 1104, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1105, 0, 0, 0, 1106, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 881, 882, 882, 882, 882, 882, 882, 0, 882, 0, - 0, 0, 882, 882, 882, 882, 0, 0, 0, 0, - 882, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 882, 883, 883, - 883, 883, 883, 883, 0, 883, 0, 0, 0, 883, - 883, 883, 883, 0, 0, 0, 0, 883, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 883, 884, 884, 884, 884, 884, - 884, 0, 884, 0, 0, 0, 884, 884, 884, 884, - - 0, 0, 0, 0, 884, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 884, 885, 885, 885, 885, 885, 885, 0, 885, - 0, 0, 0, 885, 885, 885, 885, 0, 0, 0, - 0, 885, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 885, 886, - - 886, 886, 886, 886, 886, 0, 886, 0, 0, 0, - 886, 886, 886, 886, 0, 0, 0, 0, 886, 886, - 886, 886, 886, 886, 886, 886, 886, 886, 886, 0, - 0, 0, 0, 886, 886, 886, 886, 886, 886, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 886, 886, 886, 886, 886, - 886, 890, 890, 890, 890, 890, 890, 0, 890, 0, - 0, 0, 890, 890, 890, 890, 0, 0, 0, 0, - 890, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 890, 892, 892, - 892, 892, 892, 892, 0, 892, 0, 0, 0, 892, - 892, 892, 892, 0, 0, 0, 0, 892, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 892, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 894, 894, 894, 894, - 894, 894, 0, 894, 0, 0, 0, 894, 894, 894, - 894, 0, 0, 0, 0, 894, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 894, 895, 895, 895, 895, 895, 895, 0, - 895, 0, 0, 0, 895, 895, 895, 895, 0, 0, - 0, 0, 895, 895, 895, 895, 895, 895, 895, 895, - 895, 895, 895, 0, 0, 0, 0, 895, 895, 895, - 895, 895, 895, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 895, - 895, 895, 895, 895, 895, 896, 896, 896, 896, 896, - 0, 0, 0, 0, 0, 0, 0, 896, 0, 0, - 0, 0, 0, 896, 896, 896, 896, 896, 896, 896, - - 896, 896, 896, 896, 0, 0, 0, 0, 896, 896, - 896, 896, 896, 896, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 896, 896, 896, 896, 896, 896, 899, 899, 899, 899, - 899, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 0, 0, 0, 0, 899, - 899, 899, 899, 899, 899, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 899, 899, 899, 899, 899, 899, 912, 912, 912, - - 912, 912, 912, 0, 912, 0, 0, 0, 912, 912, - 912, 912, 0, 0, 0, 0, 912, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 912, 913, 913, 913, 913, 913, 913, - 0, 913, 0, 0, 0, 913, 913, 913, 913, 0, - 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 913, 914, 914, 914, 914, 914, 914, 0, 914, 0, - 0, 0, 914, 914, 914, 914, 0, 0, 0, 0, - 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 914, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 916, - 916, 916, 916, 916, 916, 0, 916, 0, 0, 0, - 916, 916, 916, 916, 0, 0, 0, 0, 916, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 916, 917, 917, 917, 917, - 917, 917, 0, 917, 0, 0, 0, 917, 917, 917, - 917, 0, 0, 0, 0, 917, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 917, 918, 918, 918, 918, 918, 918, 0, - 918, 0, 0, 0, 918, 918, 918, 918, 0, 0, - 0, 0, 918, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 918, - 919, 919, 919, 919, 919, 919, 0, 919, 0, 0, - 0, 919, 919, 919, 919, 0, 0, 0, 0, 919, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 919, 920, 920, 920, - 920, 920, 920, 0, 920, 0, 0, 0, 920, 920, - 920, 920, 0, 0, 0, 0, 920, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 920, 921, 921, 921, 921, 921, 921, - 0, 921, 0, 0, 0, 921, 921, 921, 921, 0, - 0, 0, 0, 921, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 921, 922, 922, 922, 922, 922, 922, 0, 922, 0, - - 0, 0, 922, 922, 922, 922, 0, 0, 0, 0, - 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, - 922, 0, 0, 0, 0, 922, 922, 922, 922, 922, - 922, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 922, 922, 922, - 922, 922, 922, 926, 926, 926, 926, 926, 926, 0, - 926, 0, 0, 0, 926, 926, 926, 926, 0, 0, - 0, 0, 926, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 926, - 928, 928, 928, 928, 928, 928, 0, 928, 0, 0, - 0, 928, 928, 928, 928, 0, 0, 0, 0, 928, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 928, 929, 929, 929, - 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, - 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, - 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, - - 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, - 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, - 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, - 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, - 929, 929, 929, 929, 929, 929, 929, 929, 930, 930, - 930, 930, 930, 930, 0, 930, 0, 0, 0, 930, - 930, 930, 930, 0, 0, 0, 0, 930, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 930, 931, 931, 931, 931, 931, - 931, 0, 931, 0, 0, 0, 931, 931, 931, 931, - 0, 0, 0, 0, 931, 931, 931, 931, 931, 931, - 931, 931, 931, 931, 931, 0, 0, 0, 0, 931, - 931, 931, 931, 931, 931, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 931, 931, 931, 931, 931, 931, 933, 933, 933, - 933, 933, 0, 933, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 933, 933, 933, 933, - 933, 933, 933, 933, 933, 933, 0, 0, 0, 0, - - 933, 933, 933, 933, 933, 933, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 933, 933, 933, 933, 933, 933, 934, 934, - 934, 934, 934, 0, 0, 0, 0, 0, 934, 0, - 0, 0, 0, 0, 0, 0, 0, 934, 934, 934, - 934, 934, 934, 934, 934, 934, 934, 0, 0, 0, - 0, 934, 934, 934, 934, 934, 934, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 934, 934, 934, 934, 934, 934, 935, - 935, 935, 935, 935, 935, 0, 935, 0, 0, 0, - - 935, 935, 935, 935, 0, 0, 0, 0, 935, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 935, 937, 937, 937, 937, - 937, 937, 0, 937, 0, 0, 0, 937, 937, 937, - 937, 0, 0, 0, 0, 937, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 937, 938, 938, 938, 938, 938, 938, 0, - 938, 0, 0, 0, 938, 938, 938, 938, 0, 0, - 0, 0, 938, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, - 939, 939, 939, 939, 939, 939, 0, 939, 0, 0, - 0, 939, 939, 939, 939, 0, 0, 0, 0, 939, - 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, - 0, 0, 0, 0, 939, 939, 939, 939, 939, 939, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 939, 939, 939, 939, - 939, 939, 945, 945, 945, 945, 945, 945, 0, 945, - 0, 0, 0, 945, 945, 945, 945, 0, 0, 0, - 0, 945, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 945, 946, - 946, 946, 946, 946, 946, 0, 946, 0, 0, 0, - 946, 946, 946, 946, 0, 0, 0, 0, 946, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 946, 947, 947, 947, 947, - 947, 947, 0, 947, 0, 0, 0, 947, 947, 947, - 947, 0, 0, 0, 0, 947, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 947, 948, 948, 948, 948, 948, 948, 948, - - 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 948, 948, 948, 951, 951, 951, 951, 951, 951, - 0, 951, 0, 0, 0, 951, 951, 951, 951, 0, - 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 951, 952, 952, 952, 952, 952, 952, 0, 952, 0, - 0, 0, 952, 952, 952, 952, 0, 0, 0, 0, - 952, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 952, 953, 953, - 953, 953, 953, 953, 0, 953, 0, 0, 0, 953, - - 953, 953, 953, 0, 0, 0, 0, 953, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 953, 954, 954, 954, 954, 954, - 954, 0, 954, 0, 0, 0, 954, 954, 954, 954, - 0, 0, 0, 0, 954, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 954, 955, 955, 955, 955, 955, 955, 0, 955, - 0, 0, 0, 955, 955, 955, 955, 0, 0, 0, - 0, 955, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 955, 956, - 956, 956, 956, 956, 956, 0, 956, 0, 0, 0, - 956, 956, 956, 956, 0, 0, 0, 0, 956, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 956, 957, 957, 957, 957, - 957, 957, 0, 957, 0, 0, 0, 957, 957, 957, - 957, 0, 0, 0, 0, 957, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 957, 958, 958, 958, 958, 958, 958, 0, - 958, 0, 0, 0, 958, 958, 958, 958, 0, 0, - 0, 0, 958, 958, 958, 958, 958, 958, 958, 958, - - 958, 958, 958, 0, 0, 0, 0, 958, 958, 958, - 958, 958, 958, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 958, - 958, 958, 958, 958, 958, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 961, 961, 961, 961, - 961, 0, 0, 0, 0, 0, 0, 0, 961, 0, - 0, 0, 0, 0, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 0, 0, 0, 0, 961, - 961, 961, 961, 961, 961, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 961, 961, 961, 961, 961, 961, 964, 964, 964, - 964, 964, 964, 0, 964, 0, 0, 0, 964, 964, - 964, 964, 0, 0, 0, 0, 964, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 964, 965, 965, 965, 965, 965, 965, - 0, 965, 0, 0, 0, 965, 965, 965, 965, 0, - 0, 0, 0, 965, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 965, 966, 966, 966, 966, 966, 966, 0, 966, 0, - - 0, 0, 966, 966, 966, 966, 0, 0, 0, 0, - 966, 966, 966, 966, 966, 966, 966, 966, 966, 966, - 966, 0, 0, 0, 0, 966, 966, 966, 966, 966, - 966, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 966, 966, 966, - 966, 966, 966, 972, 972, 972, 972, 972, 972, 0, - 972, 0, 0, 0, 972, 972, 972, 972, 0, 0, - 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, - 973, 973, 973, 973, 973, 973, 0, 973, 0, 0, - 0, 973, 973, 973, 973, 0, 0, 0, 0, 973, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 973, 974, 974, 974, - 974, 974, 974, 0, 974, 0, 0, 0, 974, 974, - 974, 974, 0, 0, 0, 0, 974, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 974, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - - 975, 975, 975, 975, 975, 976, 976, 976, 976, 976, - 976, 0, 976, 0, 0, 0, 976, 976, 976, 976, - 0, 0, 0, 0, 976, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 976, 977, 977, 977, 977, 977, 977, 0, 977, - 0, 0, 0, 977, 977, 977, 977, 0, 0, 0, - 0, 977, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 977, 978, - 978, 978, 978, 978, 978, 0, 978, 0, 0, 0, - 978, 978, 978, 978, 0, 0, 0, 0, 978, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 978, 979, 979, 979, 979, - 979, 979, 0, 979, 0, 0, 0, 979, 979, 979, - 979, 0, 0, 0, 0, 979, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 979, 980, 980, 980, 980, 980, 980, 0, - 980, 0, 0, 0, 980, 980, 980, 980, 0, 0, - 0, 0, 980, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 980, - 981, 981, 981, 981, 981, 981, 0, 981, 0, 0, - - 0, 981, 981, 981, 981, 0, 0, 0, 0, 981, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 981, 982, 982, 982, - 982, 982, 982, 0, 982, 0, 0, 0, 982, 982, - 982, 982, 0, 0, 0, 0, 982, 982, 982, 982, - 982, 982, 982, 982, 982, 982, 982, 0, 0, 0, - 0, 982, 982, 982, 982, 982, 982, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 982, 982, 982, 982, 982, 982, 984, - 984, 984, 984, 984, 984, 0, 984, 0, 0, 0, - 984, 984, 984, 984, 0, 0, 0, 0, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 0, - 0, 0, 0, 984, 984, 984, 984, 984, 984, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 984, 984, 984, 984, 984, - 984, 987, 987, 987, 987, 987, 0, 987, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, - - 0, 0, 0, 0, 987, 987, 987, 987, 987, 987, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 987, 987, 987, 987, - 987, 987, 988, 988, 988, 988, 988, 0, 0, 0, - 0, 0, 988, 0, 0, 0, 0, 0, 0, 0, - 0, 988, 988, 988, 988, 988, 988, 988, 988, 988, - 988, 0, 0, 0, 0, 988, 988, 988, 988, 988, - 988, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 988, 988, 988, - 988, 988, 988, 989, 989, 989, 989, 989, 989, 989, - - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, - 989, 989, 989, 989, 991, 991, 991, 991, 991, 991, - 0, 991, 0, 0, 0, 991, 991, 991, 991, 0, - 0, 0, 0, 991, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 991, 995, 995, 995, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 995, 0, 0, 0, 0, 0, 995, - 995, 995, 995, 995, 995, 995, 995, 995, 995, 0, - 0, 0, 0, 995, 995, 995, 995, 995, 995, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 995, 995, 995, 995, - 995, 998, 998, 998, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 998, 0, 0, 0, 0, 0, 998, - 998, 998, 998, 998, 998, 998, 998, 998, 998, 0, - 0, 0, 0, 998, 998, 998, 998, 998, 998, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 998, 998, 998, 998, - 998, 999, 999, 999, 999, 999, 999, 0, 999, 0, - 0, 0, 999, 999, 999, 999, 0, 0, 0, 0, - 999, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 999, 1000, 1000, - 1000, 1000, 1000, 1000, 0, 1000, 0, 0, 0, 1000, - 1000, 1000, 1000, 0, 0, 0, 0, 1000, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1000, 1001, 1001, 1001, 1001, 1001, - 1001, 0, 1001, 0, 0, 0, 1001, 1001, 1001, 1001, - 0, 0, 0, 0, 1001, 1001, 1001, 1001, 1001, 1001, - 1001, 1001, 1001, 1001, 1001, 0, 0, 0, 0, 1001, - - 1001, 1001, 1001, 1001, 1001, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1001, 1001, 1001, 1001, 1001, 1001, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1006, - 1006, 1006, 1006, 1006, 1006, 0, 1006, 0, 0, 0, - - 1006, 1006, 1006, 1006, 0, 0, 0, 0, 1006, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1006, 1007, 1007, 1007, 1007, - 1007, 1007, 0, 1007, 0, 0, 0, 1007, 1007, 1007, - 1007, 0, 0, 0, 0, 1007, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 1007, 1008, 1008, 1008, 1008, 1008, 1008, 0, - 1008, 0, 0, 0, 1008, 1008, 1008, 1008, 0, 0, - 0, 0, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, - 1008, 1008, 1008, 0, 0, 0, 0, 1008, 1008, 1008, - 1008, 1008, 1008, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, + 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, + 7, 7, 7, 7, 8, 9, 10, 11, 17, 22, + + 22, 22, 22, 22, 36, 7, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 25, 30, 82, 470, + 1113, 470, 58, 27, 16, 46, 25, 26, 7, 64, + 16, 26, 9, 26, 16, 1097, 11, 16, 25, 10, + 17, 8, 7, 46, 16, 58, 36, 16, 46, 26, + 133, 7, 14, 16, 30, 82, 16, 14, 14, 16, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 27, 64, 26, 133, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 18, 33, + 14, 38, 67, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 49, 49, 23, 23, 23, 23, 23, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 48, 23, 1069, 45, 18, 49, 48, 84, 78, 1068, + 18, 74, 33, 45, 67, 74, 89, 74, 154, 89, + 167, 154, 48, 167, 23, 45, 18, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 51, 23, 170, + 50, 19, 19, 19, 19, 19, 19, 23, 1058, 50, + + 84, 47, 51, 52, 54, 78, 61, 1050, 52, 47, + 51, 47, 50, 52, 19, 19, 19, 19, 19, 19, + 29, 29, 29, 47, 59, 52, 54, 54, 61, 61, + 52, 47, 170, 664, 59, 664, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 59, 60, 148, 72, + 29, 29, 29, 29, 29, 29, 72, 150, 79, 85, + 66, 299, 195, 79, 299, 60, 1049, 195, 85, 195, + 60, 72, 1025, 29, 29, 29, 29, 29, 29, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 53, + 148, 66, 126, 32, 32, 32, 32, 32, 32, 150, + + 73, 126, 66, 1012, 73, 53, 73, 53, 100, 53, + 79, 85, 53, 66, 126, 77, 32, 32, 32, 32, + 32, 32, 34, 34, 34, 77, 73, 53, 124, 53, + 100, 100, 222, 1011, 124, 95, 222, 77, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 73, 151, + 124, 95, 34, 34, 34, 34, 34, 34, 95, 151, + 224, 991, 990, 163, 224, 96, 105, 988, 453, 96, + 105, 96, 105, 987, 980, 34, 34, 34, 34, 34, + 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 96, 105, 105, 130, 37, 37, 37, 37, 37, + + 37, 151, 119, 979, 106, 106, 119, 119, 119, 119, + 163, 453, 969, 96, 105, 105, 130, 130, 37, 37, + 37, 37, 37, 37, 56, 56, 106, 968, 951, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + + 56, 56, 56, 62, 115, 935, 134, 62, 62, 62, + 62, 137, 669, 134, 669, 137, 158, 137, 116, 125, + 125, 253, 116, 115, 116, 62, 138, 115, 134, 62, + 127, 121, 62, 121, 121, 121, 121, 121, 121, 158, + 934, 125, 138, 253, 116, 127, 139, 932, 62, 138, + 139, 62, 139, 127, 62, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 911, 116, 159, 136, 65, + 65, 65, 65, 65, 65, 458, 157, 910, 458, 99, + 157, 141, 157, 99, 99, 99, 99, 136, 129, 141, + 159, 136, 65, 65, 65, 65, 65, 65, 68, 68, + + 68, 68, 68, 160, 129, 99, 129, 642, 129, 68, + 160, 129, 141, 99, 147, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 160, 129, 99, 129, 68, + 68, 68, 68, 68, 68, 99, 147, 147, 360, 103, + 908, 155, 360, 103, 103, 103, 103, 232, 452, 155, + 642, 68, 68, 68, 68, 68, 68, 68, 80, 80, + 80, 80, 80, 155, 80, 103, 123, 907, 123, 123, + 123, 123, 123, 123, 103, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 473, 178, 103, 473, 80, + 80, 80, 80, 80, 80, 452, 103, 135, 901, 232, + + 140, 135, 143, 135, 140, 140, 140, 140, 146, 178, + 143, 80, 80, 80, 80, 80, 80, 80, 83, 83, + 83, 83, 83, 135, 161, 179, 146, 680, 161, 680, + 161, 146, 899, 143, 83, 83, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 135, 145, 187, 179, 83, + 83, 83, 83, 83, 83, 156, 145, 177, 895, 893, + 156, 177, 156, 177, 164, 703, 890, 703, 145, 164, + 187, 83, 83, 83, 83, 83, 83, 83, 86, 86, + 86, 86, 86, 183, 156, 189, 186, 183, 86, 183, + 186, 186, 186, 186, 300, 86, 86, 86, 86, 86, + + 86, 86, 86, 86, 86, 168, 156, 814, 189, 86, + 86, 86, 86, 86, 86, 194, 164, 198, 199, 194, + 168, 194, 101, 199, 200, 199, 101, 101, 101, 101, + 193, 86, 86, 86, 86, 86, 86, 86, 90, 198, + 198, 194, 90, 90, 90, 90, 300, 200, 101, 193, + 814, 128, 101, 193, 201, 889, 128, 168, 90, 90, + 90, 128, 90, 194, 90, 204, 171, 90, 90, 90, + 101, 872, 362, 128, 101, 171, 362, 201, 128, 205, + 214, 90, 90, 90, 90, 709, 90, 709, 204, 90, + 90, 90, 92, 92, 92, 92, 92, 92, 92, 92, + + 92, 92, 205, 214, 216, 257, 92, 92, 92, 92, + 92, 92, 871, 162, 162, 162, 162, 162, 171, 203, + 209, 869, 258, 203, 209, 203, 209, 216, 257, 92, + 92, 92, 92, 92, 92, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 258, 639, 868, 865, 94, + 94, 94, 94, 94, 94, 559, 162, 260, 107, 559, + 863, 94, 107, 110, 107, 862, 162, 110, 110, 110, + 110, 260, 94, 94, 94, 94, 94, 94, 162, 107, + 260, 114, 265, 94, 107, 114, 114, 114, 114, 110, + 212, 212, 213, 639, 110, 254, 213, 213, 213, 213, + + 265, 286, 107, 254, 182, 265, 107, 114, 182, 286, + 182, 110, 212, 114, 220, 114, 110, 254, 220, 220, + 220, 220, 229, 286, 182, 857, 229, 228, 229, 114, + 182, 228, 561, 228, 855, 114, 561, 114, 118, 118, + 118, 118, 118, 303, 234, 304, 852, 182, 234, 234, + 234, 234, 182, 228, 316, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 714, 303, 714, 304, 118, + 118, 118, 118, 118, 118, 228, 256, 316, 259, 255, + 256, 416, 256, 208, 255, 259, 255, 208, 208, 208, + 208, 118, 118, 118, 118, 118, 118, 118, 120, 851, + + 259, 120, 120, 120, 120, 120, 120, 120, 255, 208, + 261, 318, 333, 120, 261, 120, 261, 236, 208, 236, + 236, 236, 236, 236, 236, 242, 242, 242, 242, 242, + 255, 208, 849, 416, 318, 333, 120, 483, 120, 122, + 208, 334, 122, 122, 122, 122, 122, 122, 122, 305, + 305, 305, 305, 305, 122, 238, 122, 238, 238, 238, + 238, 238, 238, 262, 334, 275, 283, 262, 242, 262, + 267, 283, 242, 283, 267, 275, 267, 122, 242, 122, + 149, 149, 149, 149, 149, 848, 281, 266, 831, 483, + 242, 266, 281, 266, 242, 338, 830, 149, 149, 149, + + 149, 149, 149, 149, 149, 149, 149, 266, 281, 339, + 343, 149, 149, 149, 149, 149, 149, 275, 338, 249, + 249, 249, 249, 249, 726, 282, 726, 795, 344, 282, + 266, 282, 339, 343, 149, 149, 149, 149, 149, 149, + 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, + 249, 344, 794, 282, 152, 152, 152, 152, 152, 152, + 270, 752, 784, 752, 270, 270, 270, 270, 957, 783, + 287, 351, 249, 249, 287, 282, 287, 152, 152, 152, + 152, 152, 152, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 754, 351, 292, 417, 165, 165, 165, + + 165, 165, 165, 753, 272, 272, 272, 272, 272, 290, + 302, 957, 328, 290, 302, 290, 302, 328, 417, 328, + 165, 165, 165, 165, 165, 165, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 291, 292, 353, 272, + 169, 169, 169, 169, 169, 169, 291, 292, 750, 792, + 503, 792, 241, 241, 241, 241, 241, 272, 291, 292, + 779, 353, 272, 169, 169, 169, 169, 169, 169, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 401, + 401, 748, 779, 172, 172, 172, 172, 172, 172, 306, + 306, 306, 306, 306, 811, 241, 244, 244, 244, 244, + + 244, 401, 503, 241, 405, 241, 172, 172, 172, 172, + 172, 172, 176, 176, 176, 176, 176, 241, 307, 405, + 747, 332, 307, 741, 307, 241, 332, 405, 332, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 244, + 244, 811, 392, 176, 176, 176, 176, 176, 176, 244, + 739, 954, 392, 273, 273, 273, 273, 273, 734, 311, + 412, 244, 244, 311, 392, 311, 176, 176, 176, 176, + 176, 176, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 412, 412, 273, 462, 233, 233, 233, 233, + 233, 233, 240, 240, 240, 240, 240, 801, 954, 801, + + 505, 271, 271, 271, 271, 271, 273, 273, 462, 233, + 233, 233, 233, 233, 233, 235, 526, 533, 235, 235, + 235, 235, 235, 235, 235, 325, 732, 240, 463, 325, + 235, 325, 235, 728, 727, 240, 468, 243, 243, 243, + 243, 243, 315, 468, 271, 240, 315, 315, 315, 315, + 240, 463, 505, 235, 271, 235, 237, 240, 468, 237, + 237, 237, 237, 237, 237, 237, 271, 724, 526, 533, + 403, 237, 478, 237, 245, 245, 245, 245, 245, 403, + 243, 246, 246, 246, 246, 246, 402, 337, 705, 243, + 243, 337, 403, 337, 237, 478, 237, 239, 239, 239, + + 239, 239, 243, 704, 251, 251, 251, 251, 251, 346, + 479, 243, 245, 346, 239, 346, 554, 245, 239, 239, + 239, 239, 324, 698, 246, 342, 324, 245, 324, 246, + 342, 697, 342, 479, 246, 245, 556, 402, 402, 245, + 239, 250, 250, 250, 250, 250, 246, 251, 324, 350, + 239, 246, 251, 350, 350, 350, 350, 251, 759, 402, + 759, 759, 239, 247, 247, 247, 247, 247, 554, 251, + 324, 358, 250, 694, 251, 358, 358, 358, 358, 250, + 288, 288, 288, 288, 288, 807, 693, 807, 556, 274, + 274, 274, 274, 274, 250, 250, 247, 277, 277, 277, + + 277, 277, 250, 277, 366, 566, 247, 277, 366, 277, + 366, 369, 247, 397, 247, 369, 247, 369, 740, 247, + 688, 397, 740, 397, 274, 374, 288, 686, 247, 374, + 374, 374, 374, 288, 247, 397, 247, 248, 248, 248, + 248, 248, 274, 397, 838, 399, 838, 274, 288, 424, + 277, 399, 742, 424, 248, 424, 742, 566, 248, 248, + 248, 248, 320, 320, 320, 320, 320, 399, 248, 280, + 280, 280, 280, 280, 321, 321, 321, 321, 321, 322, + 322, 322, 322, 322, 495, 280, 583, 583, 583, 583, + 248, 248, 276, 276, 276, 276, 276, 335, 335, 335, + + 335, 335, 336, 336, 336, 336, 336, 495, 280, 276, + 276, 276, 276, 276, 276, 276, 276, 276, 276, 682, + 681, 423, 280, 276, 276, 276, 276, 276, 276, 423, + 678, 280, 289, 289, 289, 289, 289, 340, 340, 340, + 340, 340, 427, 423, 676, 675, 276, 276, 276, 276, + 276, 276, 278, 278, 278, 278, 278, 278, 278, 278, + 278, 278, 656, 492, 427, 427, 278, 278, 278, 278, + 278, 278, 341, 341, 341, 341, 341, 655, 289, 492, + 331, 331, 331, 331, 331, 289, 492, 630, 629, 278, + 278, 278, 278, 278, 278, 355, 355, 355, 355, 355, + + 289, 293, 293, 293, 293, 293, 293, 293, 293, 293, + 293, 331, 621, 447, 497, 293, 293, 293, 293, 293, + 293, 620, 577, 349, 349, 349, 349, 349, 356, 356, + 356, 356, 356, 331, 331, 447, 447, 497, 293, 293, + 293, 293, 293, 293, 296, 296, 296, 296, 296, 296, + 296, 296, 296, 296, 576, 517, 394, 521, 296, 296, + 296, 296, 296, 296, 357, 357, 357, 357, 357, 363, + 363, 363, 363, 363, 394, 349, 349, 517, 517, 394, + 521, 296, 296, 296, 296, 296, 296, 297, 297, 297, + 297, 297, 297, 297, 297, 297, 297, 349, 847, 573, + + 847, 297, 297, 297, 297, 297, 297, 364, 364, 364, + 364, 364, 572, 314, 314, 314, 314, 314, 365, 365, + 365, 365, 365, 393, 297, 297, 297, 297, 297, 297, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, + 761, 522, 761, 761, 301, 301, 301, 301, 301, 301, + 314, 372, 372, 372, 372, 372, 376, 569, 376, 376, + 376, 376, 376, 376, 522, 393, 314, 301, 301, 301, + 301, 301, 301, 314, 378, 393, 378, 378, 378, 378, + 378, 378, 409, 568, 459, 372, 567, 393, 459, 565, + 389, 389, 389, 389, 389, 429, 560, 418, 409, 429, + + 409, 429, 409, 418, 372, 409, 459, 558, 372, 373, + 373, 373, 373, 373, 373, 373, 373, 373, 373, 418, + 409, 389, 409, 373, 373, 373, 373, 373, 373, 380, + 380, 380, 380, 380, 867, 568, 867, 555, 381, 381, + 381, 381, 381, 389, 389, 553, 373, 373, 373, 373, + 373, 373, 375, 549, 547, 375, 375, 375, 375, 375, + 375, 375, 900, 420, 380, 528, 900, 375, 420, 375, + 420, 395, 380, 400, 382, 382, 382, 382, 382, 411, + 398, 381, 380, 411, 411, 411, 411, 380, 528, 381, + 375, 381, 375, 377, 380, 541, 377, 377, 377, 377, + + 377, 377, 377, 381, 662, 395, 529, 884, 377, 884, + 377, 381, 662, 406, 419, 540, 532, 382, 419, 400, + 419, 382, 398, 395, 404, 400, 662, 382, 395, 529, + 398, 377, 398, 377, 379, 379, 379, 379, 379, 382, + 570, 400, 419, 382, 398, 383, 383, 383, 383, 383, + 406, 379, 398, 543, 543, 379, 379, 379, 379, 384, + 384, 384, 384, 384, 419, 406, 525, 404, 385, 385, + 385, 385, 385, 406, 679, 543, 404, 379, 464, 386, + 386, 386, 386, 386, 464, 515, 407, 379, 383, 404, + 413, 407, 570, 906, 514, 906, 407, 383, 383, 379, + + 464, 432, 384, 384, 493, 432, 385, 432, 407, 544, + 383, 385, 384, 407, 391, 391, 391, 391, 391, 383, + 413, 385, 386, 465, 384, 384, 679, 386, 465, 385, + 465, 511, 386, 385, 390, 390, 390, 390, 390, 510, + 493, 414, 413, 413, 386, 414, 414, 414, 414, 386, + 387, 387, 387, 387, 387, 535, 493, 391, 414, 410, + 544, 544, 391, 493, 435, 390, 408, 391, 435, 396, + 435, 536, 390, 396, 396, 396, 396, 414, 535, 391, + 725, 414, 544, 387, 391, 508, 436, 390, 390, 396, + 436, 410, 436, 387, 536, 390, 546, 507, 428, 387, + + 443, 387, 428, 387, 428, 396, 387, 410, 408, 410, + 443, 410, 396, 408, 410, 387, 504, 502, 408, 546, + 428, 387, 443, 387, 388, 388, 388, 388, 388, 410, + 408, 410, 725, 498, 496, 408, 425, 425, 425, 425, + 425, 388, 446, 428, 439, 388, 388, 388, 388, 426, + 426, 426, 426, 426, 444, 388, 433, 433, 433, 433, + 433, 490, 439, 448, 440, 548, 489, 439, 440, 445, + 440, 441, 441, 441, 441, 441, 446, 388, 388, 442, + 486, 485, 425, 442, 442, 442, 442, 445, 548, 425, + 433, 482, 445, 448, 446, 426, 444, 461, 472, 446, + + 513, 461, 426, 461, 425, 513, 444, 513, 441, 433, + 942, 457, 942, 433, 460, 448, 448, 426, 444, 460, + 438, 460, 467, 477, 441, 437, 467, 477, 467, 477, + 518, 441, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 605, 469, 460, 609, 449, 449, 449, 449, + 449, 449, 450, 450, 450, 450, 450, 484, 450, 431, + 518, 484, 450, 484, 450, 605, 460, 430, 609, 449, + 449, 449, 449, 449, 449, 451, 451, 451, 451, 451, + 488, 451, 518, 518, 488, 451, 488, 451, 469, 480, + 480, 480, 480, 480, 422, 469, 481, 481, 481, 481, + + 481, 421, 494, 610, 670, 450, 494, 494, 494, 494, + 469, 487, 487, 487, 487, 487, 499, 499, 499, 499, + 499, 500, 500, 500, 500, 500, 610, 670, 451, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + + 455, 455, 455, 455, 455, 455, 455, 455, 456, 456, + 456, 456, 456, 415, 371, 466, 466, 466, 466, 466, + 491, 491, 491, 491, 491, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 602, 602, 602, 602, 456, + 456, 456, 456, 456, 456, 501, 501, 501, 501, 501, + 506, 519, 370, 368, 506, 509, 506, 491, 367, 509, + 466, 509, 456, 456, 456, 456, 456, 456, 466, 361, + 519, 520, 359, 491, 519, 527, 520, 354, 520, 527, + 491, 527, 466, 471, 471, 471, 471, 471, 352, 471, + 523, 523, 523, 523, 523, 512, 512, 512, 512, 512, + + 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, + 604, 604, 604, 604, 471, 471, 471, 471, 471, 471, + 524, 524, 524, 524, 524, 948, 348, 948, 615, 512, + 530, 530, 530, 530, 530, 615, 471, 471, 471, 471, + 471, 471, 471, 474, 474, 474, 474, 474, 512, 534, + 615, 606, 512, 347, 534, 606, 534, 474, 345, 330, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 952, 329, 952, 606, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + + 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 474, 474, 327, 622, + 474, 475, 475, 475, 475, 475, 475, 475, 475, 475, + 475, 636, 636, 636, 636, 475, 475, 475, 475, 475, + 475, 622, 622, 516, 516, 516, 516, 516, 531, 531, + 531, 531, 531, 537, 537, 537, 537, 537, 475, 475, + 475, 475, 475, 475, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 516, 975, 634, 975, 476, 476, + 476, 476, 476, 476, 538, 538, 538, 538, 538, 539, + 326, 652, 634, 539, 571, 539, 516, 516, 571, 634, + + 571, 476, 476, 476, 476, 476, 476, 542, 542, 542, + 542, 542, 545, 652, 652, 671, 545, 545, 545, 545, + 550, 550, 550, 550, 550, 551, 551, 551, 551, 551, + 552, 552, 552, 552, 552, 557, 580, 751, 671, 557, + 557, 557, 557, 562, 562, 562, 562, 562, 563, 563, + 563, 563, 563, 564, 564, 564, 564, 564, 323, 542, + 542, 574, 574, 574, 574, 574, 575, 579, 319, 580, + 575, 317, 575, 578, 578, 578, 578, 578, 608, 902, + 612, 542, 608, 902, 608, 612, 579, 612, 580, 751, + 579, 585, 580, 585, 585, 585, 585, 585, 585, 587, + + 313, 587, 587, 587, 587, 587, 587, 578, 614, 618, + 815, 654, 614, 618, 614, 618, 654, 312, 654, 815, + 598, 598, 598, 598, 598, 986, 578, 986, 310, 309, + 578, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 598, 598, 598, 598, 582, 582, 582, 582, 582, + 582, 584, 584, 584, 584, 584, 584, 584, 601, 601, + 601, 601, 815, 584, 308, 584, 616, 298, 582, 582, + 582, 582, 582, 582, 601, 586, 586, 586, 586, 586, + 586, 586, 684, 684, 684, 684, 584, 586, 584, 586, + 601, 603, 603, 603, 603, 607, 685, 601, 294, 611, + + 607, 661, 607, 619, 603, 611, 661, 619, 661, 619, + 586, 616, 586, 588, 588, 588, 588, 588, 616, 685, + 623, 611, 285, 603, 623, 607, 623, 603, 672, 672, + 672, 672, 672, 616, 588, 588, 588, 588, 626, 613, + 613, 613, 613, 613, 625, 657, 687, 607, 625, 657, + 625, 624, 624, 624, 624, 624, 588, 626, 628, 631, + 627, 626, 628, 631, 628, 631, 588, 657, 284, 687, + 632, 632, 632, 632, 632, 635, 279, 269, 588, 589, + 589, 589, 589, 589, 613, 633, 710, 711, 268, 633, + 624, 633, 613, 627, 264, 638, 638, 638, 638, 638, + + 589, 589, 589, 589, 624, 632, 613, 638, 263, 710, + 711, 635, 627, 624, 589, 231, 627, 640, 640, 640, + 640, 640, 1022, 632, 1022, 812, 653, 635, 632, 640, + 812, 653, 589, 653, 635, 230, 866, 589, 590, 590, + 590, 590, 590, 644, 644, 644, 644, 644, 658, 644, + 227, 226, 658, 644, 658, 644, 715, 225, 653, 590, + 590, 590, 590, 223, 645, 645, 645, 645, 645, 674, + 645, 221, 716, 674, 645, 674, 645, 812, 219, 715, + 653, 590, 646, 646, 646, 646, 646, 663, 866, 590, + 1026, 590, 1026, 218, 646, 716, 644, 217, 647, 647, + + 647, 647, 647, 590, 647, 1027, 215, 1027, 647, 720, + 647, 590, 591, 591, 591, 591, 591, 645, 648, 648, + 648, 648, 648, 692, 648, 211, 210, 692, 648, 692, + 648, 663, 720, 591, 591, 591, 591, 207, 206, 663, + 659, 659, 659, 659, 659, 660, 660, 660, 660, 660, + 1047, 647, 1047, 663, 673, 673, 673, 673, 673, 591, + 677, 677, 677, 677, 677, 591, 689, 689, 689, 689, + 689, 648, 700, 683, 683, 683, 683, 683, 707, 721, + 202, 591, 592, 592, 592, 592, 592, 659, 731, 733, + 696, 700, 660, 659, 696, 700, 696, 707, 660, 701, + + 197, 707, 721, 592, 592, 592, 592, 196, 192, 659, + 683, 731, 733, 191, 660, 690, 690, 690, 690, 690, + 691, 691, 691, 691, 691, 190, 683, 695, 695, 695, + 695, 695, 701, 683, 592, 592, 699, 699, 699, 699, + 699, 706, 706, 706, 706, 706, 712, 712, 712, 712, + 712, 701, 1059, 188, 1059, 701, 592, 593, 593, 593, + 593, 593, 713, 713, 713, 713, 713, 843, 185, 777, + 699, 184, 706, 717, 717, 717, 717, 717, 593, 593, + 593, 593, 718, 718, 718, 718, 718, 181, 777, 699, + 843, 719, 777, 699, 706, 706, 719, 1060, 719, 1060, + + 790, 593, 722, 722, 722, 722, 722, 958, 790, 180, + 593, 723, 723, 723, 723, 723, 958, 729, 729, 729, + 729, 729, 790, 593, 594, 594, 594, 594, 594, 730, + 730, 730, 730, 735, 735, 735, 735, 735, 736, 736, + 736, 736, 736, 175, 173, 594, 594, 594, 594, 737, + 737, 737, 737, 737, 738, 738, 738, 738, 166, 958, + 775, 844, 594, 743, 743, 743, 743, 743, 153, 729, + 729, 744, 744, 744, 744, 744, 775, 594, 745, 745, + 745, 745, 745, 775, 844, 594, 595, 595, 595, 595, + 595, 729, 746, 144, 142, 854, 746, 856, 746, 749, + + 749, 749, 749, 749, 132, 758, 758, 758, 799, 758, + 758, 758, 755, 755, 755, 755, 755, 758, 854, 758, + 856, 131, 799, 762, 762, 762, 762, 762, 782, 595, + 832, 799, 785, 782, 595, 782, 785, 595, 117, 595, + 758, 113, 758, 760, 760, 760, 755, 760, 760, 760, + 112, 595, 832, 832, 785, 760, 595, 760, 791, 595, + 596, 596, 596, 596, 596, 755, 762, 111, 874, 755, + 763, 763, 763, 763, 763, 1077, 762, 1077, 760, 109, + 760, 772, 772, 772, 772, 772, 786, 874, 762, 805, + 786, 874, 786, 596, 108, 104, 764, 764, 764, 764, + + 764, 789, 791, 596, 102, 763, 789, 805, 789, 596, + 791, 596, 805, 596, 98, 97, 596, 765, 765, 765, + 765, 765, 781, 763, 791, 596, 793, 781, 763, 781, + 793, 596, 793, 596, 597, 597, 597, 597, 597, 764, + 93, 827, 766, 766, 766, 766, 766, 764, 91, 764, + 827, 1079, 88, 1079, 781, 597, 597, 597, 597, 81, + 76, 764, 796, 827, 765, 597, 796, 75, 796, 764, + 765, 767, 767, 767, 767, 767, 781, 71, 876, 768, + 768, 768, 768, 768, 800, 877, 765, 597, 597, 599, + 599, 599, 599, 599, 766, 766, 769, 769, 769, 769, + + 769, 876, 57, 771, 771, 771, 771, 771, 877, 55, + 599, 599, 599, 599, 798, 767, 766, 768, 798, 802, + 798, 1075, 800, 802, 767, 802, 806, 599, 44, 804, + 1075, 41, 768, 804, 771, 804, 800, 767, 39, 769, + 768, 829, 599, 1075, 769, 800, 829, 35, 829, 769, + 599, 600, 600, 600, 600, 600, 771, 771, 828, 835, + 806, 769, 828, 835, 828, 835, 769, 787, 787, 787, + 787, 787, 803, 803, 803, 803, 803, 880, 806, 1090, + 1098, 1090, 1098, 806, 773, 773, 773, 773, 773, 809, + 809, 809, 809, 809, 600, 881, 31, 24, 833, 600, + + 880, 809, 600, 833, 600, 833, 774, 774, 774, 774, + 774, 861, 21, 836, 787, 861, 600, 861, 881, 836, + 787, 600, 773, 885, 600, 637, 637, 637, 637, 637, + 637, 637, 637, 637, 637, 836, 787, 773, 886, 637, + 637, 637, 637, 637, 637, 773, 885, 20, 933, 774, + 892, 894, 939, 933, 774, 933, 939, 15, 939, 774, + 946, 886, 637, 637, 637, 637, 637, 637, 641, 641, + 641, 774, 1000, 892, 894, 13, 774, 797, 797, 797, + 797, 797, 946, 946, 641, 641, 641, 641, 641, 641, + 641, 641, 641, 641, 3, 1000, 1001, 1039, 641, 641, + + 641, 641, 641, 641, 1100, 0, 1100, 0, 797, 845, + 845, 845, 845, 845, 846, 846, 846, 846, 846, 1001, + 1039, 641, 641, 641, 641, 641, 641, 643, 643, 643, + 797, 797, 850, 850, 850, 850, 850, 858, 858, 858, + 858, 858, 0, 643, 643, 643, 643, 643, 643, 643, + 643, 643, 643, 0, 1040, 0, 0, 643, 643, 643, + 643, 643, 643, 817, 817, 817, 817, 817, 943, 817, + 0, 937, 943, 817, 943, 817, 937, 1040, 937, 0, + 643, 643, 643, 643, 643, 643, 649, 649, 649, 649, + 649, 940, 649, 0, 0, 945, 649, 940, 649, 945, + + 0, 945, 0, 649, 649, 649, 649, 649, 649, 649, + 649, 649, 649, 940, 0, 0, 817, 649, 649, 649, + 649, 649, 649, 859, 859, 859, 859, 859, 860, 860, + 860, 860, 860, 864, 864, 864, 864, 864, 0, 649, + 649, 649, 649, 649, 649, 649, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + + 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 651, 651, 651, 651, 651, + 651, 651, 651, 651, 651, 0, 0, 0, 0, 651, + 651, 651, 651, 651, 651, 818, 818, 818, 818, 818, + 949, 818, 0, 970, 949, 818, 949, 818, 970, 0, + 970, 0, 651, 651, 651, 651, 651, 651, 665, 665, + 665, 665, 665, 1045, 665, 878, 878, 878, 878, 878, + 879, 879, 879, 879, 879, 665, 665, 665, 665, 665, + 665, 665, 665, 665, 665, 1045, 1045, 0, 818, 665, + + 665, 665, 665, 665, 665, 820, 820, 820, 820, 820, + 834, 834, 834, 834, 834, 0, 965, 820, 0, 0, + 965, 665, 665, 665, 665, 665, 665, 665, 666, 666, + 666, 666, 666, 666, 666, 666, 666, 666, 965, 0, + 0, 0, 666, 666, 666, 666, 666, 666, 821, 821, + 821, 821, 821, 873, 873, 873, 873, 873, 820, 834, + 821, 0, 0, 834, 0, 666, 666, 666, 666, 666, + 666, 667, 667, 667, 667, 667, 667, 667, 667, 667, + 667, 834, 0, 0, 873, 667, 667, 667, 667, 667, + 667, 0, 822, 822, 822, 822, 822, 0, 822, 967, + + 0, 821, 822, 967, 822, 967, 873, 873, 667, 667, + 667, 667, 667, 667, 668, 668, 668, 668, 668, 668, + 668, 668, 668, 668, 0, 0, 0, 0, 668, 668, + 668, 668, 668, 668, 0, 0, 788, 788, 788, 788, + 788, 837, 0, 0, 0, 822, 882, 882, 882, 882, + 882, 668, 668, 668, 668, 668, 668, 757, 757, 757, + 757, 757, 757, 757, 757, 757, 757, 0, 0, 0, + 0, 757, 757, 757, 757, 757, 757, 947, 823, 823, + 823, 823, 823, 788, 973, 0, 0, 837, 973, 788, + 823, 0, 0, 837, 757, 757, 757, 757, 757, 757, + + 770, 770, 770, 770, 770, 788, 973, 947, 0, 837, + 839, 839, 839, 839, 839, 0, 839, 883, 883, 883, + 883, 883, 887, 887, 887, 887, 887, 0, 1020, 947, + 947, 823, 1020, 770, 888, 888, 888, 888, 888, 896, + 896, 896, 896, 896, 897, 897, 897, 897, 897, 770, + 1020, 770, 0, 770, 0, 0, 770, 898, 898, 898, + 898, 898, 0, 839, 903, 903, 903, 903, 903, 0, + 0, 770, 0, 770, 808, 808, 808, 808, 808, 808, + 808, 808, 808, 808, 0, 0, 0, 0, 808, 808, + 808, 808, 808, 808, 853, 853, 853, 853, 853, 904, + + 904, 904, 904, 904, 905, 905, 905, 905, 905, 0, + 0, 808, 808, 808, 808, 808, 808, 813, 813, 813, + 813, 813, 0, 813, 909, 909, 909, 909, 909, 0, + 0, 853, 0, 0, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 0, 0, 0, 853, 813, 813, + 813, 813, 813, 813, 853, 944, 944, 944, 944, 944, + 953, 953, 953, 953, 953, 981, 981, 981, 981, 981, + 813, 813, 813, 813, 813, 813, 813, 816, 816, 816, + 816, 816, 1041, 972, 1017, 0, 1041, 816, 972, 1017, + 972, 1017, 0, 0, 816, 816, 816, 816, 816, 816, + + 816, 816, 816, 816, 1041, 0, 0, 0, 816, 816, + 816, 816, 816, 816, 870, 870, 870, 870, 870, 0, + 891, 891, 891, 891, 891, 989, 989, 989, 989, 989, + 816, 816, 816, 816, 816, 816, 816, 819, 819, 819, + 819, 819, 819, 819, 819, 819, 819, 0, 870, 0, + 0, 819, 819, 819, 819, 819, 819, 914, 914, 914, + 914, 914, 1023, 0, 0, 955, 1023, 870, 1023, 0, + 955, 870, 891, 891, 819, 819, 819, 819, 819, 819, + 824, 824, 824, 824, 824, 1002, 1002, 1002, 1002, 1002, + 0, 0, 0, 0, 891, 0, 0, 824, 824, 824, + + 824, 824, 824, 824, 824, 824, 824, 0, 0, 0, + 914, 824, 824, 824, 824, 824, 824, 955, 1003, 1003, + 1003, 1003, 1003, 1013, 1013, 1013, 1013, 1013, 1018, 1018, + 1018, 1018, 1018, 0, 824, 824, 824, 824, 824, 824, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 826, + 826, 826, 826, 826, 826, 826, 826, 826, 826, 0, + 0, 0, 0, 826, 826, 826, 826, 826, 826, 912, + 912, 912, 912, 912, 924, 924, 924, 924, 924, 1038, + 1088, 0, 0, 1038, 1088, 1038, 826, 826, 826, 826, + 826, 826, 840, 840, 840, 840, 840, 840, 840, 840, + 840, 840, 1088, 912, 0, 924, 840, 840, 840, 840, + 840, 840, 916, 916, 916, 916, 916, 0, 0, 966, + 0, 0, 912, 966, 0, 966, 912, 924, 924, 840, + + 840, 840, 840, 840, 840, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 0, 966, 916, 0, 841, + 841, 841, 841, 841, 841, 0, 915, 915, 915, 915, + 915, 0, 1019, 0, 0, 916, 0, 1019, 966, 1019, + 916, 0, 841, 841, 841, 841, 841, 841, 842, 842, + 842, 842, 842, 842, 842, 842, 842, 842, 0, 0, + 0, 0, 842, 842, 842, 842, 842, 842, 0, 915, + 917, 917, 917, 917, 917, 0, 0, 974, 941, 915, + 918, 918, 918, 918, 918, 842, 842, 842, 842, 842, + 842, 915, 919, 919, 919, 919, 919, 920, 920, 920, + + 920, 920, 0, 0, 921, 921, 921, 921, 921, 1046, + 0, 0, 0, 917, 0, 0, 922, 922, 922, 922, + 922, 917, 1042, 917, 941, 974, 1042, 918, 1042, 974, + 941, 1044, 0, 918, 0, 917, 1044, 0, 1044, 1046, + 0, 920, 921, 917, 919, 919, 941, 974, 0, 918, + 920, 925, 925, 925, 925, 925, 0, 921, 0, 922, + 0, 1046, 1046, 920, 922, 921, 919, 0, 0, 922, + 926, 926, 926, 926, 926, 0, 927, 927, 927, 927, + 927, 922, 1076, 0, 0, 0, 922, 923, 923, 923, + 923, 923, 0, 0, 0, 928, 928, 928, 928, 928, + + 1056, 0, 0, 0, 925, 1056, 0, 1056, 926, 929, + 929, 929, 929, 929, 931, 931, 931, 931, 931, 927, + 923, 1067, 0, 926, 927, 1076, 1067, 0, 1067, 927, + 0, 926, 928, 1071, 1076, 0, 923, 1071, 923, 1071, + 923, 927, 0, 923, 0, 0, 927, 1076, 928, 930, + 930, 930, 930, 930, 0, 928, 0, 1074, 923, 1085, + 923, 1074, 929, 1074, 1085, 0, 1085, 931, 938, 938, + 938, 938, 938, 961, 961, 961, 961, 961, 963, 963, + 963, 963, 963, 930, 0, 961, 0, 0, 0, 0, + 963, 1051, 1051, 1051, 1051, 1051, 0, 971, 971, 971, + + 971, 971, 930, 0, 0, 0, 930, 976, 976, 976, + 976, 976, 977, 977, 977, 977, 977, 938, 1087, 0, + 1037, 938, 1087, 1021, 1087, 1037, 961, 1037, 971, 0, + 0, 963, 1086, 1086, 1086, 1086, 1086, 0, 0, 938, + 956, 956, 956, 956, 956, 956, 956, 956, 956, 956, + 971, 971, 1037, 0, 956, 956, 956, 956, 956, 956, + 976, 0, 0, 0, 0, 977, 978, 978, 978, 978, + 978, 1021, 0, 0, 1037, 1021, 0, 956, 956, 956, + 956, 956, 956, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 1021, 0, 0, 0, 959, 959, 959, + + 959, 959, 959, 983, 983, 983, 983, 983, 984, 984, + 984, 984, 984, 1094, 1094, 1094, 1094, 1094, 0, 978, + 959, 959, 959, 959, 959, 959, 960, 960, 960, 960, + 960, 960, 960, 960, 960, 960, 0, 0, 0, 0, + 960, 960, 960, 960, 960, 960, 1095, 0, 0, 0, + 0, 1095, 0, 1095, 0, 0, 983, 0, 0, 0, + 0, 984, 0, 960, 960, 960, 960, 960, 960, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, + + 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 964, 964, + 964, 964, 964, 964, 964, 964, 964, 964, 0, 0, + 0, 0, 964, 964, 964, 964, 964, 964, 982, 982, + 982, 982, 982, 985, 985, 985, 985, 985, 992, 992, + 992, 992, 992, 0, 0, 964, 964, 964, 964, 964, + 964, 993, 993, 993, 993, 993, 994, 994, 994, 994, + + 994, 0, 0, 0, 0, 982, 995, 995, 995, 995, + 995, 0, 992, 996, 996, 996, 996, 996, 0, 0, + 0, 982, 993, 0, 0, 0, 985, 0, 982, 0, + 994, 992, 0, 0, 0, 992, 997, 997, 997, 997, + 997, 0, 0, 0, 993, 993, 0, 0, 0, 994, + 0, 0, 0, 994, 998, 998, 998, 998, 998, 995, + 999, 999, 999, 999, 999, 0, 996, 1004, 1004, 1004, + 1004, 1004, 1005, 1005, 1005, 1005, 1005, 1006, 1006, 1006, + 1006, 1006, 1007, 1007, 1007, 1007, 1007, 0, 1089, 997, 1008, 1008, 1008, 1008, 1008, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, - - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 1012, 1012, 1012, 1012, - 1012, 1012, 1012, 1012, 1012, 1012, 0, 0, 0, 0, - 1012, 1012, 1012, 1012, 1012, 1012, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1012, 1012, 1012, 1012, 1012, 1019, 1019, - 1019, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 1019, 0, 0, 0, 0, 0, 1019, 1019, 1019, 1019, - 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, - 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 1023, 1023, - 1023, 1023, 1023, 0, 1023, 0, 0, 0, 0, 0, - 0, 1023, 0, 0, 0, 0, 0, 1023, 1023, 1023, - 1023, 1023, 1023, 1023, 1023, 1023, 1023, 0, 0, 0, - 0, 1023, 1023, 1023, 1023, 1023, 1023, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 1023, 1023, 1023, 1023, 1023, 1023, 1026, - 1026, 1026, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1026, 0, 0, 0, 0, 0, 1026, 1026, 1026, - 1026, 1026, 1026, 1026, 1026, 1026, 1026, 0, 0, 0, - 0, 1026, 1026, 1026, 1026, 1026, 1026, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1026, 1026, 1026, 1026, 1026, 1030, - 1030, 1030, 1030, 1030, 0, 0, 0, 0, 0, 1030, - 0, 0, 1030, 0, 0, 0, 0, 0, 1030, 1030, - 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 0, 0, - - 0, 0, 1030, 1030, 1030, 1030, 1030, 1030, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1030, 1030, 1030, 1030, 1030, 1030, - 1033, 1033, 1033, 1033, 1033, 1033, 0, 1033, 0, 0, - 0, 1033, 1033, 1033, 1033, 0, 0, 0, 0, 1033, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1033, 1035, 1035, 1035, - 1035, 1035, 1035, 0, 1035, 0, 0, 0, 1035, 1035, - 1035, 1035, 0, 0, 0, 0, 1035, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1035, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - - 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 1036, 1036, 1036, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, - - 1037, 1037, 1037, 1037, 1037, 1037, 1038, 1038, 1038, 1038, - 1038, 1038, 0, 1038, 0, 0, 0, 1038, 1038, 1038, - 1038, 0, 0, 0, 0, 1038, 1038, 1038, 1038, 1038, - 1038, 1038, 1038, 1038, 1038, 1038, 0, 0, 0, 0, - 1038, 1038, 1038, 1038, 1038, 1038, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1038, 1038, 1038, 1038, 1038, 1038, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 0, 0, 0, 0, 1042, 1042, 1042, 1042, 1042, - 1042, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1042, 1042, - 1042, 1042, 1042, 1047, 1047, 1047, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1047, 0, 0, 0, 0, - 0, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, - 1047, 0, 0, 0, 0, 1047, 1047, 1047, 1047, 1047, - 1047, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 1047, 1047, - 1047, 1047, 1047, 1056, 1056, 1056, 1056, 1056, 0, 1056, - 0, 0, 0, 0, 0, 0, 1056, 0, 0, 0, - 0, 0, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, - 1056, 1056, 0, 0, 0, 0, 1056, 1056, 1056, 1056, - 1056, 1056, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1056, 1056, - 1056, 1056, 1056, 1056, 1059, 1059, 1059, 1059, 1059, 0, - 1059, 0, 0, 0, 0, 0, 0, 1059, 0, 0, - 0, 0, 0, 1059, 1059, 1059, 1059, 1059, 1059, 1059, - - 1059, 1059, 1059, 0, 0, 0, 0, 1059, 1059, 1059, - 1059, 1059, 1059, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1059, - 1059, 1059, 1059, 1059, 1059, 1062, 1062, 1062, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1062, 0, 0, - 0, 0, 0, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 0, 0, 0, 0, 1062, 1062, 1062, - 1062, 1062, 1062, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1062, 1062, 1062, 1062, 1062, 1068, 1068, 1068, 1068, 1068, - - 0, 0, 0, 0, 0, 1068, 0, 0, 1068, 0, - 0, 0, 0, 0, 1068, 1068, 1068, 1068, 1068, 1068, - 1068, 1068, 1068, 1068, 0, 0, 0, 0, 1068, 1068, - 1068, 1068, 1068, 1068, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1068, 1068, 1068, 1068, 1068, 1068, 1071, 1071, 1071, 1071, - 1071, 0, 0, 0, 0, 0, 1071, 0, 0, 1071, - 0, 0, 0, 0, 0, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 0, 0, 0, 0, 1071, - 1071, 1071, 1071, 1071, 1071, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1071, 1071, 1071, 1071, 1071, 1071, 1077, 1077, 1077, - 1077, 1077, 1077, 0, 1077, 0, 0, 0, 1077, 1077, - 1077, 1077, 0, 0, 0, 0, 1077, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1077, 1078, 1078, 1078, 1078, 1078, 1078, - 0, 1078, 0, 0, 0, 1078, 1078, 1078, 1078, 0, - 0, 0, 0, 1078, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1078, 1079, 1079, 1079, 1079, 1079, 1079, 0, 1079, 0, - 0, 0, 1079, 1079, 1079, 1079, 0, 0, 0, 0, - 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1079, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, - - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1081, - 1081, 1081, 1081, 1081, 1081, 0, 1081, 0, 0, 0, - 1081, 1081, 1081, 1081, 0, 0, 0, 0, 1081, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1081, 1082, 1082, 1082, 1082, - 1082, 1082, 0, 1082, 0, 0, 0, 1082, 1082, 1082, - 1082, 0, 0, 0, 0, 1082, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1082, 1083, 1083, 1083, 1083, 1083, 1083, 0, - 1083, 0, 0, 0, 1083, 1083, 1083, 1083, 0, 0, - - 0, 0, 1083, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1083, - 1084, 1084, 1084, 1084, 1084, 1084, 0, 1084, 0, 0, - 0, 1084, 1084, 1084, 1084, 0, 0, 0, 0, 1084, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1084, 1085, 1085, 1085, - - 1085, 1085, 1085, 0, 1085, 0, 0, 0, 1085, 1085, - 1085, 1085, 0, 0, 0, 0, 1085, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1085, 1086, 1086, 1086, 1086, 1086, 1086, - 0, 1086, 0, 0, 0, 1086, 1086, 1086, 1086, 0, - 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1086, 1087, 1087, 1087, 1087, 1087, 1087, 0, 1087, 0, - 0, 0, 1087, 1087, 1087, 1087, 0, 0, 0, 0, - 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, - 1087, 0, 0, 0, 0, 1087, 1087, 1087, 1087, 1087, - 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1087, 1087, 1087, - 1087, 1087, 1087, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - - 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, - 1089, 1089, 1089, 1089, 1090, 1090, 1090, 1090, 1090, 1090, - 0, 1090, 0, 0, 0, 1090, 1090, 1090, 1090, 0, - 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1090, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, - 1091, 1091, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, - 1092, 1092, 1092, 1093, 1093, 1093, 1093, 1093, 1093, 0, - 1093, 0, 0, 0, 1093, 1093, 1093, 1093, 0, 0, - 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, - 1094, 1094, 1094, 1094, 1094, 1094, 0, 1094, 0, 0, - 0, 1094, 1094, 1094, 1094, 0, 0, 0, 0, 1094, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1094, 1102, 1102, 1102, - 1102, 1102, 0, 1102, 0, 0, 0, 0, 0, 0, - - 1102, 0, 0, 0, 0, 0, 1102, 1102, 1102, 1102, - 1102, 1102, 1102, 1102, 1102, 1102, 0, 0, 0, 0, - 1102, 1102, 1102, 1102, 1102, 1102, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1102, 1102, 1102, 1102, 1102, 1102, 1103, 1103, - 1103, 1103, 1103, 0, 1103, 0, 0, 0, 0, 0, - 0, 1103, 0, 0, 0, 0, 0, 1103, 1103, 1103, - 1103, 1103, 1103, 1103, 1103, 1103, 1103, 0, 0, 0, - 0, 1103, 1103, 1103, 1103, 1103, 1103, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 1103, 1103, 1103, 1103, 1103, 1103, 1107, - 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 0, - 0, 0, 0, 1107, 1107, 1107, 1107, 1107, 1107, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1107, 1107, 1107, 1107, - 1107, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, - 1108, 0, 0, 0, 0, 1108, 1108, 1108, 1108, 1108, - 1108, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1108, 1108, - 1108, 1108, 1108, 1110, 1110, 1110, 1110, 1110, 1110, 0, - - 1110, 0, 0, 0, 1110, 1110, 1110, 1110, 0, 0, - 0, 0, 1110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1110, - 1111, 1111, 1111, 1111, 1111, 1111, 0, 1111, 0, 0, - 0, 1111, 1111, 1111, 1111, 0, 0, 0, 0, 1111, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 1111, 1112, 1112, 1112, - 1112, 1112, 1112, 1112, 1112, 1112, 1112, 0, 0, 0, - 0, 1112, 1112, 1112, 1112, 1112, 1112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1112, 1112, 1112, 1112, 1112, 1113, - 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 0, - 0, 0, 0, 1113, 1113, 1113, 1113, 1113, 1113, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1113, 1113, 1113, 1113, - 1113, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, - - 1114, 0, 0, 0, 0, 1114, 1114, 1114, 1114, 1114, - 1114, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1114, 1114, - 1114, 1114, 1114, 1115, 1115, 1115, 1115, 1115, 1115, 1115, - 1115, 1115, 1115, 0, 0, 0, 0, 1115, 1115, 1115, - 1115, 1115, 1115, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1115, 1115, 1115, 1115, 1115, 1122, 1122, 1122, 1122, 1122, - 1122, 1122, 1122, 1122, 1122, 0, 0, 0, 0, 1122, - 1122, 1122, 1122, 1122, 1122, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1122, 1122, 1122, 1122, 1122, 1123, 1123, 1123, - 1123, 1123, 1123, 1123, 1123, 1123, 1123, 0, 0, 0, - 0, 1123, 1123, 1123, 1123, 1123, 1123, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1123, 1123, 1123, 1123, 1123, 1124, - 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 0, - 0, 0, 0, 1124, 1124, 1124, 1124, 1124, 1124, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1124, 1124, 1124, 1124, - - 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, - 1125, 0, 0, 0, 0, 1125, 1125, 1125, 1125, 1125, - 1125, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1125, 1125, - 1125, 1125, 1125, 1126, 1126, 1126, 1126, 1126, 1126, 1126, - 1126, 1126, 1126, 0, 0, 0, 0, 1126, 1126, 1126, - 1126, 1126, 1126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1126, 1126, 1126, 1126, 1126, 1127, 1127, 1127, 1127, 1127, - 1127, 1127, 1127, 1127, 1127, 0, 0, 0, 0, 1127, - - 1127, 1127, 1127, 1127, 1127, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1127, 1127, 1127, 1127, 1127, 1128, 1128, 1128, - 1128, 1128, 1128, 1128, 1128, 1128, 1128, 0, 0, 0, - 0, 1128, 1128, 1128, 1128, 1128, 1128, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1128, 1128, 1128, 1128, 1128, 1134, - 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 0, - 0, 0, 0, 1134, 1134, 1134, 1134, 1134, 1134, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 1134, 1134, 1134, 1134, - 1134, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, - 1135, 0, 0, 0, 0, 1135, 1135, 1135, 1135, 1135, - 1135, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1135, 1135, - 1135, 1135, 1135, 1136, 1136, 1136, 1136, 1136, 1136, 1136, - 1136, 1136, 1136, 0, 0, 0, 0, 1136, 1136, 1136, - 1136, 1136, 1136, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1136, 1136, 1136, 1136, 1136, 1137, 1137, 1137, 1137, 1137, - - 1137, 1137, 1137, 1137, 1137, 0, 0, 0, 0, 1137, - 1137, 1137, 1137, 1137, 1137, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1137, 1137, 1137, 1137, 1137, 1138, 1138, 1138, - 1138, 1138, 1138, 1138, 1138, 1138, 1138, 0, 0, 0, - 0, 1138, 1138, 1138, 1138, 1138, 1138, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1138, 1138, 1138, 1138, 1138, 1141, - 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 0, - 0, 0, 0, 1141, 1141, 1141, 1141, 1141, 1141, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1141, 1141, 1141, 1141, - 1141, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, - 1142, 0, 0, 0, 0, 1142, 1142, 1142, 1142, 1142, - 1142, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1142, 1142, - 1142, 1142, 1142, 1143, 1143, 1143, 1143, 1143, 1143, 1143, - 1143, 1143, 1143, 0, 0, 0, 0, 1143, 1143, 1143, - 1143, 1143, 1143, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 1143, 1143, 1143, 1143, 1143, 1144, 1144, 1144, 1144, 1144, - 1144, 1144, 1144, 1144, 1144, 0, 0, 0, 0, 1144, - 1144, 1144, 1144, 1144, 1144, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1144, 1144, 1144, 1144, 1144, 1145, 1145, 1145, - 1145, 1145, 1145, 1145, 1145, 1145, 1145, 0, 0, 0, - 0, 1145, 1145, 1145, 1145, 1145, 1145, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1145, 1145, 1145, 1145, 1145, 1149, - 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 0, - - 0, 0, 0, 1149, 1149, 1149, 1149, 1149, 1149, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1149, 1149, 1149, 1149, - 1149, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 0, 0, 0, 0, 1150, 1150, 1150, 1150, 1150, - 1150, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1150, 1150, - 1150, 1150, 1150, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 0, 0, 0, 0, 1151, 1151, 1151, - 1151, 1151, 1151, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1151, 1151, 1151, 1151, 1151, 1153, 1153, 0, 1153, 1153, - 1153, 1153, 1153, 1153, 1154, 1154, 1154, 1155, 1155, 0, - 1155, 1155, 1155, 1155, 1155, 1155, 1156, 0, 1156, 1157, - 1157, 1157, 1157, 1158, 1158, 0, 1158, 1158, 1158, 1158, - 1158, 1158, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, - 1159, 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160, 1160, - 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1162, - 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1164, 1164, - 1164, 1165, 1165, 0, 1165, 1165, 1165, 1165, 1165, 1165, - - 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1167, - 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1168, 1168, - 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1169, 1169, 0, - 1169, 1169, 1169, 1169, 1169, 1169, 1170, 1170, 1170, 1170, - 1170, 1170, 1170, 1170, 1170, 1171, 1171, 1171, 1171, 1171, - 1171, 1171, 1171, 1171, 1172, 1172, 1172, 1172, 1172, 1172, - 1172, 1172, 1172, 1173, 1173, 1173, 1173, 0, 1173, 1173, - 1173, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, - 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1176, - 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177, 1177, - - 0, 1177, 1177, 1177, 1177, 1177, 1177, 1178, 1178, 0, - 1178, 1178, 1178, 1178, 1178, 1178, 1179, 1179, 0, 1179, - 1179, 1179, 1179, 1179, 1179, 1180, 1180, 1180, 1180, 1180, - 1180, 1180, 1180, 1180, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1182, 1182, 1182, 1182, 1182, 1182, 1182, - 1182, 1182, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, - 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1186, - 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1187, 1187, - 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1188, 1188, 1188, - - 1188, 1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1189, - 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1190, 1190, 1190, - 1190, 1190, 1190, 1190, 1191, 1191, 1191, 1191, 1191, 1191, - 1191, 1191, 1191, 1192, 1192, 1192, 0, 0, 1192, 1192, - 1192, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, - 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, - 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1196, 1196, - 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1197, 1197, 1197, - 1197, 1197, 1197, 1197, 1197, 1197, 1198, 1198, 1198, 1198, - 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1199, 1199, 1199, - - 1199, 1199, 1199, 1199, 1200, 1200, 1200, 1200, 1200, 1200, - 1200, 1200, 1200, 1201, 1201, 1201, 1201, 1201, 1201, 1201, - 1201, 1201, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1205, - 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1206, 1206, - 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1207, 1207, 1207, - 1207, 1207, 1207, 1207, 1207, 1207, 1208, 1208, 1208, 1208, - 1208, 1208, 1208, 1208, 1208, 1209, 1209, 1209, 1209, 1209, - 1209, 1209, 1209, 1209, 1210, 1210, 1210, 1210, 1210, 1210, - - 1210, 1210, 1210, 1211, 1211, 1211, 1211, 1211, 1211, 1211, - 1211, 1211, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, - 1212, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, - 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1215, - 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1216, 1216, - 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1217, 1217, 1217, - 1217, 1217, 1217, 1217, 1217, 1217, 1218, 1218, 1218, 1218, - 1218, 1218, 1218, 1218, 1218, 1219, 1219, 1219, 1219, 1219, - 1219, 1219, 1219, 1219, 1220, 1220, 1220, 1220, 1220, 1220, - 1220, 1220, 1220, 1221, 1221, 1221, 1221, 1221, 1221, 1221, - - 1221, 1221, 1222, 1222, 0, 0, 0, 1222, 1222, 1222, - 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1224, - 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1225, 1225, - 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1227, 1227, 1227, 1227, - 1227, 1227, 1227, 1227, 1227, 1228, 1228, 1228, 1228, 1228, - 1228, 1228, 1228, 1228, 1229, 1229, 1229, 1229, 1229, 1229, - 1229, 1229, 1229, 1230, 1230, 1230, 1230, 1230, 1230, 1230, - 1230, 1230, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, - 1231, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, - - 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1234, - 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1235, 1235, - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1236, 1236, 1236, - 1236, 1236, 1236, 1236, 1236, 1236, 1237, 1237, 1237, 1237, - 1237, 1237, 1237, 1237, 1237, 1238, 1238, 1238, 1238, 1238, - 1238, 1238, 1238, 1238, 1239, 1239, 1239, 1239, 1239, 1239, - 1239, 1239, 1239, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - 1240, 1240, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1242, 1242, 1242, 0, 0, 1242, 1242, 1242, 1243, - 1243, 0, 0, 0, 1243, 1243, 1243, 1244, 1244, 1244, - - 1244, 1244, 1244, 1244, 1244, 1244, 1245, 1245, 1245, 1245, - 1245, 1245, 1245, 1245, 1245, 1246, 1246, 1246, 1246, 1246, - 1246, 1246, 1246, 1246, 1247, 1247, 1247, 1247, 1247, 1247, - 1247, 1247, 1247, 1248, 1248, 1248, 1248, 1248, 1248, 1248, - 1248, 1248, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, - 1249, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1252, - 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1253, 1253, - 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1254, 1254, 1254, - 1254, 1254, 1254, 1254, 1254, 1254, 1255, 1255, 1255, 1255, - - 1255, 1255, 1255, 1255, 1255, 1256, 1256, 1256, 1256, 1256, - 1256, 1256, 1256, 1256, 1257, 1257, 1257, 1257, 1257, 1257, - 1257, 1257, 1257, 1258, 1258, 1258, 1258, 1258, 1258, 1258, - 1258, 1258, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, - 1259, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, - 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1262, - 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1263, 1263, - 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1264, 1264, 1264, - 1264, 1264, 1264, 1264, 1264, 1264, 1265, 1265, 1265, 1265, - 1265, 1265, 1265, 1265, 1265, 1266, 1266, 1266, 0, 0, - - 1266, 1266, 1266, 1267, 1267, 1267, 1267, 1267, 1267, 1267, - 1267, 1267, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, - 1268, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, - 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1271, - 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1272, 1272, - 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1273, 1273, 1273, - 1273, 1273, 1273, 1273, 1273, 1273, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1275, 1275, 1275, 1275, 1275, - 1275, 1275, 1275, 1275, 1276, 1276, 1276, 1276, 1276, 1276, - 1276, 1276, 1276, 1277, 1277, 1277, 1277, 1277, 1277, 1277, - - 1277, 1277, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, - 1278, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, - 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1283, 1283, 0, - 1283, 1283, 1283, 1283, 1283, 1283, 1284, 1284, 1284, 1284, - 1284, 1284, 1284, 1284, 1284, 1285, 1285, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1287, 1287, 0, 1287, 1287, 1287, 1287, - 1287, 1287, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, - - 1288, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, - 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1291, - 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1292, 1292, - 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1293, 1293, 1293, - 1293, 1293, 1293, 1293, 1293, 1293, 1294, 1294, 1294, 1294, - 1294, 1294, 1294, 1294, 1294, 1295, 1295, 1295, 1295, 1295, - 1295, 1295, 1295, 1295, 1296, 1296, 1296, 1296, 1296, 1296, - 1296, 1296, 1296, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - 1297, 1297, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, - 1298, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - - 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1301, - 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1303, 1303, 1303, - 1303, 1303, 1303, 1303, 1303, 1303, 1304, 1304, 1304, 1304, - 1304, 1304, 1304, 1304, 1304, 1305, 1305, 1305, 1305, 1305, - 1305, 1305, 1305, 1305, 1306, 1306, 1306, 1306, 1306, 1306, - 1306, 1306, 1306, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152 + 1010, 1010, 1010, 1010, 1010, 0, 0, 998, 1014, 1014, + 1014, 1014, 1014, 999, 1015, 1015, 1015, 1015, 1015, 1004, + 1004, 0, 0, 0, 0, 1005, 0, 0, 0, 0, + 1006, 0, 0, 0, 0, 1007, 1089, 0, 0, 0, + 1089, 1004, 1014, 1008, 0, 0, 0, 0, 1009, 0, + 0, 0, 0, 1010, 0, 0, 0, 0, 1089, 0, + 0, 1014, 0, 0, 0, 1014, 0, 1015, 1028, 1028, + 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028, 0, 0, + 0, 0, 1028, 1028, 1028, 1028, 1028, 1028, 1031, 1031, + 1031, 1031, 1031, 1048, 1048, 1048, 1048, 1048, 0, 0, + + 1031, 0, 0, 0, 0, 1028, 1028, 1028, 1028, 1028, + 1028, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, + 1029, 0, 0, 0, 0, 1029, 1029, 1029, 1029, 1029, + 1029, 1032, 1032, 1032, 1032, 1032, 1043, 1043, 1043, 1043, + 1043, 1031, 0, 1032, 0, 0, 1048, 0, 1029, 1029, + 1029, 1029, 1029, 1029, 1030, 1030, 1030, 1030, 1030, 1030, + 1030, 1030, 1030, 1030, 0, 0, 0, 0, 1030, 1030, + 1030, 1030, 1030, 1030, 1053, 1053, 1053, 1053, 1053, 0, + 1043, 0, 0, 0, 1032, 0, 0, 0, 0, 1043, + 0, 1030, 1030, 1030, 1030, 1030, 1030, 1033, 1033, 1033, + + 1033, 1033, 1043, 0, 0, 0, 0, 0, 0, 1033, + 0, 0, 0, 0, 1033, 1033, 1033, 1033, 1033, 1033, + 1033, 1033, 1033, 1033, 0, 0, 0, 1053, 1033, 1033, + 1033, 1033, 1033, 1033, 1052, 1052, 1052, 1052, 1052, 1054, + 1054, 1054, 1054, 1054, 0, 0, 0, 0, 0, 0, + 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1035, 1035, 1035, + 1035, 1035, 1035, 1035, 1035, 1035, 1035, 0, 1052, 0, + 0, 1035, 1035, 1035, 1035, 1035, 1035, 1055, 1055, 1055, + 1055, 1055, 0, 0, 0, 0, 0, 1052, 0, 0, + 0, 1052, 1054, 0, 1035, 1035, 1035, 1035, 1035, 1035, + + 1064, 1064, 1064, 1064, 1064, 0, 0, 0, 0, 0, + 0, 0, 1064, 1072, 1072, 1072, 1072, 1072, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1055, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, + 1061, 0, 0, 0, 0, 1061, 1061, 1061, 1061, 1061, + 1061, 0, 0, 1064, 0, 0, 1073, 1073, 1073, 1073, + 1073, 0, 1072, 0, 0, 0, 1072, 0, 1061, 1061, + 1061, 1061, 1061, 1061, 1062, 1062, 1062, 1062, 1062, 1062, + 1062, 1062, 1062, 1062, 1072, 0, 0, 0, 1062, 1062, + 1062, 1062, 1062, 1062, 1078, 1078, 1078, 1078, 1078, 0, + + 0, 0, 0, 0, 0, 1073, 0, 0, 0, 1073, + 0, 1062, 1062, 1062, 1062, 1062, 1062, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1073, 0, 0, + 0, 1063, 1063, 1063, 1063, 1063, 1063, 1101, 1101, 1101, + 1101, 1101, 0, 0, 0, 0, 0, 1078, 0, 1101, + 0, 0, 0, 0, 1063, 1063, 1063, 1063, 1063, 1063, + 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, + 0, 0, 0, 0, 1065, 1065, 1065, 1065, 1065, 1065, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1101, 0, 0, 0, 0, 0, 0, 1065, 1065, 1065, + + 1065, 1065, 1065, 1066, 1066, 1066, 1066, 1066, 1066, 1066, + 1066, 1066, 1066, 0, 0, 0, 0, 1066, 1066, 1066, + 1066, 1066, 1066, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1066, 1066, 1066, 1066, 1066, 1066, 1080, 1080, 1080, 1080, + 1080, 1080, 1080, 1080, 1080, 1080, 0, 0, 0, 0, + 1080, 1080, 1080, 1080, 1080, 1080, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1080, 1080, 1080, 1080, 1080, 1080, 1081, + 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 0, + + 0, 0, 0, 1081, 1081, 1081, 1081, 1081, 1081, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1081, 1081, 1081, 1081, + 1081, 1081, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, + 1082, 1082, 0, 0, 0, 0, 1082, 1082, 1082, 1082, + 1082, 1082, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1082, + 1082, 1082, 1082, 1082, 1082, 1083, 1083, 1083, 1083, 1083, + 1083, 1083, 1083, 1083, 1083, 0, 0, 0, 0, 1083, + 1083, 1083, 1083, 1083, 1083, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1083, 1083, 1083, 1083, 1083, 1083, 1084, 1084, + 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 0, 0, + 0, 0, 1084, 1084, 1084, 1084, 1084, 1084, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1084, 1084, 1084, 1084, 1084, + 1084, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, + 1091, 0, 0, 0, 0, 1091, 1091, 1091, 1091, 1091, + 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1091, 1091, + + 1091, 1091, 1091, 1091, 1092, 1092, 1092, 1092, 1092, 1092, + 1092, 1092, 1092, 1092, 0, 0, 0, 0, 1092, 1092, + 1092, 1092, 1092, 1092, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1092, 1092, 1092, 1092, 1092, 1092, 1093, 1093, 1093, + 1093, 1093, 1093, 1093, 1093, 1093, 1093, 0, 0, 0, + 0, 1093, 1093, 1093, 1093, 1093, 1093, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1093, 1093, 1093, 1093, 1093, 1093, + 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, + + 0, 0, 0, 0, 1099, 1099, 1099, 1099, 1099, 1099, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1099, 1099, 1099, + 1099, 1099, 1099, 1103, 1103, 0, 1103, 1103, 1103, 1103, + 1103, 1103, 1104, 1104, 1104, 1104, 1105, 1105, 0, 1105, + 1105, 1105, 1105, 1105, 1105, 1106, 0, 0, 1106, 1107, + 1107, 0, 1107, 1107, 1108, 1108, 0, 1108, 1108, 1108, + 1108, 1108, 1108, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1110, 1110, 0, 1110, 1110, 1110, 1110, 1110, + 1110, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, + + 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1114, + 0, 1114, 1114, 1115, 1115, 0, 1115, 1115, 1115, 1115, + 1115, 1115, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, + 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119, + 1119, 0, 1119, 1119, 1119, 1119, 1119, 1119, 1120, 1120, + 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1121, 1121, 1121, + 1121, 1121, 1121, 1121, 1121, 1121, 1122, 1122, 1122, 1122, + 1122, 1122, 1122, 1122, 1122, 1123, 1123, 1123, 0, 1123, + 1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1124, + + 1124, 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, + 1125, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, + 1127, 1127, 0, 1127, 1127, 1127, 1127, 1127, 1127, 1128, + 1128, 0, 1128, 1128, 1128, 1128, 1128, 1128, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1130, 1130, 1130, + 1130, 1130, 1130, 1130, 1130, 1130, 1131, 1131, 1131, 1131, + 1131, 1131, 1131, 1131, 1131, 1132, 1132, 1132, 1132, 1132, + 1132, 1132, 1132, 1132, 1133, 1133, 1133, 1133, 1133, 1133, + 1133, 1133, 1133, 1134, 1134, 1134, 1134, 1134, 1134, 1134, + 1134, 1134, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, + + 1135, 1136, 1136, 0, 0, 1136, 1136, 1136, 1136, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, + 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102 } ; static yy_state_type yy_last_accepting_state; @@ -4676,7 +2399,8 @@ int yy_flex_debug = 0; #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #line 1 "css.l" -#line 7 "css.l" + +#line 13 "css.l" /* Lex source for CSS tokenizing. Taken from http://www.w3.org/TR/CSS21/grammar.html#q2 Copyright (C) 2006, 2009-2011, 2015, 2018 Free Software Foundation, @@ -4712,8 +2436,22 @@ as that of the covered work. */ #include "css-tokens.h" -#line 4714 "css.c" -#line 4715 "css.c" +#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + #pragma GCC diagnostic ignored "-Wunknown-pragmas" // clang mourns about the next one + #pragma GCC diagnostic ignored "-Wunused-function" + #pragma GCC diagnostic ignored "-Wunused-macros" + #pragma GCC diagnostic ignored "-Wunused-parameter" + #pragma GCC diagnostic ignored "-Wsign-compare" + #pragma GCC diagnostic ignored "-Wswitch-default" + #pragma GCC diagnostic ignored "-Wunreachable-code" // clang + #pragma clang diagnostic ignored "-Wshorten-64-to-32" + #ifndef __clang__ + #pragma GCC diagnostic ignored "-Wsuggest-attribute=pure" + #endif +#endif + +#line 2453 "css.c" +#line 2454 "css.c" #define INITIAL 0 @@ -4928,10 +2666,10 @@ YY_DECL } { -#line 83 "css.l" +#line 112 "css.l" -#line 4933 "css.c" +#line 2672 "css.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -4958,13 +2696,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 >= 1153 ) + if ( yy_current_state >= 1103 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1152 ); + while ( yy_current_state != 1102 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -4987,244 +2725,241 @@ do_action: /* This label is used only to access EOF actions. */ case 1: /* rule 1 can match eol */ YY_RULE_SETUP -#line 85 "css.l" +#line 114 "css.l" {return S;} YY_BREAK case 2: /* rule 2 can match eol */ YY_RULE_SETUP -#line 87 "css.l" -{return S;} /* ignore comments */ +#line 116 "css.l" +{return COMMENT;} YY_BREAK case 3: +/* rule 3 can match eol */ YY_RULE_SETUP -#line 89 "css.l" -{return CDO;} +#line 117 "css.l" +/* ignore comments */ YY_BREAK case 4: +/* rule 4 can match eol */ YY_RULE_SETUP -#line 90 "css.l" -{return CDC;} +#line 118 "css.l" +/* unclosed comment at EOF */ YY_BREAK case 5: YY_RULE_SETUP -#line 91 "css.l" -{return INCLUDES;} +#line 120 "css.l" +{return CDO;} YY_BREAK case 6: YY_RULE_SETUP -#line 92 "css.l" -{return DASHMATCH;} +#line 121 "css.l" +{return CDC;} YY_BREAK case 7: -/* rule 7 can match eol */ YY_RULE_SETUP -#line 94 "css.l" -{return LBRACE;} +#line 122 "css.l" +{return INCLUDES;} YY_BREAK case 8: -/* rule 8 can match eol */ YY_RULE_SETUP -#line 95 "css.l" -{return PLUS;} +#line 123 "css.l" +{return DASHMATCH;} YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP -#line 96 "css.l" -{return GREATER;} +#line 125 "css.l" +{return STRING;} YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP -#line 97 "css.l" -{return COMMA;} +#line 126 "css.l" +{return BAD_STRING;} YY_BREAK case 11: /* rule 11 can match eol */ YY_RULE_SETUP -#line 99 "css.l" -{return STRING;} +#line 128 "css.l" +{return IDENT;} YY_BREAK case 12: /* rule 12 can match eol */ YY_RULE_SETUP -#line 100 "css.l" -{return INVALID; /* unclosed string */} +#line 130 "css.l" +{return HASH;} YY_BREAK case 13: /* rule 13 can match eol */ YY_RULE_SETUP -#line 102 "css.l" -{return IDENT;} +#line 132 "css.l" +{return IMPORT_SYM;} YY_BREAK case 14: /* rule 14 can match eol */ YY_RULE_SETUP -#line 104 "css.l" -{return HASH;} +#line 133 "css.l" +{return PAGE_SYM;} YY_BREAK case 15: +/* rule 15 can match eol */ YY_RULE_SETUP -#line 106 "css.l" -{return IMPORT_SYM;} +#line 134 "css.l" +{return MEDIA_SYM;} YY_BREAK case 16: YY_RULE_SETUP -#line 107 "css.l" -{return PAGE_SYM;} +#line 135 "css.l" +{return CHARSET_SYM;} YY_BREAK case 17: +/* rule 17 can match eol */ YY_RULE_SETUP -#line 108 "css.l" -{return MEDIA_SYM;} +#line 137 "css.l" +{return IMPORTANT_SYM;} YY_BREAK case 18: +/* rule 18 can match eol */ YY_RULE_SETUP -#line 109 "css.l" -{return CHARSET_SYM;} +#line 139 "css.l" +{return EMS;} YY_BREAK case 19: /* rule 19 can match eol */ YY_RULE_SETUP -#line 111 "css.l" -{return IMPORTANT_SYM;} +#line 140 "css.l" +{return EXS;} YY_BREAK case 20: /* rule 20 can match eol */ YY_RULE_SETUP -#line 113 "css.l" -{return EMS;} +#line 141 "css.l" +{return LENGTH;} YY_BREAK case 21: /* rule 21 can match eol */ YY_RULE_SETUP -#line 114 "css.l" -{return EXS;} +#line 142 "css.l" +{return LENGTH;} YY_BREAK case 22: /* rule 22 can match eol */ YY_RULE_SETUP -#line 115 "css.l" +#line 143 "css.l" {return LENGTH;} YY_BREAK case 23: /* rule 23 can match eol */ YY_RULE_SETUP -#line 116 "css.l" +#line 144 "css.l" {return LENGTH;} YY_BREAK case 24: /* rule 24 can match eol */ YY_RULE_SETUP -#line 117 "css.l" +#line 145 "css.l" {return LENGTH;} YY_BREAK case 25: /* rule 25 can match eol */ YY_RULE_SETUP -#line 118 "css.l" +#line 146 "css.l" {return LENGTH;} YY_BREAK case 26: /* rule 26 can match eol */ YY_RULE_SETUP -#line 119 "css.l" -{return LENGTH;} +#line 147 "css.l" +{return ANGLE;} YY_BREAK case 27: /* rule 27 can match eol */ YY_RULE_SETUP -#line 120 "css.l" -{return LENGTH;} +#line 148 "css.l" +{return ANGLE;} YY_BREAK case 28: /* rule 28 can match eol */ YY_RULE_SETUP -#line 121 "css.l" +#line 149 "css.l" {return ANGLE;} YY_BREAK case 29: /* rule 29 can match eol */ YY_RULE_SETUP -#line 122 "css.l" -{return ANGLE;} +#line 150 "css.l" +{return TIME;} YY_BREAK case 30: /* rule 30 can match eol */ YY_RULE_SETUP -#line 123 "css.l" -{return ANGLE;} +#line 151 "css.l" +{return TIME;} YY_BREAK case 31: /* rule 31 can match eol */ YY_RULE_SETUP -#line 124 "css.l" -{return TIME;} +#line 152 "css.l" +{return FREQ;} YY_BREAK case 32: /* rule 32 can match eol */ YY_RULE_SETUP -#line 125 "css.l" -{return TIME;} +#line 153 "css.l" +{return FREQ;} YY_BREAK case 33: /* rule 33 can match eol */ YY_RULE_SETUP -#line 126 "css.l" -{return FREQ;} +#line 154 "css.l" +{return DIMENSION;} YY_BREAK case 34: -/* rule 34 can match eol */ YY_RULE_SETUP -#line 127 "css.l" -{return FREQ;} +#line 156 "css.l" +{return PERCENTAGE;} YY_BREAK case 35: -/* rule 35 can match eol */ YY_RULE_SETUP -#line 128 "css.l" -{return DIMENSION;} +#line 157 "css.l" +{return NUMBER;} YY_BREAK case 36: +/* rule 36 can match eol */ YY_RULE_SETUP -#line 130 "css.l" -{return PERCENTAGE;} +#line 159 "css.l" +{return URI;} YY_BREAK case 37: +/* rule 37 can match eol */ YY_RULE_SETUP -#line 131 "css.l" -{return NUMBER;} +#line 160 "css.l" +{return URI;} YY_BREAK case 38: /* rule 38 can match eol */ YY_RULE_SETUP -#line 133 "css.l" -{return URI;} +#line 161 "css.l" +{return BAD_URI;} YY_BREAK case 39: /* rule 39 can match eol */ YY_RULE_SETUP -#line 134 "css.l" -{return URI;} - YY_BREAK -case 40: -/* rule 40 can match eol */ -YY_RULE_SETUP -#line 135 "css.l" +#line 163 "css.l" {return FUNCTION;} YY_BREAK -case 41: +case 40: YY_RULE_SETUP -#line 137 "css.l" +#line 165 "css.l" {return *yytext;} YY_BREAK -case 42: +case 41: YY_RULE_SETUP -#line 139 "css.l" +#line 167 "css.l" ECHO; YY_BREAK -#line 5226 "css.c" +#line 2962 "css.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -5522,7 +3257,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 >= 1153 ) + if ( yy_current_state >= 1103 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5550,11 +3285,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 >= 1153 ) + if ( yy_current_state >= 1103 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1152); + yy_is_jam = (yy_current_state == 1102); return yy_is_jam ? 0 : yy_current_state; } @@ -6193,6 +3928,6 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 139 "css.l" +#line 167 "css.l" diff --git a/src/ftp-basic.c b/src/ftp-basic.c index 4a112c9..bc129f6 100644 --- a/src/ftp-basic.c +++ b/src/ftp-basic.c @@ -57,7 +57,7 @@ as that of the covered work. */ uerr_t ftp_response (int fd, char **ret_line) { - while (1) + for (;;) { char *p; char *line = fd_read_line (fd); @@ -65,12 +65,9 @@ ftp_response (int fd, char **ret_line) return FTPRERR; /* Strip trailing CRLF before printing the line, so that - quotting doesn't include bogus \012 and \015. */ - p = strchr (line, '\0'); - if (p > line && p[-1] == '\n') - *--p = '\0'; - if (p > line && p[-1] == '\r') - *--p = '\0'; + quoting doesn't include bogus \012 and \015. */ + if ((p = strpbrk(line , "\r\n"))) + *p = 0; if (opt.server_response) logprintf (LOG_NOTQUIET, "%s\n", diff --git a/src/ftp-ls.c b/src/ftp-ls.c index 4b33413..d92e59b 100644 --- a/src/ftp-ls.c +++ b/src/ftp-ls.c @@ -90,9 +90,8 @@ clean_line (char *line, int len) The time stamps are stored in a separate variable, time_t compatible (I hope). The timezones are ignored. */ static struct fileinfo * -ftp_parse_unix_ls (const char *file, int ignore_perms) +ftp_parse_unix_ls (FILE *fp, int ignore_perms) { - FILE *fp; static const char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" @@ -107,12 +106,6 @@ ftp_parse_unix_ls (const char *file, int ignore_perms) char *line = NULL, *tok, *ptok; /* tokenizer */ struct fileinfo *dir, *l, cur; /* list creation */ - fp = fopen (file, "rb"); - if (!fp) - { - logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno)); - return NULL; - } dir = l = NULL; /* Line loop to end of file: */ @@ -249,24 +242,25 @@ ftp_parse_unix_ls (const char *file, int ignore_perms) /* We must deal with digits. */ if (c_isdigit (*tok)) { - /* Suppose it's year. */ - for (; c_isdigit (*tok); tok++) + /* Suppose it's year. Limit to year 99999 to avoid integer overflow. */ + for (; c_isdigit (*tok) && year <= 99999; tok++) year = (*tok - '0') + 10 * year; if (*tok == ':') { + int n; /* This means these were hours! */ hour = year; year = 0; ptype = TT_HOUR_MIN; ++tok; /* Get the minutes... */ - for (; c_isdigit (*tok); tok++) + for (n = 0; c_isdigit (*tok) && n < 2; tok++, n++) min = (*tok - '0') + 10 * min; if (*tok == ':') { /* ...and the seconds. */ ++tok; - for (; c_isdigit (*tok); tok++) + for (n = 0; c_isdigit (*tok) && n < 2; tok++, n++) sec = (*tok - '0') + 10 * sec; } } @@ -413,14 +407,12 @@ ftp_parse_unix_ls (const char *file, int ignore_perms) } xfree (line); - fclose (fp); return dir; } static struct fileinfo * -ftp_parse_winnt_ls (const char *file) +ftp_parse_winnt_ls (FILE *fp) { - FILE *fp; int len; int year, month, day; /* for time analysis */ int hour, min; @@ -431,13 +423,8 @@ ftp_parse_winnt_ls (const char *file) char *filename; struct fileinfo *dir, *l, cur; /* list creation */ - fp = fopen (file, "rb"); - if (!fp) - { - logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno)); - return NULL; - } dir = l = NULL; + cur.name = NULL; /* Line loop to end of file: */ while ((len = getline (&line, &bufsize, fp)) > 0) @@ -456,8 +443,8 @@ ftp_parse_winnt_ls (const char *file) january will be assumed. */ tok = strtok(line, "-"); if (tok == NULL) continue; - month = atoi(tok) - 1; - if (month < 0) month = 0; + month = atoi(tok); + if (month < 0) month = 0; else month--; tok = strtok(NULL, "-"); if (tok == NULL) continue; day = atoi(tok); @@ -472,10 +459,12 @@ ftp_parse_winnt_ls (const char *file) else if (year >= 1900) { year -= 1900; + if (len < 42) continue; filename += 2; } /* Now it is possible to determine the position of the first symbol in filename. */ + xfree (cur.name); memset(&cur, 0, sizeof (cur)); cur.name = xstrdup(filename); DEBUGP (("Name: '%s'\n", cur.name)); @@ -491,8 +480,8 @@ ftp_parse_winnt_ls (const char *file) min = atoi(tok); /* Adjust hour from AM/PM. Just for the record, the sequence goes 11:00AM, 12:00PM, 01:00PM ... 11:00PM, 12:00AM, 01:00AM . */ - tok+=2; - if (hour == 12) hour = 0; + if (tok[0] && tok[1]) tok+=2; + if (hour >= 12 || hour < 0) hour = 0; if (*tok == 'P') hour += 12; DEBUGP (("YYYY/MM/DD HH:MM - %d/%02d/%02d %02d:%02d\n", @@ -559,10 +548,11 @@ ftp_parse_winnt_ls (const char *file) memcpy (l, &cur, sizeof (cur)); l->next = NULL; } + cur.name = NULL; } + xfree (cur.name); xfree (line); - fclose(fp); return dir; } @@ -604,7 +594,6 @@ static void eat_carets( char *str) char *strd; /* Destination pointer. */ char hdgt; unsigned char uchr; - unsigned char prop; /* Skip ahead to the first "^", if any. */ while ((*str != '\0') && (*str != '^')) @@ -621,11 +610,10 @@ static void eat_carets( char *str) if (uchr == '^') { /* Found a caret. Skip it, and check the next character. */ - uchr = *(++str); - prop = char_prop[ uchr]; - if (prop& 64) + if ((char_prop[(unsigned char) str[0]] & 64) && (char_prop[(unsigned char) str[1]] & 64)) { /* Hex digit. Get char code from this and next hex digit. */ + uchr = *(++str); if (uchr <= '9') { hdgt = uchr- '0'; /* '0' - '9' -> 0 - 9. */ @@ -677,25 +665,18 @@ static void eat_carets( char *str) static struct fileinfo * -ftp_parse_vms_ls (const char *file) +ftp_parse_vms_ls (FILE *fp) { - FILE *fp; int dt, i, j, len; int perms; size_t bufsize = 0; time_t timenow; struct tm *timestruct; - char date_str[ 32]; + char date_str[32]; char *line = NULL, *tok; /* tokenizer */ struct fileinfo *dir, *l, cur; /* list creation */ - fp = fopen (file, "r"); - if (!fp) - { - logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno)); - return NULL; - } dir = l = NULL; /* Skip blank lines, Directory heading, and more blank lines. */ @@ -727,6 +708,7 @@ ftp_parse_vms_ls (const char *file) /* Read remainder of file until the next blank line or EOF. */ + cur.name = NULL; while (i > 0) { char *p; @@ -753,8 +735,8 @@ ftp_parse_vms_ls (const char *file) */ #if (!defined( __VMS) && !defined( PRESERVE_VMS_VERSIONS)) - for (p = tok + strlen (tok); (--p > tok) && c_isdigit( *p); ); - if ((*p == ';') && (*(p- 1) != '^')) + for (p = tok + strlen (tok); (--p > tok) && c_isdigit(*p); ); + if (p > tok && (*p == ';') && (*(p - 1) != '^')) { *p = '\0'; } @@ -775,16 +757,16 @@ ftp_parse_vms_ls (const char *file) what will work in a CWD command. */ len = strlen (tok); - if (!c_strncasecmp((tok + (len - 4)), ".DIR", 4)) + if (len >= 4 && !c_strncasecmp(tok + (len - 4), ".DIR", 4)) { - *(tok+ (len - 4)) = '\0'; /* Discard ".DIR". */ + *(tok + (len - 4)) = '\0'; /* Discard ".DIR". */ cur.type = FT_DIRECTORY; cur.perms = VMS_DEFAULT_PROT_DIR; DEBUGP (("Directory (nv)\n")); } - else if (!c_strncasecmp ((tok + (len - 6)), ".DIR;1", 6)) + else if (len >= 6 && !c_strncasecmp (tok + len - 6, ".DIR;1", 6)) { - *(tok+ (len - 6)) = '\0'; /* Discard ".DIR;1". */ + *(tok + (len - 6)) = '\0'; /* Discard ".DIR;1". */ cur.type = FT_DIRECTORY; cur.perms = VMS_DEFAULT_PROT_DIR; DEBUGP (("Directory (v)\n")); @@ -795,6 +777,7 @@ ftp_parse_vms_ls (const char *file) cur.perms = VMS_DEFAULT_PROT_FILE; DEBUGP (("File\n")); } + xfree (cur.name); cur.name = xstrdup (tok); DEBUGP (("Name: '%s'\n", cur.name)); @@ -908,12 +891,12 @@ ftp_parse_vms_ls (const char *file) if (j == 0) { perms = 0; - j = 1; } - else + else if (j < 4) { perms <<= 3; } + j++; break; case 'R': perms |= 4; @@ -989,6 +972,7 @@ ftp_parse_vms_ls (const char *file) memcpy (l, &cur, sizeof (cur)); l->next = NULL; } + cur.name = NULL; i = getline (&line, &bufsize, fp); if (i > 0) @@ -1002,8 +986,8 @@ ftp_parse_vms_ls (const char *file) } } + xfree (cur.name); xfree (line); - fclose (fp); return dir; } @@ -1017,38 +1001,50 @@ ftp_parse_vms_ls (const char *file) struct fileinfo * ftp_parse_ls (const char *file, const enum stype system_type) { + FILE *fp; + struct fileinfo *fi; + + fp = fopen (file, "rb"); + if (!fp) + { + logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno)); + return NULL; + } + + fi = ftp_parse_ls_fp (fp, system_type); + fclose(fp); + + return fi; +} + +struct fileinfo * +ftp_parse_ls_fp (FILE *fp, const enum stype system_type) +{ switch (system_type) { case ST_UNIX: - return ftp_parse_unix_ls (file, 0); + return ftp_parse_unix_ls (fp, 0); case ST_WINNT: { /* Detect whether the listing is simulating the UNIX format */ - FILE *fp; - int c; - fp = fopen (file, "rb"); - if (!fp) - { - logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno)); - return NULL; - } - c = fgetc(fp); - fclose(fp); + int c = fgetc(fp); + rewind(fp); + /* If the first character of the file is '0'-'9', it's WINNT format. */ if (c >= '0' && c <='9') - return ftp_parse_winnt_ls (file); + return ftp_parse_winnt_ls (fp); else - return ftp_parse_unix_ls (file, 1); + return ftp_parse_unix_ls (fp, 1); } case ST_VMS: - return ftp_parse_vms_ls (file); + return ftp_parse_vms_ls (fp); case ST_MACOS: - return ftp_parse_unix_ls (file, 1); + return ftp_parse_unix_ls (fp, 1); default: logprintf (LOG_NOTQUIET, _("\ Unsupported listing type, trying Unix listing parser.\n")); - return ftp_parse_unix_ls (file, 0); + return ftp_parse_unix_ls (fp, 0); } } @@ -384,7 +384,7 @@ getftp (struct url *u, struct url *original_url, /* Check for ~/.netrc if none of the above match */ if (opt.netrc && (!user || !passwd)) - search_netrc (u->host, (const char **) &user, (const char **) &passwd, 1); + search_netrc (u->host, (const char **) &user, (const char **) &passwd, 1, NULL); if (!user) user = "anonymous"; if (!passwd) passwd = "-wget@"; @@ -1982,7 +1982,10 @@ ftp_loop_internal (struct url *u, struct url *original_url, struct fileinfo *f, #endif /* Fatal errors, give up. */ if (warc_tmp != NULL) + { fclose (warc_tmp); + warc_tmp = NULL; + } return err; case CONSOCKERR: case CONERROR: case FTPSRVERR: case FTPRERR: case WRITEFAILED: case FTPUNKNOWNTYPE: case FTPSYSERR: @@ -2110,7 +2113,10 @@ Removing file due to --delete-after in ftp_loop_internal():\n")); *local_file = xstrdup (locf); if (warc_tmp != NULL) - fclose (warc_tmp); + { + fclose (warc_tmp); + warc_tmp = NULL; + } return RETROK; } while (!opt.ntry || (count < opt.ntry)); @@ -2179,7 +2185,6 @@ static uerr_t ftp_retrieve_dirs (struct url *, struct url *, struct fileinfo *, ccon *); static uerr_t ftp_retrieve_glob (struct url *, struct url *, ccon *, int); static struct fileinfo *delelement (struct fileinfo *, struct fileinfo **); -static void freefileinfo (struct fileinfo *f); /* Retrieve a list of files given in struct fileinfo linked list. If a file is a symbolic link, do not retrieve it, but rather try to @@ -2822,7 +2827,7 @@ delelement (struct fileinfo *f, struct fileinfo **start) } /* Free the fileinfo linked list of files. */ -static void +void freefileinfo (struct fileinfo *f) { while (f) @@ -30,6 +30,9 @@ as that of the covered work. */ #ifndef FTP_H #define FTP_H +#include <stdio.h> +#include <stdbool.h> + #include "host.h" #include "url.h" @@ -167,6 +170,8 @@ enum wget_ftp_fstatus }; struct fileinfo *ftp_parse_ls (const char *, const enum stype); +struct fileinfo *ftp_parse_ls_fp (FILE *, const enum stype); +void freefileinfo(struct fileinfo *); uerr_t ftp_loop (struct url *, struct url *, char **, int *, struct url *, bool, bool); diff --git a/src/gnutls.c b/src/gnutls.c index 0fd8da8..0368b4a 100644 --- a/src/gnutls.c +++ b/src/gnutls.c @@ -535,35 +535,10 @@ _sni_hostname(const char *hostname) return sni_hostname; } -bool -ssl_connect_wget (int fd, const char *hostname, int *continue_session) +static int +set_prio_default (gnutls_session_t session) { - struct wgnutls_transport_context *ctx; - gnutls_session_t session; - int err; - - gnutls_init (&session, GNUTLS_CLIENT); - - /* We set the server name but only if it's not an IP address. */ - if (! is_valid_ip_address (hostname)) - { - /* GnuTLS 3.4.x (x<=10) disrespects the length parameter, we have to construct a new string */ - /* see https://gitlab.com/gnutls/gnutls/issues/78 */ - const char *sni_hostname = _sni_hostname(hostname); - - gnutls_server_name_set (session, GNUTLS_NAME_DNS, sni_hostname, strlen(sni_hostname)); - xfree(sni_hostname); - } - - gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, credentials); -#ifndef FD_TO_SOCKET -# define FD_TO_SOCKET(X) (X) -#endif -#ifdef HAVE_INTPTR_T - gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) (intptr_t) FD_TO_SOCKET (fd)); -#else - gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) FD_TO_SOCKET (fd)); -#endif + int err = -1; #if HAVE_GNUTLS_PRIORITY_SET_DIRECT switch (opt.secure_protocol) @@ -642,6 +617,53 @@ ssl_connect_wget (int fd, const char *hostname, int *continue_session) } #endif + return err; +} + +bool +ssl_connect_wget (int fd, const char *hostname, int *continue_session) +{ + struct wgnutls_transport_context *ctx; + gnutls_session_t session; + int err; + + gnutls_init (&session, GNUTLS_CLIENT); + + /* We set the server name but only if it's not an IP address. */ + if (! is_valid_ip_address (hostname)) + { + /* GnuTLS 3.4.x (x<=10) disrespects the length parameter, we have to construct a new string */ + /* see https://gitlab.com/gnutls/gnutls/issues/78 */ + const char *sni_hostname = _sni_hostname(hostname); + + gnutls_server_name_set (session, GNUTLS_NAME_DNS, sni_hostname, strlen(sni_hostname)); + xfree(sni_hostname); + } + + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, credentials); +#ifndef FD_TO_SOCKET +# define FD_TO_SOCKET(X) (X) +#endif +#ifdef HAVE_INTPTR_T + gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) (intptr_t) FD_TO_SOCKET (fd)); +#else + gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) FD_TO_SOCKET (fd)); +#endif + + if (!opt.tls_ciphers_string) + { + err = set_prio_default (session); + } + else + { +#if HAVE_GNUTLS_PRIORITY_SET_DIRECT + err = gnutls_priority_set_direct (session, opt.tls_ciphers_string, NULL); +#else + logprintf (LOG_NOTQUIET, _("GnuTLS: Cannot set prio string directly. Falling back to default priority.\n")); + err = gnutls_set_default_priority (); +#endif + } + if (err < 0) { logprintf (LOG_NOTQUIET, "GnuTLS: %s\n", gnutls_strerror (err)); @@ -731,6 +731,8 @@ wait_ares (ares_channel channel) else ares_process (channel, &read_fds, &write_fds); } + if (timer) + timer = ptimer_destroy (timer); } static void @@ -36,7 +36,7 @@ as that of the covered work. */ #include "hash.h" #include "c-ctype.h" #ifdef TESTING -#include "test.h" +#include "../tests/unit-tests.h" #endif #include <unistd.h> @@ -83,6 +83,9 @@ enum hsts_kh_match { /* Hashing and comparison functions for the hash table */ +#ifdef __clang__ +__attribute__((no_sanitize("integer"))) +#endif static unsigned long hsts_hash_func (const void *key) { @@ -621,19 +624,17 @@ hsts_store_close (hsts_store_t store) static char * get_hsts_store_filename (void) { - char *home = NULL, *filename = NULL; + char *filename = NULL; FILE *fp = NULL; - home = home_dir (); - if (home) + if (opt.homedir) { - filename = aprintf ("%s/.wget-hsts-test", home); + filename = aprintf ("%s/.wget-hsts-test", opt.homedir); fp = fopen (filename, "w"); if (fp) fclose (fp); } - xfree (home); return filename; } @@ -786,14 +787,13 @@ const char* test_hsts_read_database (void) { hsts_store_t table; - char *home = home_dir(); char *file = NULL; FILE *fp = NULL; time_t created = time(NULL) - 10; - if (home) + if (opt.homedir) { - file = aprintf ("%s/.wget-hsts-testing", home); + file = aprintf ("%s/.wget-hsts-testing", opt.homedir); fp = fopen (file, "w"); if (fp) { @@ -818,7 +818,6 @@ test_hsts_read_database (void) unlink (file); } xfree (file); - xfree (home); } return NULL; diff --git a/src/html-url.c b/src/html-url.c index dd87899..9691526 100644 --- a/src/html-url.c +++ b/src/html-url.c @@ -796,22 +796,13 @@ collect_tags_mapper (struct taginfo *tag, void *arg) <base href=...> and does the right thing. */ struct urlpos * -get_urls_html (const char *file, const char *url, bool *meta_disallow_follow, - struct iri *iri) +get_urls_html_fm (const char *file, const struct file_memory *fm, + const char *url, bool *meta_disallow_follow, + struct iri *iri) { - struct file_memory *fm; struct map_context ctx; int flags; - /* Load the file. */ - fm = wget_read_file (file); - if (!fm) - { - logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno)); - return NULL; - } - DEBUGP (("Loaded %s (size %s).\n", file, number_to_static_string (fm->length))); - ctx.text = fm->content; ctx.head = NULL; ctx.base = NULL; @@ -850,10 +841,29 @@ get_urls_html (const char *file, const char *url, bool *meta_disallow_follow, *meta_disallow_follow = ctx.nofollow; xfree (ctx.base); - wget_read_file_free (fm); return ctx.head; } +struct urlpos * +get_urls_html (const char *file, const char *url, bool *meta_disallow_follow, + struct iri *iri) +{ + struct urlpos *urls; + struct file_memory *fm; + + fm = wget_read_file (file); + if (!fm) + { + logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno)); + return NULL; + } + DEBUGP (("Loaded %s (size %s).\n", file, number_to_static_string (fm->length))); + + urls = get_urls_html_fm (file, fm, url, meta_disallow_follow, iri); + wget_read_file_free (fm); + return urls; +} + /* This doesn't really have anything to do with HTML, but it's similar to get_urls_html, so we put it here. */ diff --git a/src/html-url.h b/src/html-url.h index a3ca43c..6eaf360 100644 --- a/src/html-url.h +++ b/src/html-url.h @@ -31,6 +31,11 @@ as that of the covered work. */ #ifndef HTML_URL_H #define HTML_URL_H +#include <stdbool.h> +#include "utils.h" +#include "convert.h" +#include "iri.h" + struct map_context { char *text; /* HTML text. */ char *base; /* Base URI of the document, possibly @@ -45,6 +50,7 @@ struct map_context { struct urlpos *get_urls_file (const char *); struct urlpos *get_urls_html (const char *, const char *, bool *, struct iri *); +struct urlpos *get_urls_html_fm (const char *, const struct file_memory *, const char *, bool *, struct iri *); struct urlpos *append_url (const char *, int, int, struct map_context *); void free_urlpos (struct urlpos *); void cleanup_html_url (void); @@ -71,7 +71,7 @@ as that of the covered work. */ #endif #ifdef TESTING -#include "test.h" +#include "../tests/unit-tests.h" #endif #ifdef __VMS @@ -613,9 +613,9 @@ struct response { resp_header_*. */ static struct response * -resp_new (const char *head) +resp_new (char *head) { - const char *hdr; + char *hdr; int count, size; struct response *resp = xnew0 (struct response); @@ -644,15 +644,23 @@ resp_new (const char *head) break; /* Find the end of HDR, including continuations. */ - do + for (;;) { - const char *end = strchr (hdr, '\n'); + char *end = strchr (hdr, '\n'); + if (end) hdr = end + 1; else hdr += strlen (hdr); + + if (*hdr != ' ' && *hdr != '\t') + break; + + // continuation, transform \r and \n into spaces + *end = ' '; + if (end > head && end[-1] == '\r') + end[-1] = ' '; } - while (*hdr == ' ' || *hdr == '\t'); } DO_REALLOC (resp->headers, size, count + 1, const char *); resp->headers[count] = NULL; @@ -1927,10 +1935,10 @@ initialize_request (const struct url *u, struct http_stat *hs, int *dt, struct u /* Check for ~/.netrc if none of the above match */ if (opt.netrc && (!*user || !*passwd)) - search_netrc (u->host, (const char **) user, (const char **) passwd, 0); + search_netrc (u->host, (const char **) user, (const char **) passwd, 0, NULL); /* We only do "site-wide" authentication with "global" user/password - * values unless --auth-no-challange has been requested; URL user/password + * values unless --auth-no-challenge has been requested; URL user/password * info overrides. */ if (*user && *passwd && (!u->user || opt.auth_without_challenge)) { @@ -3795,7 +3803,7 @@ gethttp (const struct url *u, struct url *original_url, struct http_stat *hs, hs->restval = 0; /* Normally we are not interested in the response body of a redirect. - But if we are writing a WARC file we are: we like to keep everyting. */ + But if we are writing a WARC file we are: we like to keep everything. */ if (warc_enabled) { int _err = read_response_body (hs, sock, NULL, contlen, 0, @@ -4594,7 +4602,7 @@ The sizes do not match (local %s) -- retrieving.\n"), bool finished = true; if (opt.recursive) { - if (*dt & TEXTHTML) + if ((*dt & TEXTHTML) || (*dt & TEXTCSS)) { logputs (LOG_VERBOSE, _("\ Remote file exists and could contain links to other resources -- retrieving.\n\n")); @@ -4609,7 +4617,7 @@ Remote file exists but does not contain any link -- not retrieving.\n\n")); } else { - if (*dt & TEXTHTML) + if ((*dt & TEXTHTML) || (*dt & TEXTCSS)) { logprintf (LOG_VERBOSE, _("\ Remote file exists and could contain further links,\n\ @@ -69,10 +69,11 @@ as that of the covered work. */ #include "warc.h" /* for warc_close */ #include "spider.h" /* for spider_cleanup */ #include "html-url.h" /* for cleanup_html_url */ +#include "ptimer.h" /* for ptimer_destroy */ #include "c-strcase.h" #ifdef TESTING -#include "test.h" +#include "../tests/unit-tests.h" #endif @@ -163,6 +164,9 @@ static const struct { { "checkcertificate", &opt.check_cert, cmd_check_cert }, #endif { "chooseconfig", &opt.choose_config, cmd_file }, +#ifdef HAVE_SSL + { "ciphers", &opt.tls_ciphers_string, cmd_string }, +#endif #ifdef HAVE_LIBZ { "compression", &opt.compression, cmd_spec_compression }, #endif @@ -592,26 +596,25 @@ wgetrc_env_file_name (void) char * wgetrc_user_file_name (void) { - char *home; char *file = NULL; /* If that failed, try $HOME/.wgetrc (or equivalent). */ #ifdef __VMS file = "SYS$LOGIN:.wgetrc"; #else /* def __VMS */ - home = home_dir (); - if (home) - file = aprintf ("%s/.wgetrc", home); - xfree (home); + if (opt.homedir) + file = aprintf ("%s/.wgetrc", opt.homedir); #endif /* def __VMS [else] */ if (!file) return NULL; +#ifndef FUZZING if (!file_exists_p (file, NULL)) { xfree (file); return NULL; } +#endif return file; } @@ -728,10 +731,10 @@ run_wgetrc (const char *file, file_stats_t *flstats) /* Initialize the defaults and run the system wgetrc and user's own wgetrc. */ -void +int initialize (void) { - char *file, *env_sysrc; + char *env_sysrc; file_stats_t flstats; bool ok = true; @@ -750,7 +753,7 @@ initialize (void) Parsing system wgetrc file (env SYSTEM_WGETRC) failed. Please check\n\ '%s',\n\ or specify a different file using --config.\n"), env_sysrc); - exit (WGET_EXIT_PARSE_ERROR); + return WGET_EXIT_PARSE_ERROR; } } /* Otherwise, if SYSTEM_WGETRC is defined, use it. */ @@ -765,33 +768,36 @@ or specify a different file using --config.\n"), env_sysrc); Parsing system wgetrc file failed. Please check\n\ '%s',\n\ or specify a different file using --config.\n"), SYSTEM_WGETRC); - exit (WGET_EXIT_PARSE_ERROR); + return WGET_EXIT_PARSE_ERROR; } #endif /* Override it with your own, if one exists. */ - file = wgetrc_file_name (); - if (!file) - return; + opt.wgetrcfile = wgetrc_file_name (); + if (!opt.wgetrcfile) + return 0; /* #### We should canonicalize `file' and SYSTEM_WGETRC with something like realpath() before comparing them with `strcmp' */ #ifdef SYSTEM_WGETRC - if (!strcmp (file, SYSTEM_WGETRC)) + if (!strcmp (opt.wgetrcfile, SYSTEM_WGETRC)) { fprintf (stderr, _("\ %s: Warning: Both system and user wgetrc point to %s.\n"), - exec_name, quote (file)); + exec_name, quote (opt.wgetrcfile)); } else #endif - if (file_exists_p (file, &flstats)) - ok &= run_wgetrc (file, &flstats); +#ifndef FUZZING + if (file_exists_p (opt.wgetrcfile, &flstats)) +#endif + ok &= run_wgetrc (opt.wgetrcfile, &flstats); + + xfree (opt.wgetrcfile); /* If there were errors processing either `.wgetrc', abort. */ if (!ok) - exit (WGET_EXIT_PARSE_ERROR); + return WGET_EXIT_PARSE_ERROR; - xfree (file); - return; + return 0; } /* Remove dashes and underscores from S, modifying S in the @@ -904,7 +910,6 @@ setval_internal_tilde (int comind, const char *com, const char *val) { bool ret; int homelen; - char *home; char **pstring; ret = setval_internal (comind, com, val); @@ -914,17 +919,20 @@ setval_internal_tilde (int comind, const char *com, const char *val) && ret && (*val == '~' && ISSEP (val[1]))) { pstring = commands[comind].place; - home = home_dir (); - if (home) + if (opt.homedir) { + char *home = xstrdup(opt.homedir); homelen = strlen (home); while (homelen && ISSEP (home[homelen - 1])) home[--homelen] = '\0'; + xfree (*pstring); + /* Skip the leading "~/". */ for (++val; ISSEP (*val); val++) ; *pstring = concat_strings (home, "/", val, (char *)0); + xfree (home); } } return ret; @@ -986,7 +994,6 @@ struct decode_item { int code; }; static bool decode_string (const char *, const struct decode_item *, int, int *); -static bool simple_atoi (const char *, const char *, int *); static bool simple_atof (const char *, const char *, double *); #define CMP1(p, c0) (c_tolower((p)[0]) == (c0) && (p)[1] == '\0') @@ -1081,13 +1088,16 @@ cmd_check_cert (const char *com, const char *val, void *place) static bool cmd_number (const char *com, const char *val, void *place) { - if (!simple_atoi (val, val + strlen (val), place) - || *(int *) place < 0) + long l = strtol(val, NULL, 10); + + if (((l == LONG_MIN || l == LONG_MAX) && errno == ERANGE) + || l < 0 || l > INT_MAX) { fprintf (stderr, _("%s: %s: Invalid number %s.\n"), exec_name, com, quote (val)); return false; } + *(int *) place = (int) l; return true; } @@ -1337,7 +1347,9 @@ static bool cmd_bytes_sum (const char *com, const char *val, void *place) { double byte_value; - if (!parse_bytes_helper (val, &byte_value)) + + if (!parse_bytes_helper (val, &byte_value) + || byte_value < LONG_MIN || byte_value > LONG_MAX) { fprintf (stderr, _("%s: %s: Invalid byte value %s\n"), exec_name, com, quote (val)); @@ -1427,7 +1439,7 @@ cmd_use_askpass (const char *com _GL_UNUSED, const char *val, void *place) if (!(env && *env)) { fprintf (stderr, _("use-askpass requires a string or either environment variable WGET_ASKPASS or SSH_ASKPASS to be set.\n")); - exit (WGET_EXIT_GENERIC_ERROR); + return false; } return cmd_string (com, env, place); @@ -1544,7 +1556,7 @@ cmd_spec_htmlify (const char *com, const char *val, void *place_ignored _GL_UNUS static bool cmd_spec_mirror (const char *com, const char *val, void *place_ignored _GL_UNUSED) { - int mirror; + bool mirror; if (!cmd_boolean (com, val, &mirror)) return false; @@ -1711,6 +1723,7 @@ cmd_spec_secure_protocol (const char *com, const char *val, void *place) { "tlsv1", secure_protocol_tlsv1 }, { "tlsv1_1", secure_protocol_tlsv1_1 }, { "tlsv1_2", secure_protocol_tlsv1_2 }, + { "tlsv1_3", secure_protocol_tlsv1_3 }, { "pfs", secure_protocol_pfs }, }; int ok = decode_string (val, choices, countof (choices), place); @@ -1784,54 +1797,6 @@ cmd_spec_verbose (const char *com, const char *val, void *place_ignored _GL_UNUS /* Miscellaneous useful routines. */ -/* A very simple atoi clone, more useful than atoi because it works on - delimited strings, and has error reportage. Returns true on success, - false on failure. If successful, stores result to *DEST. */ - -static bool -simple_atoi (const char *beg, const char *end, int *dest) -{ - int result = 0; - bool negative = false; - const char *p = beg; - - while (p < end && c_isspace (*p)) - ++p; - if (p < end && (*p == '-' || *p == '+')) - { - negative = (*p == '-'); - ++p; - } - if (p == end) - return false; - - /* Read negative numbers in a separate loop because the most - negative integer cannot be represented as a positive number. */ - - if (!negative) - for (; p < end && c_isdigit (*p); p++) - { - int next = (10 * result) + (*p - '0'); - if (next < result) - return false; /* overflow */ - result = next; - } - else - for (; p < end && c_isdigit (*p); p++) - { - int next = (10 * result) - (*p - '0'); - if (next > result) - return false; /* underflow */ - result = next; - } - - if (p != end) - return false; - - *dest = result; - return true; -} - /* Trivial atof, with error reporting. Handles "<digits>[.<digits>]", doesn't handle exponential notation. Returns true on success, false on failure. In case of success, stores its result to @@ -1924,21 +1889,31 @@ decode_string (const char *val, const struct decode_item *items, int itemcount, return false; } +extern struct ptimer *timer; +extern int cleaned_up; + /* Free the memory allocated by global variables. */ void cleanup (void) { /* Free external resources, close files, etc. */ + if (cleaned_up++) + return; /* cleanup() must not be called twice */ + /* Close WARC file. */ if (opt.warc_filename != 0) warc_close (); log_close (); - if (output_stream) - if (fclose (output_stream) == EOF) - inform_exit_status (CLOSEFAILED); + if (output_stream && output_stream != stderr) + { + FILE *fp = output_stream; + output_stream = NULL; + if (fclose (fp) == EOF) + inform_exit_status (CLOSEFAILED); + } /* No need to check for error because Wget flushes its output (and checks for errors) after any data arrives. */ @@ -1946,12 +1921,12 @@ cleanup (void) /* We're exiting anyway so there's no real need to call free() hundreds of times. Skipping the frees will make Wget exit faster. - + * However, when detecting leaks, it's crucial to free() everything because then you can find the real leaks, i.e. the allocated memory which grows with the size of the program. */ -#ifdef DEBUG_MALLOC +#if defined DEBUG_MALLOC || defined TESTING convert_cleanup (); res_cleanup (); http_cleanup (); @@ -1970,24 +1945,43 @@ cleanup (void) xfree (opt.preferred_location); #endif xfree (opt.output_document); + xfree (opt.default_page); + if (opt.regex_type == regex_type_posix) + { + if (opt.acceptregex) + regfree (opt.acceptregex); + if (opt.rejectregex) + regfree (opt.rejectregex); + } + xfree (opt.acceptregex); + xfree (opt.rejectregex); + xfree (opt.acceptregex_s); + xfree (opt.rejectregex_s); free_vec (opt.accepts); free_vec (opt.rejects); free_vec ((char **)opt.excludes); free_vec ((char **)opt.includes); free_vec (opt.domains); + free_vec (opt.exclude_domains); free_vec (opt.follow_tags); free_vec (opt.ignore_tags); xfree (opt.progress_type); + xfree (opt.warc_filename); + xfree (opt.warc_tempdir); + xfree (opt.warc_cdx_dedup_filename); xfree (opt.ftp_user); xfree (opt.ftp_passwd); xfree (opt.ftp_proxy); xfree (opt.https_proxy); xfree (opt.http_proxy); free_vec (opt.no_proxy); + xfree (opt.proxy_user); + xfree (opt.proxy_passwd); xfree (opt.useragent); xfree (opt.referer); xfree (opt.http_user); xfree (opt.http_passwd); + xfree (opt.dot_style); free_vec (opt.user_headers); free_vec (opt.warc_user_headers); # ifdef HAVE_SSL @@ -1996,6 +1990,7 @@ cleanup (void) xfree (opt.ca_directory); xfree (opt.ca_cert); xfree (opt.crl_file); + xfree (opt.pinnedpubkey); xfree (opt.random_file); xfree (opt.egd_file); # endif @@ -2014,6 +2009,16 @@ cleanup (void) xfree (opt.use_askpass); xfree (opt.retry_on_http_error); + xfree (opt.encoding_remote); + xfree (opt.locale); + xfree (opt.hsts_file); + + xfree (opt.wgetrcfile); + xfree (opt.homedir); + xfree (exec_name); + xfree (program_argstring); + ptimer_destroy (timer); timer = NULL; + #ifdef HAVE_LIBCARES #include <ares.h> { @@ -2026,7 +2031,9 @@ cleanup (void) } #endif -#endif /* DEBUG_MALLOC */ + quotearg_free (); + +#endif /* DEBUG_MALLOC || TESTING */ } /* Unit testing routines. */ @@ -33,7 +33,7 @@ as that of the covered work. */ char *wgetrc_env_file_name (void); char *wgetrc_user_file_name (void); char *wgetrc_file_name (void); -void initialize (void); +int initialize (void); void run_command (const char *); void setoptval (const char *, const char *, const char *); char *home_dir (void); @@ -95,9 +95,9 @@ find_locale (void) const char *encoding = nl_langinfo(CODESET); if (!encoding || !*encoding) - return "ASCII"; + return xstrdup("ASCII"); - return encoding; + return xstrdup(encoding); } /* Basic check of an encoding name. */ @@ -45,7 +45,7 @@ bool check_encoding_name (const char *encoding); const char *locale_to_utf8 (const char *str); char *idn_encode (const struct iri *i, const char *host); char *idn_decode (const char *host); -bool remote_to_utf8 (const struct iri *i, const char *str, char **new); +bool remote_to_utf8 (const struct iri *i, const char *str, char **newstr); struct iri *iri_new (void); struct iri *iri_dup (const struct iri *); void iri_free (struct iri *i); @@ -599,7 +599,9 @@ debug_logprintf (const char *fmt, ...) struct logvprintf_state lpstate; bool done; +#ifndef TESTING check_redirect_output (); +#endif if (inhibit_logging) return; @@ -676,9 +678,16 @@ log_close (void) { int i; - if (logfp && (logfp != stderr)) - fclose (logfp); + if (logfp && logfp != stderr && logfp != stdout) + { + if (logfp == stdlogfp) + stdlogfp = NULL; + if (logfp == filelogfp) + filelogfp = NULL; + fclose (logfp); + } logfp = NULL; + inhibit_logging = true; save_context_p = false; @@ -64,6 +64,12 @@ as that of the covered work. */ #include <getpass.h> #include <quote.h> +#ifdef TESTING +/* Rename the main function so we can have a main() in fuzzing code + and call the original main. */ +# define main main_wget +#endif + #ifdef HAVE_METALINK # include <metalink/metalink_parser.h> # include "metalink.h" @@ -109,7 +115,6 @@ const char *exec_name; /* Number of successfully downloaded URLs */ int numurls = 0; -#ifndef TESTING /* Initialize I18N/L10N. That amounts to invoking setlocale, and setting up gettext's message catalog using bindtextdomain and textdomain. Does nothing if NLS is disabled or missing. */ @@ -167,16 +172,12 @@ hsts_store_t hsts_store; static char* get_hsts_database (void) { - char *home; - if (opt.hsts_file) return xstrdup (opt.hsts_file); - home = home_dir (); - if (home) + if (opt.homedir) { - char *dir = aprintf ("%s/.wget-hsts", home); - xfree(home); + char *dir = aprintf ("%s/.wget-hsts", opt.homedir); return dir; } @@ -222,6 +223,7 @@ save_hsts (void) } hsts_store_close (hsts_store); + xfree (hsts_store); xfree (filename); } @@ -390,6 +392,7 @@ static struct cmdline_option option_data[] = { "preferred-location", 0, OPT_VALUE, "preferredlocation", -1 }, #endif { "preserve-permissions", 0, OPT_BOOLEAN, "preservepermissions", -1 }, + { IF_SSL ("ciphers"), 0, OPT_VALUE, "ciphers", -1 }, { IF_SSL ("private-key"), 0, OPT_VALUE, "privatekey", -1 }, { IF_SSL ("private-key-type"), 0, OPT_VALUE, "privatekeytype", -1 }, { "progress", 0, OPT_VALUE, "progress", -1 }, @@ -497,8 +500,14 @@ static unsigned char optmap[96]; static void init_switches (void) { + static bool initialized; char *p = short_options; size_t i, o = 0; + + if (initialized) + return; + initialized = 1; + for (i = 0; i < countof (option_data); i++) { struct cmdline_option *cmdopt = &option_data[i]; @@ -560,10 +569,14 @@ init_switches (void) /* Print the usage message. */ static int -print_usage (int error) +print_usage (_GL_UNUSED int error) { +#ifndef TESTING return fprintf (error ? stderr : stdout, _("Usage: %s [OPTION]... [URL]...\n"), exec_name); +#else + return 0; +#endif } /* Print the help message, describing all the available options. If @@ -571,6 +584,7 @@ print_usage (int error) _Noreturn static void print_help (void) { +#ifndef TESTING /* We split the help text this way to ease translation of individual entries. */ static const char *help[] = { @@ -637,6 +651,8 @@ Download:\n"), N_("\ --retry-connrefused retry even if connection is refused\n"), N_("\ + --retry-on-http-error=ERRORS comma-separated list of HTTP errors to retry\n"), + N_("\ -O, --output-document=FILE write documents to FILE\n"), N_("\ -nc, --no-clobber skip downloads that would download to\n\ @@ -860,6 +876,10 @@ HTTPS (SSL/TLS) options:\n"), --egd-file=FILE file naming the EGD socket with random data\n"), #endif "\n", + N_("\ + --ciphers=STR Set the priority string (GnuTLS) or cipher list string (OpenSSL) directly.\n\ + Use with care. This option overrides --secure-protocol.\n\ + The format and syntax of this string depend on the specific SSL/TLS engine.\n"), #endif /* HAVE_SSL */ #ifdef HAVE_HSTS @@ -1005,7 +1025,8 @@ Recursive accept/reject:\n"), N_("\ -np, --no-parent don't ascend to the parent directory\n"), "\n", - N_("Mail bug reports and suggestions to <bug-wget@gnu.org>\n") + N_("Email bug reports, questions, discussions to <bug-wget@gnu.org>\n"), + N_("and/or open issues at https://savannah.gnu.org/bugs/?func=additem&group=wget.\n") }; size_t i; @@ -1019,7 +1040,7 @@ Recursive accept/reject:\n"), for (i = 0; i < countof (help); i++) if (fputs (_(help[i]), stdout) < 0) exit (WGET_EXIT_IO_FAIL); - +#endif /* TESTING */ exit (WGET_EXIT_SUCCESS); } @@ -1056,7 +1077,12 @@ prompt_for_password (void) fprintf (stderr, _("Password for user %s: "), quote (opt.user)); else fprintf (stderr, _("Password: ")); +#ifndef TESTING + /* gnulib's getpass() uses static variables internally, bad for fuzing */ return getpass(""); +#else + return xstrdup(""); +#endif } @@ -1317,6 +1343,8 @@ There is NO WARRANTY, to the extent permitted by law.\n"), stdout) < 0) const char *program_name; /* Needed by lib/error.c. */ const char *program_argstring; /* Needed by wget_warc.c. */ +struct ptimer *timer; +int cleaned_up; int main (int argc, char **argv) @@ -1330,7 +1358,9 @@ main (int argc, char **argv) bool noconfig = false; bool append_to_log = false; - struct ptimer *timer = ptimer_new (); + cleaned_up = 0; /* do cleanup later */ + + timer = ptimer_new (); double start_time = ptimer_measure (timer); total_downloaded_bytes = 0; @@ -1375,6 +1405,7 @@ main (int argc, char **argv) /* Load the hard-coded defaults. */ defaults (); + opt.homedir = home_dir(); init_switches (); @@ -1416,7 +1447,8 @@ main (int argc, char **argv) /* If the user did not specify a config, read the system wgetrc and ~/.wgetrc. */ if (noconfig == false && use_userconfig == false) - initialize (); + if ((ret = initialize ())) + return ret; opterr = 0; optind = 0; @@ -1737,12 +1769,14 @@ for details.\n\n")); ) { /* No URL specified. */ +#ifndef TESTING fprintf (stderr, _("%s: missing URL\n"), exec_name); print_usage (1); fprintf (stderr, "\n"); /* #### Something nicer should be printed here -- similar to the pre-1.5 `--help' page. */ fprintf (stderr, _("Try `%s --help' for more options.\n"), exec_name); +#endif exit (WGET_EXIT_GENERIC_ERROR); } @@ -1837,13 +1871,13 @@ for details.\n\n")); if (opt.enable_iri) { if (opt.locale && !check_encoding_name (opt.locale)) - opt.locale = NULL; + xfree (opt.locale); if (!opt.locale) opt.locale = find_locale (); if (opt.encoding_remote && !check_encoding_name (opt.encoding_remote)) - opt.encoding_remote = NULL; + xfree (opt.encoding_remote); } #else memset (&dummy_iri, 0, sizeof (dummy_iri)); @@ -1877,9 +1911,14 @@ for details.\n\n")); if (opt.wdebug) dbug_init(); sock_init(); -#else +#elif ! defined TESTING if (opt.background) - fork_to_background (); + { + bool logfile_changed = fork_to_background (); + + if (logfile_changed) + log_init (opt.lfilename, append_to_log); + } #endif /* Initialize progress. Have to do this after the options are @@ -2212,7 +2251,7 @@ only if outputting to a regular file.\n")); char *wall_time = xstrdup (secs_to_human_time (end_time - start_time)); char *download_time = xstrdup (secs_to_human_time (total_download_time)); - ptimer_destroy (timer); + ptimer_destroy (timer); timer = NULL; logprintf (LOG_NOTQUIET, _("FINISHED --%s--\nTotal wall clock time: %s\n" @@ -2249,8 +2288,6 @@ only if outputting to a regular file.\n")); exit (get_exit_status ()); } -#endif /* TESTING */ - /* * vim: et ts=2 sw=2 */ diff --git a/src/metalink.c b/src/metalink.c index 93cc615..47c8acc 100644 --- a/src/metalink.c +++ b/src/metalink.c @@ -53,7 +53,7 @@ as that of the covered work. */ #endif #ifdef TESTING -#include "test.h" +#include "../tests/unit-tests.h" #endif /* Loop through all files in metalink structure and retrieve them. @@ -99,8 +99,8 @@ retrieve_from_metalink (const metalink_t* metalink) metalink_resource_t **mres_ptr; char *planname = NULL; char *trsrname = NULL; - char *filename = NULL; - char *basename = NULL; + char *filename; + char *basename; char *safename = NULL; char *destname = NULL; bool size_ok = false; @@ -709,8 +709,7 @@ retrieve_from_metalink (const metalink_t* metalink) gpgme_data_t gpgsigdata, gpgdata; gpgme_verify_result_t gpgres; gpgme_signature_t gpgsig; - gpgme_protocol_t gpgprot = GPGME_PROTOCOL_UNKNOWN; - int fd = -1; + int fd; /* Initialize the library - as name suggests. */ gpgme_check_version (NULL); @@ -751,16 +750,15 @@ retrieve_from_metalink (const metalink_t* metalink) msig->signature)); /* Check signature type. */ - if (!strcmp (msig->mediatype, "application/pgp-signature")) - gpgprot = GPGME_PROTOCOL_OpenPGP; - else /* Unsupported signature type. */ + if (strcmp (msig->mediatype, "application/pgp-signature")) { + /* Unsupported signature type. */ gpgme_release (gpgctx); gpgme_data_release (gpgdata); goto gpg_skip_verification; } - gpgerr = gpgme_set_protocol (gpgctx, gpgprot); + gpgerr = gpgme_set_protocol (gpgctx, GPGME_PROTOCOL_OpenPGP); if (gpgerr != GPG_ERR_NO_ERROR) { logprintf (LOG_NOTQUIET, diff --git a/src/mswindows.c b/src/mswindows.c index 2ce9150..5be3ed8 100644 --- a/src/mswindows.c +++ b/src/mswindows.c @@ -312,7 +312,7 @@ cleanup: /* This is the corresponding Windows implementation of the fork_to_background() function in utils.c. */ -void +bool fork_to_background (void) { int rv; @@ -332,6 +332,7 @@ fork_to_background (void) abort (); } /* If we get here, we're the child. */ + return false; } static BOOL WINAPI diff --git a/src/netrc.c b/src/netrc.c index 7001739..15a79a1 100644 --- a/src/netrc.c +++ b/src/netrc.c @@ -48,14 +48,27 @@ as that of the covered work. */ # define NETRC_FILE_NAME ".netrc" #endif -static acc_t *netrc_list; +typedef struct _acc_t +{ + char *host; /* NULL if this is the default machine + entry. */ + char *acc; + char *passwd; /* NULL if there is no password. */ + struct _acc_t *next; +} acc_t; static acc_t *parse_netrc (const char *); +static acc_t *parse_netrc_fp (const char *, FILE *); +static void free_netrc(acc_t *); + +static acc_t *netrc_list; +static int processed_netrc; void netrc_cleanup(void) { free_netrc (netrc_list); + processed_netrc = 0; } /* Return the correct user and password, given the host, user (as @@ -66,10 +79,9 @@ netrc_cleanup(void) You will typically turn it off for HTTP. */ void search_netrc (const char *host, const char **acc, const char **passwd, - int slack_default) + int slack_default, FILE *fp_netrc) { acc_t *l; - static int processed_netrc; if (!opt.netrc) return; @@ -91,20 +103,18 @@ search_netrc (const char *host, const char **acc, const char **passwd, #else /* def __VMS */ - char *home = home_dir (); - netrc_list = NULL; processed_netrc = 1; - if (home) + + if (fp_netrc) + netrc_list = parse_netrc_fp (".netrc", fp_netrc); + else if (opt.homedir) { - int err; struct stat buf; - char *path = (char *)alloca (strlen (home) + 1 + char *path = (char *)alloca (strlen (opt.homedir) + 1 + strlen (NETRC_FILE_NAME) + 1); - sprintf (path, "%s/%s", home, NETRC_FILE_NAME); - xfree (home); - err = stat (path, &buf); - if (err == 0) + sprintf (path, "%s/%s", opt.homedir, NETRC_FILE_NAME); + if (stat (path, &buf) == 0) netrc_list = parse_netrc (path); } @@ -227,13 +237,12 @@ shift_left(char *string) /* Parse a .netrc file (as described in the ftp(1) manual page). */ static acc_t * -parse_netrc (const char *path) +parse_netrc_fp (const char *path, FILE *fp) { - FILE *fp; char *line = NULL, *p, *tok; - const char *premature_token; - acc_t *current, *retval; - int ln, qmark; + const char *premature_token = NULL; + acc_t *current = NULL, *retval = NULL; + int ln = 0, qmark; size_t bufsize = 0; /* The latest token we've seen in the file. */ @@ -242,20 +251,6 @@ parse_netrc (const char *path) tok_nothing, tok_account, tok_login, tok_macdef, tok_machine, tok_password, tok_port, tok_force } last_token = tok_nothing; - current = retval = NULL; - - fp = fopen (path, "r"); - if (!fp) - { - fprintf (stderr, _("%s: Cannot read %s (%s).\n"), exec_name, - path, strerror (errno)); - return retval; - } - - /* Initialize the file data. */ - ln = 0; - premature_token = NULL; - /* While there are lines in the file... */ while (getline (&line, &bufsize, fp) > 0) { @@ -318,7 +313,10 @@ parse_netrc (const char *path) { case tok_login: if (current) - current->acc = xstrdup (tok); + { + xfree (current->acc); + current->acc = xstrdup (tok); + } else premature_token = "login"; break; @@ -331,7 +329,10 @@ parse_netrc (const char *path) case tok_password: if (current) - current->passwd = xstrdup (tok); + { + xfree (current->passwd); + current->passwd = xstrdup (tok); + } else premature_token = "password"; break; @@ -415,7 +416,6 @@ parse_netrc (const char *path) } xfree (line); - fclose (fp); /* Finalize the last machine entry we found. */ maybe_add_to_list (¤t, &retval); @@ -440,9 +440,28 @@ parse_netrc (const char *path) return retval; } +static acc_t * +parse_netrc (const char *path) +{ + FILE *fp; + acc_t *acc; + + fp = fopen (path, "r"); + if (!fp) + { + fprintf (stderr, _("%s: Cannot read %s (%s).\n"), exec_name, + path, strerror (errno)); + return NULL; + } + + acc = parse_netrc_fp (path, fp); + fclose(fp); + + return acc; +} /* Free a netrc list. */ -void +static void free_netrc(acc_t *l) { acc_t *t; diff --git a/src/netrc.h b/src/netrc.h index 045b522..d7fcc64 100644 --- a/src/netrc.h +++ b/src/netrc.h @@ -31,17 +31,9 @@ as that of the covered work. */ #ifndef NETRC_H #define NETRC_H -typedef struct _acc_t -{ - char *host; /* NULL if this is the default machine - entry. */ - char *acc; - char *passwd; /* NULL if there is no password. */ - struct _acc_t *next; -} acc_t; - -void search_netrc (const char *, const char **, const char **, int); -void free_netrc (acc_t *l); +#include <stdio.h> + +void search_netrc (const char *, const char **, const char **, int, FILE *); void netrc_cleanup(void); #endif /* NETRC_H */ diff --git a/src/openssl.c b/src/openssl.c index 6af38db..6cf4afe 100644 --- a/src/openssl.c +++ b/src/openssl.c @@ -67,10 +67,6 @@ init_prng (void) char namebuf[256]; const char *random_file; - if (RAND_status ()) - /* The PRNG has been seeded; no further action is necessary. */ - return; - /* Seed from a file specified by the user. This will be the file specified with --random-file, $RANDFILE, if set, or ~/.rnd, if it exists. */ @@ -88,18 +84,12 @@ init_prng (void) curl) from random file. */ RAND_load_file (random_file, 16384); - if (RAND_status ()) - return; - #ifdef HAVE_RAND_EGD /* Get random data from EGD if opt.egd_file was used. */ if (opt.egd_file && *opt.egd_file) RAND_egd (opt.egd_file); #endif - if (RAND_status ()) - return; - #ifdef WINDOWS /* Under Windows, we can try to seed the PRNG using screen content. This may or may not work, depending on whether we'll calling Wget @@ -173,6 +163,7 @@ ssl_init (void) { SSL_METHOD const *meth; long ssl_options = 0; + char *ciphers_string = NULL; #if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L) int ssl_proto_version = 0; #endif @@ -263,6 +254,16 @@ ssl_init (void) meth = TLSv1_2_client_method (); #endif break; + + case secure_protocol_tlsv1_3: +#if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L) && defined TLS1_3_VERSION + meth = TLS_client_method(); + ssl_proto_version = TLS1_3_VERSION; +#else + logprintf (LOG_NOTQUIET, _("Your OpenSSL version is too old to support TLS 1.3\n")); + goto error; +#endif + break; #else case secure_protocol_tlsv1_1: logprintf (LOG_NOTQUIET, _("Your OpenSSL version is too old to support TLSv1.1\n")); @@ -271,6 +272,7 @@ ssl_init (void) case secure_protocol_tlsv1_2: logprintf (LOG_NOTQUIET, _("Your OpenSSL version is too old to support TLSv1.2\n")); goto error; + #endif default: @@ -294,10 +296,29 @@ ssl_init (void) #endif /* OpenSSL ciphers: https://www.openssl.org/docs/apps/ciphers.html - * Since we want a good protection, we also use HIGH (that excludes MD4 ciphers and some more) + * + * Rules: + * 1. --ciphers overrides everything + * 2. We allow RSA key exchange by default (secure_protocol_auto) + * 3. We disallow RSA key exchange if PFS was requested (secure_protocol_pfs) */ - if (opt.secure_protocol == secure_protocol_pfs) - SSL_CTX_set_cipher_list (ssl_ctx, "HIGH:MEDIUM:!RC4:!SRP:!PSK:!RSA:!aNULL@STRENGTH"); + if (!opt.tls_ciphers_string) + { + if (opt.secure_protocol == secure_protocol_auto) + ciphers_string = "HIGH:!aNULL:!RC4:!MD5:!SRP:!PSK"; + else if (opt.secure_protocol == secure_protocol_pfs) + ciphers_string = "HIGH:!aNULL:!RC4:!MD5:!SRP:!PSK:!kRSA"; + } + else + { + ciphers_string = opt.tls_ciphers_string; + } + + if (ciphers_string && !SSL_CTX_set_cipher_list(ssl_ctx, ciphers_string)) + { + logprintf(LOG_NOTQUIET, _("OpenSSL: Invalid cipher list: %s\n"), ciphers_string); + goto error; + } SSL_CTX_set_default_verify_paths (ssl_ctx); SSL_CTX_load_verify_locations (ssl_ctx, opt.ca_cert, opt.ca_directory); @@ -607,6 +628,15 @@ ssl_connect_wget (int fd, const char *hostname, int *continue_session) goto error; SSL_set_connect_state (conn); + /* Re-seed the PRNG before the SSL handshake */ + init_prng (); + if (RAND_status () != 1) + { + logprintf(LOG_NOTQUIET, + _("WARNING: Could not seed PRNG. Consider using --random-file.\n")); + goto error; + } + scwt_ctx.ssl = conn; if (run_with_timeout(opt.read_timeout, ssl_connect_with_timeout_callback, &scwt_ctx)) { diff --git a/src/options.h b/src/options.h index 2e8c874..cf4dec8 100644 --- a/src/options.h +++ b/src/options.h @@ -228,6 +228,7 @@ struct options secure_protocol_tlsv1, secure_protocol_tlsv1_1, secure_protocol_tlsv1_2, + secure_protocol_tlsv1_3, secure_protocol_pfs } secure_protocol; /* type of secure protocol to use. */ int check_cert; /* whether to validate the server's cert */ @@ -256,6 +257,8 @@ struct options bool ftps_fallback_to_ftp; bool ftps_implicit; bool ftps_clear_data_connection; + + char *tls_ciphers_string; #endif /* HAVE_SSL */ bool cookies; /* whether cookies are used. */ @@ -338,6 +341,9 @@ struct options bool hsts; char *hsts_file; #endif + + const char *homedir; /* the homedir of the running process */ + const char *wgetrcfile; /* the wgetrc file to be loaded */ }; extern struct options opt; diff --git a/src/recur.c b/src/recur.c index 1957f00..0a173dd 100644 --- a/src/recur.c +++ b/src/recur.c @@ -524,7 +524,10 @@ retrieve_tree (struct url *start_url_parsed, struct iri *pi) } if (rejectedlog) - fclose (rejectedlog); + { + fclose (rejectedlog); + rejectedlog = NULL; + } /* If anything is left of the queue due to a premature exit, free it now. */ @@ -84,7 +84,7 @@ as that of the covered work. */ #include "c-strcase.h" #ifdef TESTING -#include "test.h" +#include "../tests/unit-tests.h" #endif struct path_info { @@ -170,6 +170,8 @@ prune_non_exact (struct robot_specs *specs) for (i = 0, j = 0; i < specs->count; i++) if (specs->paths[i].user_agent_exact_p) newpaths[j++] = specs->paths[i]; + else + xfree (specs->paths[i].path); assert (j == cnt); xfree (specs->paths); specs->paths = newpaths; diff --git a/src/test.c b/src/test.c deleted file mode 100644 index 083ea0e..0000000 --- a/src/test.c +++ /dev/null @@ -1,111 +0,0 @@ -/* Unit testing. - Copyright (C) 2005-2011, 2015, 2018 Free Software Foundation, Inc. - -This file is part of GNU Wget. - -GNU Wget is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. - -GNU Wget is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Wget. If not, see <http://www.gnu.org/licenses/>. - -Additional permission under GNU GPL version 3 section 7 - -If you modify this program, or any covered work, by linking or -combining it with the OpenSSL project's OpenSSL library (or a -modified version of that library), containing parts covered by the -terms of the OpenSSL or SSLeay licenses, the Free Software Foundation -grants you additional permission to convey the resulting work. -Corresponding Source for a non-source form of such a combination -shall include the source code for the parts of OpenSSL used as well -as that of the covered work. */ - -#include "wget.h" - -#include <stdio.h> -#ifdef ENABLE_NLS -# include <locale.h> -#endif - -#include "test.h" - -#ifndef TESTING -#error "TESTING not set!!!" -#endif - -const char *program_argstring = "TEST"; - -static int tests_run; - -static const char * -all_tests(void) -{ -#ifdef HAVE_METALINK - mu_run_test (test_find_key_value); - mu_run_test (test_find_key_values); - mu_run_test (test_has_key); -#endif - mu_run_test (test_parse_content_disposition); - mu_run_test (test_parse_range_header); - mu_run_test (test_subdir_p); - mu_run_test (test_dir_matches_p); - mu_run_test (test_commands_sorted); - mu_run_test (test_cmd_spec_restrict_file_names); - mu_run_test (test_path_simplify); - mu_run_test (test_append_uri_pathel); - mu_run_test (test_are_urls_equal); - mu_run_test (test_is_robots_txt_url); -#ifdef HAVE_HSTS - mu_run_test (test_hsts_new_entry); - mu_run_test (test_hsts_url_rewrite_superdomain); - mu_run_test (test_hsts_url_rewrite_congruent); - mu_run_test (test_hsts_read_database); -#endif - - return NULL; -} - -const char *program_name; /* Needed by lib/error.c. */ - -int -main (int argc _GL_UNUSED, const char *argv[]) -{ - const char *result; - - printf ("[DEBUG] Testing...\n\n"); -#ifdef ENABLE_NLS - /* Set the current locale. */ - setlocale (LC_ALL, ""); - /* Set the text message domain. */ - bindtextdomain ("wget", LOCALEDIR); - textdomain ("wget"); -#endif /* ENABLE_NLS */ - - program_name = argv[0]; - - result = all_tests(); - - if (result != NULL) - { - puts (result); - } - else - { - printf ("ALL TESTS PASSED\n"); - } - - printf ("Tests run: %d\n", tests_run); - - return result != 0; -} - -/* - * vim: et ts=2 sw=2 - */ diff --git a/src/test.h b/src/test.h deleted file mode 100644 index 7455212..0000000 --- a/src/test.h +++ /dev/null @@ -1,68 +0,0 @@ -/* Unit testing declarations. - Copyright (C) 2005-2011, 2015, 2018 Free Software Foundation, Inc. - -This file is part of GNU Wget. - -GNU Wget is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. - -GNU Wget is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Wget. If not, see <http://www.gnu.org/licenses/>. - -Additional permission under GNU GPL version 3 section 7 - -If you modify this program, or any covered work, by linking or -combining it with the OpenSSL project's OpenSSL library (or a -modified version of that library), containing parts covered by the -terms of the OpenSSL or SSLeay licenses, the Free Software Foundation -grants you additional permission to convey the resulting work. -Corresponding Source for a non-source form of such a combination -shall include the source code for the parts of OpenSSL used as well -as that of the covered work. */ - -#ifndef TEST_H -#define TEST_H - -/* from MinUnit */ -#define mu_assert(message, test) do { if (!(test)) return message; } while (0) -#define mu_run_test(test) \ -do { \ - const char *message; \ - puts("RUNNING TEST " #test "..."); \ - message = test(); \ - tests_run++; \ - if (message) return message; \ - puts("PASSED\n"); \ -} while (0) - - -const char *test_has_key (void); -const char *test_find_key_value (void); -const char *test_find_key_values (void); -const char *test_parse_content_disposition(void); -const char *test_parse_range_header(void); -const char *test_commands_sorted(void); -const char *test_cmd_spec_restrict_file_names(void); -const char *test_is_robots_txt_url(void); -const char *test_path_simplify (void); -const char *test_append_uri_pathel(void); -const char *test_are_urls_equal(void); -const char *test_subdir_p(void); -const char *test_dir_matches_p(void); -const char *test_hsts_new_entry(void); -const char *test_hsts_url_rewrite_superdomain(void); -const char *test_hsts_url_rewrite_congruent(void); -const char *test_hsts_read_database(void); - -#endif /* TEST_H */ - -/* - * vim: et ts=2 sw=2 - */ @@ -51,7 +51,7 @@ as that of the covered work. */ #endif /* def __VMS */ #ifdef TESTING -#include "test.h" +#include "../tests/unit-tests.h" #endif enum { @@ -1551,13 +1551,13 @@ append_uri_pathel (const char *b, const char *e, bool escaped, static char * convert_fname (char *fname) { - char *converted_fname = fname; + char *converted_fname; const char *from_encoding = opt.encoding_remote; const char *to_encoding = opt.locale; iconv_t cd; size_t len, done, inlen, outlen; char *s; - const char *orig_fname = fname; + const char *orig_fname; /* Defaults for remote and local encodings. */ if (!from_encoding) @@ -1567,62 +1567,64 @@ convert_fname (char *fname) cd = iconv_open (to_encoding, from_encoding); if (cd == (iconv_t) (-1)) - logprintf (LOG_VERBOSE, _ ("Conversion from %s to %s isn't supported\n"), - quote (from_encoding), quote (to_encoding)); - else { - inlen = strlen (fname); - len = outlen = inlen * 2; - converted_fname = s = xmalloc (outlen + 1); - done = 0; + logprintf (LOG_VERBOSE, _ ("Conversion from %s to %s isn't supported\n"), + quote (from_encoding), quote (to_encoding)); + return fname; + } + + orig_fname = fname; + inlen = strlen (fname); + len = outlen = inlen * 2; + converted_fname = s = xmalloc (outlen + 1); + done = 0; - for (;;) + for (;;) + { + errno = 0; + if (iconv (cd, (ICONV_CONST char **) &fname, &inlen, &s, &outlen) == 0 + && iconv (cd, NULL, NULL, &s, &outlen) == 0) { - errno = 0; - if (iconv (cd, (ICONV_CONST char **) &fname, &inlen, &s, &outlen) == 0 - && iconv (cd, NULL, NULL, &s, &outlen) == 0) - { - *(converted_fname + len - outlen - done) = '\0'; - iconv_close (cd); - DEBUGP (("Converted file name '%s' (%s) -> '%s' (%s)\n", - orig_fname, from_encoding, converted_fname, to_encoding)); - xfree (orig_fname); - return converted_fname; - } + *(converted_fname + len - outlen - done) = '\0'; + iconv_close (cd); + DEBUGP (("Converted file name '%s' (%s) -> '%s' (%s)\n", + orig_fname, from_encoding, converted_fname, to_encoding)); + xfree (orig_fname); + return converted_fname; + } - /* Incomplete or invalid multibyte sequence */ - if (errno == EINVAL || errno == EILSEQ || errno == 0) - { - if (errno) - logprintf (LOG_VERBOSE, - _ ("Incomplete or invalid multibyte sequence encountered\n")); - else - logprintf (LOG_VERBOSE, - _ ("Unconvertable multibyte sequence encountered\n")); - xfree (converted_fname); - converted_fname = (char *) orig_fname; - break; - } - else if (errno == E2BIG) /* Output buffer full */ - { - done = len; - len = outlen = done + inlen * 2; - converted_fname = xrealloc (converted_fname, outlen + 1); - s = converted_fname + done; - } - else /* Weird, we got an unspecified error */ - { - logprintf (LOG_VERBOSE, _ ("Unhandled errno %d\n"), errno); - xfree (converted_fname); - converted_fname = (char *) orig_fname; - break; - } + /* Incomplete or invalid multibyte sequence */ + if (errno == EINVAL || errno == EILSEQ || errno == 0) + { + if (errno) + logprintf (LOG_VERBOSE, + _ ("Incomplete or invalid multibyte sequence encountered\n")); + else + logprintf (LOG_VERBOSE, + _ ("Unconvertable multibyte sequence encountered\n")); + xfree (converted_fname); + converted_fname = (char *) orig_fname; + break; + } + else if (errno == E2BIG) /* Output buffer full */ + { + done = len; + len = outlen = done + inlen * 2; + converted_fname = xrealloc (converted_fname, outlen + 1); + s = converted_fname + done; + } + else /* Weird, we got an unspecified error */ + { + logprintf (LOG_VERBOSE, _ ("Unhandled errno %d\n"), errno); + xfree (converted_fname); + converted_fname = (char *) orig_fname; + break; } - DEBUGP (("Failed to convert file name '%s' (%s) -> '?' (%s)\n", - orig_fname, from_encoding, to_encoding)); } + DEBUGP (("Failed to convert file name '%s' (%s) -> '?' (%s)\n", + orig_fname, from_encoding, to_encoding)); - iconv_close(cd); + iconv_close (cd); return converted_fname; } diff --git a/src/utils.c b/src/utils.c index 6f41fab..ec55f2e 100644 --- a/src/utils.c +++ b/src/utils.c @@ -103,7 +103,7 @@ as that of the covered work. */ #endif /* def __VMS */ #ifdef TESTING -#include "test.h" +#include "../tests/unit-tests.h" #endif #include "exits.h" @@ -469,7 +469,7 @@ fork_to_background (void) #else /* def __VMS */ #if !defined(WINDOWS) && !defined(MSDOS) -void +bool fork_to_background (void) { pid_t pid; @@ -514,6 +514,8 @@ fork_to_background (void) DEBUGP (("Failed to redirect stdout to /dev/null.\n")); if (freopen ("/dev/null", "w", stderr) == NULL) DEBUGP (("Failed to redirect stderr to /dev/null.\n")); + + return logfile_changed; } #endif /* !WINDOWS && !MSDOS */ @@ -527,40 +529,13 @@ fork_to_background (void) void touch (const char *file, time_t tm) { -#if HAVE_UTIME -# ifdef HAVE_STRUCT_UTIMBUF struct utimbuf times; -# else - struct { - time_t actime; - time_t modtime; - } times; -# endif + times.modtime = tm; times.actime = time (NULL); + if (utime (file, ×) == -1) logprintf (LOG_NOTQUIET, "utime(%s): %s\n", file, strerror (errno)); -#else - struct timespec timespecs[2]; - int fd; - - fd = open (file, O_WRONLY); - if (fd < 0) - { - logprintf (LOG_NOTQUIET, "open(%s): %s\n", file, strerror (errno)); - return; - } - - timespecs[0].tv_sec = time (NULL); - timespecs[0].tv_nsec = 0L; - timespecs[1].tv_sec = tm; - timespecs[1].tv_nsec = 0L; - - if (futimens (fd, timespecs) == -1) - logprintf (LOG_NOTQUIET, "futimens(%s): %s\n", file, strerror (errno)); - - close (fd); -#endif } /* Checks if FILE is a symbolic link, and removes it if it is. Does @@ -873,7 +848,12 @@ fopen_stat(const char *fname, const char *mode, file_stats_t *fstats) FILE *fp; struct stat fdstats; +#if defined FUZZING && defined TESTING + fp = fopen_wgetrc (fname, mode); + return fp; +#else fp = fopen (fname, mode); +#endif if (fp == NULL) { logprintf (LOG_NOTQUIET, _("Failed to Fopen file %s\n"), fname); @@ -1173,7 +1153,7 @@ accdir (const char *directory) bool match_tail (const char *string, const char *tail, bool fold_case) { - int pos = strlen (string) - strlen (tail); + int pos = (int) strlen (string) - (int) strlen (tail); if (pos < 0) return false; /* tail is longer than string. */ @@ -1299,6 +1279,7 @@ wget_read_file (const char *file) /* Some magic in the finest tradition of Perl and its kin: if FILE is "-", just use stdin. */ +#ifndef FUZZING if (HYPHENP (file)) { fd = fileno (stdin); @@ -1307,6 +1288,7 @@ wget_read_file (const char *file) redirected from a regular file, mmap() will still work. */ } else +#endif fd = open (file, O_RDONLY); if (fd < 0) return NULL; @@ -2466,6 +2448,11 @@ void * compile_posix_regex (const char *str) { regex_t *regex = xmalloc (sizeof (regex_t)); +#ifdef TESTING + /* regcomp might be *very* cpu+memory intensive, + * see https://sourceware.org/glibc/wiki/Security%20Exceptions */ + str = "a"; +#endif int errcode = regcomp ((regex_t *) regex, str, REG_EXTENDED | REG_NOSUB); if (errcode != 0) { diff --git a/src/utils.h b/src/utils.h index 66838f2..d55da2a 100644 --- a/src/utils.h +++ b/src/utils.h @@ -30,7 +30,8 @@ as that of the covered work. */ #ifndef UTILS_H #define UTILS_H -# include <stdlib.h> +#include <stdlib.h> +#include <wget.h> /* Constant is using when we don`t know attempted size exactly */ #define UNKNOWN_ATTEMPTED_SIZE -3 @@ -71,7 +72,7 @@ char *xstrdup_lower (const char *); char *strdupdelim (const char *, const char *); char **sepstring (const char *); bool subdir_p (const char *, const char *); -void fork_to_background (void); +bool fork_to_background (void); char *aprintf (const char *, ...) GCC_FORMAT_ATTR (1, 2); char *concat_strings (const char *, ...); @@ -1240,9 +1240,15 @@ warc_close (void) warc_write_metadata (); *warc_current_warcinfo_uuid_str = 0; fclose (warc_current_file); + warc_current_file = NULL; } + if (warc_current_cdx_file != NULL) - fclose (warc_current_cdx_file); + { + fclose (warc_current_cdx_file); + warc_current_cdx_file = NULL; + } + if (warc_log_fp != NULL) { fclose (warc_log_fp); @@ -393,4 +393,20 @@ typedef enum # define UNIQ_SEP '.' # endif /* ndef __VMS */ +#if defined FUZZING && defined TESTING +/* Rename fopen so we can have our own version in fuzz/main.c to + not create random files. */ +# define fopen(fp, mode) fopen_wget(fp, mode) +# define exit(status) exit_wget(status) + +/* In run_wgetrc() we call fopen_wgetrc() instead of fopen, so we can catch + the call in our fuzzers. */ +FILE *fopen_wget(const char *pathname, const char *mode); +FILE *fopen_wgetrc(const char *pathname, const char *mode); +void exit_wget(int status); +#else +/* When not fuzzing, we want to call fopen() instead of fopen_wgetrc() */ +# define fopen_wgetrc(fp, mode) fopen(fp, mode) +#endif /* FUZZING && TESTING */ + #endif /* WGET_H */ |