This patch will upgrade Sudo version 1.7.6 patchlevel 1 to Sudo version 1.7.6 patchlevel 2. To apply: $ cd sudo-1.7.6 $ patch -p1 < sudo-1.7.6p2.patch diff -urNa sudo-1.7.6p1/ChangeLog sudo-1.7.6p2/ChangeLog --- sudo-1.7.6p1/ChangeLog Fri Apr 15 21:54:04 2011 +++ sudo-1.7.6p2/ChangeLog Mon May 16 15:03:58 2011 @@ -1,8 +1,37 @@ +2011-04-29 Todd C. Miller + + * toke.c, toke.l: + Split ALL, ROLE and TYPE into their own actions. Since you can only + have #ifdefs inside of braces, ROLE and TYPE use a naughty goto in + the non-SELinux case. This is safe because the actions are in one + big switch() statement. + [19863b5cecde] [tip] <1.7> + + * toke.c, toke.l: + Fix regexp for matching a CIDR-style IPv4 netmask. From Marc Espie. + [cbf8c4ee2981] <1.7> + + * sudoers.pod: + Remove obsolete warning about runas_default and ordering. + [eff3ac4c594b] <1.7> + +2011-04-18 Todd C. Miller + + * configure, configure.in: + Need to do checks for krb5_verify_user, krb5_init_secure_context and + krb5_get_init_creds_opt_alloc regardless of whether or not + krb5-config is present. + [6ceda8c8c126] <1.7> + + * NEWS: + sudo 1.7.6p1 updates + [888e4e84b839] <1.7> + 2011-04-14 Todd C. Miller * sudo.pp: update copyright year - [edf691539a65] [tip] <1.7> + [edf691539a65] <1.7> * toke.c, toke.l: Treat a missing includedir like an empty one and do not return an diff -urNa sudo-1.7.6p1/NEWS sudo-1.7.6p2/NEWS --- sudo-1.7.6p1/NEWS Fri Apr 15 21:49:59 2011 +++ sudo-1.7.6p2/NEWS Mon May 16 15:00:18 2011 @@ -1,3 +1,10 @@ +What's new in Sudo 1.7.6p2 + + * Two-character CIDR-style IPv4 netmasks are now matched correctly + in the sudoers file. + + * A build error with MIT Kerberos V has been resolved. + What's new in Sudo 1.7.6p1 * A non-existent includedir is now treated the same as an empty diff -urNa sudo-1.7.6p1/configure sudo-1.7.6p2/configure --- sudo-1.7.6p1/configure Fri Apr 15 21:17:08 2011 +++ sudo-1.7.6p2/configure Mon May 16 13:38:16 2011 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.65 for sudo 1.7.6p1. +# Generated by GNU Autoconf 2.65 for sudo 1.7.6p2. # # Report bugs to . # @@ -701,8 +701,8 @@ # Identity of this package. PACKAGE_NAME='sudo' PACKAGE_TARNAME='sudo' -PACKAGE_VERSION='1.7.6p1' -PACKAGE_STRING='sudo 1.7.6p1' +PACKAGE_VERSION='1.7.6p2' +PACKAGE_STRING='sudo 1.7.6p2' PACKAGE_BUGREPORT='http://www.sudo.ws/bugs/' PACKAGE_URL='' @@ -1559,7 +1559,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sudo 1.7.6p1 to adapt to many kinds of systems. +\`configure' configures sudo 1.7.6p2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1624,7 +1624,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sudo 1.7.6p1:";; + short | recursive ) echo "Configuration of sudo 1.7.6p2:";; esac cat <<\_ACEOF @@ -1839,7 +1839,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sudo configure 1.7.6p1 +sudo configure 1.7.6p2 generated by GNU Autoconf 2.65 Copyright (C) 2009 Free Software Foundation, Inc. @@ -2538,7 +2538,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sudo $as_me 1.7.6p1, which was +It was created by sudo $as_me 1.7.6p2, which was generated by GNU Autoconf 2.65. Invocation command line was $ $0 $@ @@ -17298,17 +17298,15 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi -fi -if test ${with_kerb5-'no'} != "no" -a -z "$KRB5CONFIG"; then - $as_echo "#define HAVE_KERB5 1" >>confdefs.h + else + $as_echo "#define HAVE_KERB5 1" >>confdefs.h - if test "$with_kerb5" = "yes"; then - found=no - O_CPPFLAGS="$CPPFLAGS" - for dir in "" "kerberosV/" "krb5/" "kerberos5/" "kerberosv5/"; do - CPPFLAGS="$O_CPPFLAGS -I/usr/include/${dir}" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "$with_kerb5" = "yes"; then + found=no + O_CPPFLAGS="$CPPFLAGS" + for dir in "" "kerberosV/" "krb5/" "kerberos5/" "kerberosv5/"; do + CPPFLAGS="$O_CPPFLAGS -I/usr/include/${dir}" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF @@ -17316,13 +17314,13 @@ found=yes; break fi rm -f conftest.err conftest.$ac_ext - done - if test X"$found" = X"no"; then - CPPFLAGS="$O_CPPFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to locate Kerberos V include files, you will have to edit the Makefile and add -I/path/to/krb/includes to CPPFLAGS" >&5 + done + if test X"$found" = X"no"; then + CPPFLAGS="$O_CPPFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to locate Kerberos V include files, you will have to edit the Makefile and add -I/path/to/krb/includes to CPPFLAGS" >&5 $as_echo "$as_me: WARNING: Unable to locate Kerberos V include files, you will have to edit the Makefile and add -I/path/to/krb/includes to CPPFLAGS" >&2;} - fi - else + fi + else if test X"$with_rpath" = X"yes"; then case "$host" in @@ -17338,12 +17336,12 @@ blibpath_add="${blibpath_add}:${with_kerb5}/lib" fi - CPPFLAGS="$CPPFLAGS -I${with_kerb5}/include" - fi + CPPFLAGS="$CPPFLAGS -I${with_kerb5}/include" + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using Heimdal" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using Heimdal" >&5 $as_echo_n "checking whether we are using Heimdal... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int @@ -17356,13 +17354,13 @@ _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - $as_echo "#define HAVE_HEIMDAL 1" >>confdefs.h + $as_echo "#define HAVE_HEIMDAL 1" >>confdefs.h - # XXX - need to check whether -lcrypo is needed! - SUDO_LIBS="${SUDO_LIBS} -lkrb5 -lcrypto -ldes -lcom_err -lasn1" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lroken" >&5 + # XXX - need to check whether -lcrypo is needed! + SUDO_LIBS="${SUDO_LIBS} -lkrb5 -lcrypto -ldes -lcom_err -lasn1" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lroken" >&5 $as_echo_n "checking for main in -lroken... " >&6; } if test "${ac_cv_lib_roken_main+set}" = set; then : $as_echo_n "(cached) " >&6 @@ -17399,10 +17397,10 @@ else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - SUDO_LIBS="${SUDO_LIBS} -lkrb5 -lk5crypto -lcom_err" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lkrb5support" >&5 + SUDO_LIBS="${SUDO_LIBS} -lkrb5 -lk5crypto -lcom_err" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lkrb5support" >&5 $as_echo_n "checking for main in -lkrb5support... " >&6; } if test "${ac_cv_lib_krb5support_main+set}" = set; then : $as_echo_n "(cached) " >&6 @@ -17439,7 +17437,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - AUTH_OBJS="$AUTH_OBJS kerb5.o" + AUTH_OBJS="$AUTH_OBJS kerb5.o" + fi _LIBS="$LIBS" LIBS="${LIBS} ${SUDO_LIBS}" for ac_func in krb5_verify_user krb5_init_secure_context @@ -17498,7 +17497,7 @@ done if test X"$sudo_cv_krb5_get_init_creds_opt_free_two_args" = X"yes"; then - $as_echo "#define HAVE_KRB5_GET_INIT_CREDS_OPT_FREE_TWO_ARGS 1" >>confdefs.h + $as_echo "#define HAVE_KRB5_GET_INIT_CREDS_OPT_FREE_TWO_ARGS 1" >>confdefs.h fi LIBS="$_LIBS" @@ -19321,7 +19320,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sudo $as_me 1.7.6p1, which was +This file was extended by sudo $as_me 1.7.6p2, which was generated by GNU Autoconf 2.65. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19387,7 +19386,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -sudo config.status 1.7.6p1 +sudo config.status 1.7.6p2 configured by $0, generated by GNU Autoconf 2.65, with options \\"\$ac_cs_config\\" diff -urNa sudo-1.7.6p1/configure.in sudo-1.7.6p2/configure.in --- sudo-1.7.6p1/configure.in Fri Apr 15 21:17:01 2011 +++ sudo-1.7.6p2/configure.in Mon May 16 13:38:07 2011 @@ -3,7 +3,7 @@ dnl dnl Copyright (c) 1994-1996,1998-2011 Todd C. Miller dnl -AC_INIT([sudo], [1.7.6p1], [http://www.sudo.ws/bugs/], [sudo]) +AC_INIT([sudo], [1.7.6p2], [http://www.sudo.ws/bugs/], [sudo]) AC_CONFIG_HEADER(config.h pathnames.h zlib/zconf.h) dnl dnl Note: this must come after AC_INIT @@ -2390,46 +2390,45 @@ AC_MSG_RESULT(no) ] ) - fi -fi -if test ${with_kerb5-'no'} != "no" -a -z "$KRB5CONFIG"; then - AC_DEFINE(HAVE_KERB5) - dnl - dnl Use the specified directory, if any, else search for correct inc dir - dnl - if test "$with_kerb5" = "yes"; then - found=no - O_CPPFLAGS="$CPPFLAGS" - for dir in "" "kerberosV/" "krb5/" "kerberos5/" "kerberosv5/"; do - CPPFLAGS="$O_CPPFLAGS -I/usr/include/${dir}" - AC_PREPROC_IFELSE([#include ], [found=yes; break]) - done - if test X"$found" = X"no"; then - CPPFLAGS="$O_CPPFLAGS" - AC_MSG_WARN([Unable to locate Kerberos V include files, you will have to edit the Makefile and add -I/path/to/krb/includes to CPPFLAGS]) - fi else - dnl XXX - try to include krb5.h here too - SUDO_APPEND_LIBPATH(SUDO_LDFLAGS, [${with_kerb5}/lib]) - CPPFLAGS="$CPPFLAGS -I${with_kerb5}/include" - fi + AC_DEFINE(HAVE_KERB5) + dnl + dnl Use the specified directory, if any, else search for correct inc dir + dnl + if test "$with_kerb5" = "yes"; then + found=no + O_CPPFLAGS="$CPPFLAGS" + for dir in "" "kerberosV/" "krb5/" "kerberos5/" "kerberosv5/"; do + CPPFLAGS="$O_CPPFLAGS -I/usr/include/${dir}" + AC_PREPROC_IFELSE([#include ], [found=yes; break]) + done + if test X"$found" = X"no"; then + CPPFLAGS="$O_CPPFLAGS" + AC_MSG_WARN([Unable to locate Kerberos V include files, you will have to edit the Makefile and add -I/path/to/krb/includes to CPPFLAGS]) + fi + else + dnl XXX - try to include krb5.h here too + SUDO_APPEND_LIBPATH(SUDO_LDFLAGS, [${with_kerb5}/lib]) + CPPFLAGS="$CPPFLAGS -I${with_kerb5}/include" + fi - dnl - dnl Try to determine whether we have Heimdal or MIT Kerberos - dnl - AC_MSG_CHECKING(whether we are using Heimdal) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[const char *tmp = heimdal_version;]])], [ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_HEIMDAL) - # XXX - need to check whether -lcrypo is needed! - SUDO_LIBS="${SUDO_LIBS} -lkrb5 -lcrypto -ldes -lcom_err -lasn1" - AC_CHECK_LIB(roken, main, [SUDO_LIBS="${SUDO_LIBS} -lroken"]) - ], [ - AC_MSG_RESULT(no) - SUDO_LIBS="${SUDO_LIBS} -lkrb5 -lk5crypto -lcom_err" - AC_CHECK_LIB(krb5support, main, [SUDO_LIBS="${SUDO_LIBS} -lkrb5support"]) - ]) - AUTH_OBJS="$AUTH_OBJS kerb5.o" + dnl + dnl Try to determine whether we have Heimdal or MIT Kerberos + dnl + AC_MSG_CHECKING(whether we are using Heimdal) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[const char *tmp = heimdal_version;]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_HEIMDAL) + # XXX - need to check whether -lcrypo is needed! + SUDO_LIBS="${SUDO_LIBS} -lkrb5 -lcrypto -ldes -lcom_err -lasn1" + AC_CHECK_LIB(roken, main, [SUDO_LIBS="${SUDO_LIBS} -lroken"]) + ], [ + AC_MSG_RESULT(no) + SUDO_LIBS="${SUDO_LIBS} -lkrb5 -lk5crypto -lcom_err" + AC_CHECK_LIB(krb5support, main, [SUDO_LIBS="${SUDO_LIBS} -lkrb5support"]) + ]) + AUTH_OBJS="$AUTH_OBJS kerb5.o" + fi _LIBS="$LIBS" LIBS="${LIBS} ${SUDO_LIBS}" AC_CHECK_FUNCS(krb5_verify_user krb5_init_secure_context) @@ -2440,7 +2439,7 @@ [AC_LANG_PROGRAM( [[#include ]], [[krb5_get_init_creds_opt_free(NULL, NULL);]] - )], + )], [sudo_cv_krb5_get_init_creds_opt_free_two_args=yes], [sudo_cv_krb5_get_init_creds_opt_free_two_args=no] ) @@ -2448,7 +2447,7 @@ ) ]) if test X"$sudo_cv_krb5_get_init_creds_opt_free_two_args" = X"yes"; then - AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_FREE_TWO_ARGS) + AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_FREE_TWO_ARGS) fi LIBS="$_LIBS" fi diff -urNa sudo-1.7.6p1/sudoers.pod sudo-1.7.6p2/sudoers.pod --- sudo-1.7.6p1/sudoers.pod Tue Apr 5 09:17:55 2011 +++ sudo-1.7.6p2/sudoers.pod Fri Apr 29 11:24:42 2011 @@ -1133,19 +1133,22 @@ The default user to run commands as if the B<-u> option is not specified on the command line. This defaults to C<@runas_default@>. -Note that if I is set it B occur before -any C specifications. =item syslog_badpri Syslog priority to use when user authenticates unsuccessfully. Defaults to C<@badpri@>. +The following syslog priorities are supported: B, B, +B, B, B, B, B, and B. + =item syslog_goodpri Syslog priority to use when user authenticates successfully. Defaults to C<@goodpri@>. +See L for the list of supported syslog priorities. + =item sudoers_locale Locale to use when parsing the sudoers file, logging commands, and @@ -1305,6 +1308,10 @@ Syslog facility if syslog is being used for logging (negate to disable syslog logging). Defaults to C<@logfac@>. +The following syslog facilities are supported: B (if your +OS supports it), B, B, B, B, B, +B, B, B, B, B, and B. + =item verifypw This option controls when a password will be required when a user runs @@ -1382,14 +1389,6 @@ is displayed when B is run by root with the I<-V> option. =back - -When logging via L, B accepts the following values -for the syslog facility (the value of the B Parameter): -B (if your OS supports it), B, B, B, -B, B, B, B, B, B, -B, and B. The following syslog priorities are -supported: B, B, B, B, B, B, -B, and B. =head1 FILES diff -urNa sudo-1.7.6p1/toke.c sudo-1.7.6p2/toke.c --- sudo-1.7.6p1/toke.c Thu Apr 14 15:09:33 2011 +++ sudo-1.7.6p2/toke.c Fri Apr 29 16:07:18 2011 @@ -289,76 +289,77 @@ *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 56 -#define YY_END_OF_BUFFER 57 -static yyconst short int yy_accept[599] = +#define YY_NUM_RULES 59 +#define YY_END_OF_BUFFER 60 +static yyconst short int yy_accept[607] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 57, 44, 52, 51, 50, 43, 55, 32, - 45, 46, 32, 47, 44, 44, 44, 44, 49, 48, - 55, 39, 39, 39, 39, 39, 39, 39, 55, 44, - 44, 52, 55, 39, 39, 39, 39, 39, 2, 55, - 1, 44, 44, 17, 16, 17, 16, 16, 55, 55, - 55, 3, 9, 8, 9, 4, 9, 5, 55, 13, - 13, 13, 11, 12, 44, 0, 52, 50, 0, 54, - 0, 44, 34, 0, 32, 0, 33, 0, 42, 42, - 0, 44, 44, 0, 44, 44, 44, 44, 0, 37, + 0, 0, 60, 47, 55, 54, 53, 46, 58, 32, + 48, 49, 32, 50, 47, 47, 47, 47, 52, 51, + 58, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 58, 47, 47, 55, 58, 42, 42, 42, 42, + 42, 2, 58, 1, 47, 47, 17, 16, 17, 16, + 16, 58, 58, 58, 3, 9, 8, 9, 4, 9, + 5, 58, 13, 13, 13, 11, 12, 47, 0, 55, + 53, 0, 57, 0, 47, 34, 0, 32, 0, 33, + 0, 45, 45, 0, 47, 47, 0, 47, 47, 47, - 39, 39, 39, 39, 39, 39, 39, 44, 53, 44, - 52, 0, 0, 0, 0, 0, 0, 44, 44, 44, - 44, 44, 2, 1, 0, 1, 40, 40, 0, 44, - 17, 17, 15, 14, 15, 0, 0, 3, 9, 0, - 6, 7, 9, 9, 13, 0, 13, 13, 0, 10, - 0, 0, 0, 34, 34, 0, 0, 44, 44, 44, - 44, 44, 0, 0, 37, 37, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 44, 0, 0, 0, 0, - 0, 0, 44, 44, 44, 44, 44, 0, 44, 10, - 0, 44, 44, 44, 44, 44, 44, 0, 38, 38, + 47, 0, 37, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 47, 56, 47, 55, 0, 0, 0, + 0, 0, 0, 47, 47, 47, 47, 47, 2, 1, + 0, 1, 43, 43, 0, 47, 17, 17, 15, 14, + 15, 0, 0, 3, 9, 0, 6, 7, 9, 9, + 13, 0, 13, 13, 0, 10, 0, 0, 0, 34, + 34, 0, 0, 47, 47, 47, 47, 47, 0, 0, + 37, 37, 42, 39, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 47, 0, 0, 0, 0, 0, + 0, 47, 47, 47, 47, 47, 0, 47, 10, 0, - 38, 0, 0, 37, 37, 37, 37, 37, 37, 37, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 44, - 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, - 44, 44, 44, 0, 0, 38, 38, 38, 0, 37, - 37, 0, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 0, 25, 39, 39, 39, 39, 39, - 39, 39, 39, 44, 0, 0, 0, 0, 44, 44, - 44, 44, 44, 44, 44, 44, 0, 38, 0, 37, - 37, 37, 0, 0, 0, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 39, 39, + 47, 47, 47, 47, 47, 47, 0, 38, 38, 38, + 0, 0, 37, 37, 37, 37, 37, 37, 37, 42, + 42, 42, 42, 42, 42, 42, 42, 40, 42, 41, + 47, 0, 0, 0, 0, 0, 0, 47, 47, 47, + 47, 47, 47, 47, 0, 0, 38, 38, 38, 0, + 37, 37, 0, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 0, 25, 42, 42, 42, 42, + 42, 42, 42, 42, 47, 0, 0, 0, 0, 47, + 47, 47, 47, 47, 47, 47, 47, 0, 38, 0, + 37, 37, 37, 0, 0, 0, 37, 37, 37, 37, - 39, 39, 39, 39, 39, 39, 44, 0, 0, 0, - 44, 44, 44, 35, 35, 35, 0, 0, 37, 37, - 37, 37, 37, 37, 37, 0, 0, 0, 0, 0, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 39, 39, 0, 24, 39, 39, - 39, 39, 0, 23, 0, 26, 44, 0, 0, 0, - 44, 44, 44, 44, 35, 35, 35, 35, 0, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 42, + 42, 42, 42, 42, 42, 42, 42, 47, 0, 0, + 0, 47, 47, 47, 35, 35, 35, 0, 0, 37, + 37, 37, 37, 37, 37, 37, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 0, 0, 0, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 39, 39, + 37, 37, 37, 37, 37, 42, 42, 0, 24, 42, + 42, 42, 42, 0, 23, 0, 26, 47, 0, 0, + 0, 47, 47, 47, 47, 35, 35, 35, 35, 0, + 37, 0, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 0, 0, 0, 37, 37, 37, 37, - 39, 39, 39, 39, 41, 0, 0, 0, 44, 20, - 40, 44, 36, 36, 36, 37, 0, 0, 0, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 42, + 42, 42, 42, 42, 42, 44, 0, 0, 0, 47, + 20, 43, 36, 36, 36, 36, 37, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 0, 0, 0, 0, 0, 37, 37, 37, - 37, 37, 37, 37, 37, 39, 39, 39, 39, 0, - 22, 0, 27, 0, 20, 0, 0, 44, 0, 44, - 44, 44, 36, 36, 36, 36, 36, 0, 0, 0, + 37, 37, 37, 0, 0, 0, 0, 0, 37, 37, + 37, 37, 37, 37, 37, 37, 42, 42, 42, 42, + 0, 22, 0, 27, 0, 20, 0, 0, 47, 0, + 47, 47, 47, 36, 36, 36, 36, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 0, 30, 39, 39, 39, 0, 0, 0, - 21, 20, 0, 0, 0, 0, 0, 20, 0, 44, - 44, 44, 36, 36, 0, 0, 0, 37, 37, 37, + 37, 37, 0, 30, 42, 42, 42, 0, 0, 0, + 21, 20, 0, 0, 0, 0, 0, 20, 0, 47, + 47, 47, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 0, 28, 39, 39, 21, - 0, 18, 0, 0, 20, 44, 44, 44, 44, 44, - 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, - 37, 37, 37, 0, 31, 39, 0, 44, 44, 44, - 37, 37, 37, 37, 37, 37, 0, 29, 0, 44, - 44, 44, 44, 44, 37, 37, 37, 37, 37, 0, - 19, 35, 35, 35, 35, 35, 35, 0 + 37, 37, 37, 0, 28, 42, 42, 21, 0, 18, + 0, 0, 20, 47, 47, 47, 47, 47, 0, 0, + 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, + 37, 0, 31, 42, 0, 47, 47, 47, 37, 37, + 37, 37, 37, 37, 0, 29, 0, 47, 47, 47, + 47, 47, 37, 37, 37, 37, 37, 0, 19, 35, + 35, 35, 35, 35, 35, 0 } ; static yyconst int yy_ec[256] = @@ -371,12 +372,12 @@ 19, 20, 21, 22, 22, 22, 23, 24, 1, 1, 25, 26, 10, 27, 28, 29, 30, 31, 32, 29, 33, 34, 35, 36, 36, 37, 36, 38, 39, 40, - 36, 41, 42, 43, 44, 45, 46, 47, 36, 36, - 10, 48, 10, 1, 49, 1, 50, 51, 52, 53, + 36, 41, 42, 43, 44, 45, 46, 47, 48, 36, + 10, 49, 10, 1, 50, 1, 51, 52, 53, 54, - 54, 55, 56, 56, 57, 56, 56, 58, 59, 60, - 61, 56, 56, 62, 63, 64, 65, 56, 56, 56, - 56, 56, 1, 1, 1, 1, 1, 1, 1, 1, + 55, 56, 57, 57, 58, 57, 57, 59, 60, 61, + 62, 57, 57, 63, 64, 65, 66, 57, 57, 57, + 57, 57, 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, @@ -393,587 +394,587 @@ 1, 1, 1, 1, 1 } ; -static yyconst int yy_meta[66] = +static yyconst int yy_meta[67] = { 0, 1, 2, 3, 4, 5, 6, 1, 7, 7, 1, 1, 8, 1, 9, 10, 11, 11, 11, 11, 11, 11, 11, 11, 12, 13, 7, 1, 11, 11, 11, 11, 11, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 14, 15, 16, - 16, 16, 16, 16, 16, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15 + 1, 1, 1, 1, 1, 1, 1, 1, 14, 15, + 16, 16, 16, 16, 16, 16, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15 } ; -static yyconst short int yy_base[663] = +static yyconst short int yy_base[671] = { 0, - 0, 64, 65, 66, 85, 100, 147, 211, 275, 322, - 71, 111, 2613, 2557, 2602, 3671, 2599, 3671, 368, 87, - 3671, 3671, 2554, 3671, 113, 378, 124, 146, 2577, 3671, - 3671, 433, 2553, 483, 2560, 2551, 2555, 2550, 537, 154, - 21, 150, 561, 2522, 2526, 2482, 2477, 2478, 80, 203, - 2529, 288, 31, 0, 3671, 2516, 3671, 0, 305, 616, - 81, 0, 2469, 3671, 75, 3671, 82, 3671, 124, 2468, - 83, 86, 3671, 152, 2467, 638, 2512, 2509, 2509, 3671, - 211, 219, 289, 230, 130, 336, 2447, 663, 294, 2437, - 688, 356, 699, 2458, 2467, 395, 500, 169, 2456, 145, + 0, 65, 67, 72, 99, 114, 162, 227, 292, 340, + 86, 125, 2840, 2790, 2836, 3665, 2833, 3665, 387, 70, + 3665, 3665, 2771, 3665, 136, 397, 133, 159, 2795, 3665, + 3665, 453, 2781, 33, 504, 2770, 2767, 2777, 2765, 2771, + 2754, 559, 170, 19, 165, 583, 38, 49, 2739, 68, + 2727, 81, 219, 2771, 305, 48, 0, 3665, 2761, 3665, + 0, 250, 639, 119, 0, 2709, 3665, 108, 3665, 112, + 3665, 140, 2699, 98, 121, 3665, 195, 2693, 661, 2739, + 2736, 2736, 3665, 227, 247, 300, 316, 152, 354, 2681, + 686, 373, 2670, 711, 352, 722, 2692, 2669, 375, 414, - 739, 0, 2439, 2428, 314, 2408, 2396, 135, 3671, 236, - 524, 2379, 2383, 2375, 2370, 2352, 96, 72, 230, 242, - 197, 256, 180, 2409, 569, 2408, 567, 2356, 793, 253, - 0, 2399, 252, 3671, 3671, 578, 280, 0, 2354, 433, - 3671, 3671, 2353, 316, 2352, 2394, 310, 312, 319, 2393, - 2388, 2377, 586, 604, 357, 699, 545, 806, 841, 876, - 911, 2339, 2328, 951, 328, 992, 1032, 2317, 2291, 2292, - 2299, 2294, 2289, 2275, 2268, 307, 2239, 2243, 2225, 2217, - 2220, 328, 371, 2220, 301, 208, 131, 649, 321, 2240, - 2222, 661, 318, 1074, 1109, 511, 335, 2183, 2158, 716, + 302, 2656, 57, 763, 0, 2628, 2625, 2614, 505, 2602, + 2606, 2599, 2601, 202, 3665, 153, 546, 2572, 2565, 2549, + 2537, 2524, 200, 110, 244, 28, 111, 252, 171, 2578, + 422, 2577, 565, 2529, 818, 262, 0, 2573, 179, 3665, + 3665, 599, 269, 0, 2513, 453, 3665, 3665, 2512, 548, + 2490, 2533, 206, 253, 323, 2535, 2524, 2513, 607, 615, + 306, 722, 586, 831, 867, 903, 939, 2499, 2456, 980, + 333, 1022, 1063, 0, 2430, 2394, 2363, 2364, 2374, 2369, + 2327, 2330, 2329, 2328, 266, 2289, 2283, 2272, 2274, 2279, + 409, 334, 2279, 145, 335, 83, 672, 278, 2327, 2325, - 404, 2148, 2145, 412, 725, 1144, 756, 764, 1185, 790, - 2138, 401, 402, 2118, 2116, 2106, 2103, 2069, 2075, 496, - 2008, 2004, 1989, 2002, 1974, 553, 460, 593, 504, 512, - 1227, 1262, 1297, 2011, 1990, 814, 1990, 1967, 1964, 1963, - 630, 823, 642, 849, 671, 1332, 0, 859, 1343, 884, - 831, 1384, 894, 628, 3671, 1948, 1941, 1924, 1900, 1871, - 1859, 1843, 1823, 500, 1803, 1786, 1757, 611, 600, 309, - 657, 928, 752, 1426, 1461, 938, 1795, 1794, 1793, 1791, - 1494, 772, 971, 1011, 1051, 867, 1042, 1065, 1082, 1092, - 1536, 0, 1094, 1547, 1117, 902, 1588, 1127, 1759, 1755, + 627, 259, 1106, 1142, 741, 210, 2293, 2279, 683, 513, + 2275, 2271, 352, 747, 1178, 780, 788, 1220, 815, 2270, + 400, 325, 2261, 2258, 2248, 2246, 2242, 0, 2240, 0, + 489, 2223, 2213, 2198, 2211, 2198, 420, 407, 529, 490, + 491, 1263, 1299, 1335, 2235, 2234, 839, 2234, 2232, 2228, + 2226, 528, 848, 657, 856, 665, 1371, 0, 877, 1382, + 886, 894, 1424, 913, 570, 3665, 2208, 2197, 2198, 2177, + 2184, 2193, 2190, 2169, 558, 2145, 2098, 2099, 648, 626, + 530, 559, 923, 336, 1467, 1503, 964, 2138, 2137, 2108, + 2086, 1537, 551, 1000, 1041, 1082, 653, 694, 797, 1049, - 629, 577, 1751, 1738, 762, 885, 878, 1719, 1686, 607, - 601, 889, 969, 1629, 1663, 1697, 1719, 1718, 1717, 1161, - 1732, 1169, 979, 1772, 1204, 1235, 1725, 1245, 1272, 1282, - 1127, 1195, 1218, 1307, 1307, 1318, 1814, 0, 1320, 1825, - 1360, 1019, 1866, 1403, 1666, 1669, 936, 3671, 1670, 1662, - 1643, 1627, 1017, 3671, 1057, 3671, 1105, 1613, 1606, 456, - 1212, 643, 1106, 1437, 773, 1907, 1941, 1370, 1645, 1630, - 1445, 1263, 1470, 1283, 1976, 0, 676, 1987, 1478, 1411, - 2027, 1513, 1566, 1607, 1639, 1426, 1504, 1649, 1651, 1671, - 1681, 2069, 0, 1683, 2080, 1705, 1486, 1715, 1594, 1589, + 923, 1580, 0, 1116, 1591, 1090, 1008, 1633, 1125, 2069, + 2065, 747, 686, 2046, 2005, 786, 926, 905, 2014, 1982, + 679, 634, 544, 915, 1675, 1710, 1745, 2015, 1978, 1962, + 1150, 1781, 1158, 1133, 1822, 1197, 1166, 1954, 1239, 1273, + 1207, 950, 951, 962, 991, 1247, 1073, 1865, 0, 1283, + 1876, 1307, 1315, 1918, 1323, 1923, 1923, 1188, 3665, 1924, + 1898, 1893, 1873, 1286, 3665, 1336, 3665, 707, 1790, 1783, + 786, 930, 764, 1298, 1358, 1041, 1960, 1995, 1400, 1823, + 1799, 1348, 708, 1406, 1348, 2031, 0, 559, 2042, 1441, + 1449, 2083, 1477, 1487, 1513, 1523, 1230, 1290, 1458, 1548, - 1591, 1547, 1169, 1210, 1525, 1463, 1445, 883, 715, 1866, - 1424, 2122, 2157, 2192, 2227, 1446, 1751, 1791, 1844, 1445, - 1567, 1608, 1883, 1716, 2262, 0, 792, 2273, 1915, 1521, - 2313, 1925, 1949, 1438, 1959, 2006, 2046, 1652, 1742, 2090, - 963, 1061, 2355, 0, 1055, 1368, 1325, 1299, 1272, 1409, - 3671, 1449, 3671, 1256, 1568, 2104, 336, 1321, 1773, 1867, - 2104, 970, 2365, 2400, 2435, 2470, 1256, 2052, 1197, 2137, - 2167, 2147, 1128, 1100, 1792, 1926, 2175, 1960, 2505, 0, - 1097, 2516, 2200, 1891, 2556, 2210, 2236, 2245, 2291, 1835, - 1106, 1141, 1519, 3671, 1572, 1074, 1014, 825, 881, 288, + 1557, 1602, 2126, 0, 1613, 2137, 1650, 1565, 1660, 1765, + 1763, 1680, 1675, 1359, 1406, 1626, 1601, 1577, 897, 938, + 1695, 1589, 2180, 2216, 2252, 2288, 1611, 1686, 1720, 1731, + 1563, 1478, 1504, 1694, 1524, 2324, 0, 617, 2335, 1753, + 1761, 2376, 1769, 1798, 1550, 1808, 1841, 1851, 1335, 1358, + 1887, 714, 825, 2419, 0, 926, 1407, 1508, 1506, 1471, + 1547, 3665, 1616, 3665, 1423, 1731, 1907, 1512, 1575, 1910, + 1915, 1935, 1498, 2429, 2465, 1971, 1611, 1977, 1457, 2005, + 2015, 1987, 1408, 1254, 1732, 1782, 2059, 1842, 2501, 0, + 1025, 2512, 2067, 2100, 2553, 2108, 2155, 2164, 2189, 1769, - 833, 2028, 2267, 2314, 2344, 2338, 2381, 2392, 2400, 2598, - 2633, 2668, 2411, 1935, 2446, 2456, 2480, 832, 829, 1988, - 2007, 2488, 2104, 2703, 0, 1206, 2714, 2533, 2183, 2575, - 801, 2542, 2607, 2426, 788, 1591, 3671, 1611, 683, 3671, - 699, 3671, 1228, 2615, 2641, 2649, 1257, 2756, 2791, 2659, - 2682, 656, 2692, 2733, 2766, 589, 549, 2123, 510, 428, - 2774, 0, 1286, 1612, 3671, 1756, 2114, 2826, 2861, 2896, - 2799, 2807, 2815, 399, 0, 280, 1757, 3671, 215, 2837, - 1620, 2931, 2966, 2847, 3671, 2870, 2880, 2218, 3671, 155, - 3671, 2907, 2915, 2948, 53, 2981, 2741, 3671, 3029, 3045, + 1207, 1189, 1634, 3665, 1699, 1162, 1113, 1074, 1118, 384, + 1040, 2211, 2218, 2238, 2243, 2263, 2288, 2249, 2307, 2596, + 2632, 2668, 2304, 2354, 2395, 1025, 1006, 1889, 2016, 2362, + 2043, 2704, 0, 1224, 2715, 2403, 2437, 2445, 992, 2454, + 2474, 2483, 903, 1921, 3665, 1941, 839, 3665, 843, 3665, + 1306, 2489, 2529, 2537, 1911, 2758, 2794, 2573, 2579, 811, + 2607, 2617, 2642, 640, 629, 2109, 535, 447, 2650, 0, + 1428, 1942, 3665, 2044, 2216, 2830, 2866, 2902, 2676, 2684, + 2692, 337, 0, 333, 2067, 3665, 327, 2733, 1912, 2938, + 2974, 2743, 3665, 2767, 2777, 2658, 3665, 166, 3665, 2805, - 3061, 3077, 3093, 3109, 3125, 3141, 3157, 3163, 3179, 3195, - 1394, 3211, 3227, 3243, 3259, 3275, 3291, 3307, 3313, 3320, - 3336, 3352, 3358, 3365, 3371, 3377, 3383, 3390, 3396, 3402, - 3408, 3415, 3423, 3429, 3435, 3441, 3448, 3456, 3462, 3468, - 3475, 3483, 3489, 3497, 3504, 3512, 3518, 3526, 3533, 3541, - 3557, 3573, 3579, 3587, 3594, 3610, 3616, 3624, 3630, 3638, - 1460, 3654 + 2813, 2847, 63, 2855, 2881, 3665, 3023, 3039, 3055, 3071, + 3087, 3103, 3119, 3135, 3151, 3157, 3173, 3189, 1498, 3205, + 3221, 3237, 3253, 3269, 3285, 3301, 3307, 3314, 3330, 3346, + 3352, 3359, 3365, 3371, 3377, 3384, 3390, 3396, 3402, 3409, + 3417, 3423, 3429, 3435, 3442, 3450, 3456, 3462, 3469, 3477, + 3483, 3491, 3498, 3506, 3512, 3520, 3527, 3535, 3551, 3567, + 3573, 3581, 3588, 3604, 3610, 3618, 3624, 3632, 1295, 3648 } ; -static yyconst short int yy_def[663] = +static yyconst short int yy_def[671] = { 0, - 598, 1, 1, 1, 599, 599, 600, 600, 601, 601, - 602, 602, 598, 603, 598, 598, 598, 598, 604, 605, - 598, 598, 606, 598, 607, 603, 26, 26, 608, 598, - 598, 598, 32, 32, 34, 34, 34, 34, 603, 26, - 603, 598, 604, 32, 32, 34, 34, 34, 598, 598, - 598, 609, 603, 610, 598, 610, 598, 610, 598, 604, - 598, 611, 612, 598, 612, 598, 612, 598, 613, 614, - 614, 614, 598, 598, 603, 603, 598, 598, 615, 598, - 616, 598, 605, 598, 617, 605, 606, 606, 607, 618, - 603, 603, 26, 608, 93, 93, 93, 93, 619, 620, + 606, 1, 1, 1, 607, 607, 608, 608, 609, 609, + 610, 610, 606, 611, 606, 606, 606, 606, 612, 613, + 606, 606, 614, 606, 615, 611, 26, 26, 616, 606, + 606, 606, 32, 32, 32, 35, 35, 35, 35, 35, + 35, 611, 26, 611, 606, 612, 32, 32, 35, 35, + 35, 606, 606, 606, 617, 611, 618, 606, 618, 606, + 618, 606, 612, 606, 619, 620, 606, 620, 606, 620, + 606, 621, 622, 622, 622, 606, 606, 611, 611, 606, + 606, 623, 606, 624, 606, 613, 606, 625, 613, 614, + 614, 615, 626, 611, 611, 26, 616, 96, 96, 96, - 32, 34, 34, 34, 34, 34, 34, 603, 598, 603, - 598, 598, 598, 598, 598, 598, 615, 603, 93, 603, - 603, 603, 598, 598, 598, 598, 609, 621, 603, 603, - 610, 610, 598, 598, 598, 616, 598, 611, 612, 612, - 598, 598, 612, 612, 614, 598, 614, 614, 598, 598, - 615, 622, 598, 598, 617, 617, 598, 603, 603, 603, - 93, 161, 623, 598, 624, 598, 32, 34, 34, 34, - 34, 34, 34, 34, 34, 603, 598, 598, 598, 598, - 598, 615, 603, 161, 603, 603, 603, 598, 603, 598, - 622, 603, 603, 603, 603, 603, 603, 625, 626, 626, + 96, 627, 628, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 611, 606, 611, 606, 606, 606, 606, + 606, 606, 623, 611, 96, 611, 611, 611, 606, 606, + 606, 606, 617, 629, 611, 611, 618, 618, 606, 606, + 606, 624, 606, 619, 620, 620, 606, 606, 620, 620, + 622, 606, 622, 622, 606, 606, 623, 630, 606, 606, + 625, 625, 606, 611, 611, 611, 96, 167, 631, 606, + 632, 606, 104, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 611, 606, 606, 606, 606, 606, + 623, 611, 167, 611, 611, 611, 606, 611, 606, 630, - 200, 627, 626, 628, 166, 598, 206, 206, 598, 206, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 603, - 598, 598, 598, 598, 598, 615, 603, 603, 603, 603, - 603, 603, 603, 598, 629, 629, 236, 629, 630, 631, - 632, 598, 633, 209, 633, 633, 246, 633, 598, 249, - 249, 598, 249, 598, 598, 34, 34, 34, 34, 34, - 34, 34, 34, 603, 598, 598, 598, 615, 603, 603, - 603, 603, 603, 603, 603, 603, 634, 634, 635, 636, - 598, 598, 598, 598, 598, 637, 637, 638, 252, 638, - 638, 291, 638, 598, 294, 294, 598, 294, 34, 34, + 611, 611, 611, 611, 611, 611, 633, 634, 634, 209, + 635, 634, 636, 172, 606, 215, 215, 606, 215, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 611, 606, 606, 606, 606, 606, 623, 611, 611, 611, + 611, 611, 611, 611, 606, 637, 637, 247, 637, 638, + 639, 640, 606, 641, 218, 641, 641, 257, 641, 606, + 260, 260, 606, 260, 606, 606, 35, 35, 35, 35, + 35, 35, 35, 35, 611, 606, 606, 606, 623, 611, + 611, 611, 611, 611, 611, 611, 611, 642, 642, 643, + 644, 606, 606, 606, 606, 606, 645, 645, 646, 263, - 34, 34, 34, 34, 34, 34, 603, 598, 598, 615, - 603, 603, 603, 603, 603, 603, 598, 639, 640, 281, - 598, 321, 321, 598, 321, 598, 598, 598, 598, 598, - 598, 641, 641, 642, 297, 642, 642, 337, 642, 598, - 340, 340, 598, 340, 34, 34, 598, 598, 34, 34, - 34, 34, 598, 598, 598, 598, 603, 598, 598, 615, - 603, 603, 603, 603, 603, 603, 603, 603, 598, 643, - 598, 644, 324, 644, 644, 375, 375, 598, 378, 378, - 598, 378, 598, 598, 598, 598, 645, 645, 646, 343, - 646, 646, 392, 646, 598, 395, 395, 395, 34, 34, + 646, 646, 302, 646, 606, 305, 305, 606, 305, 35, + 35, 35, 35, 35, 35, 35, 35, 611, 606, 606, + 623, 611, 611, 611, 611, 611, 611, 606, 647, 648, + 292, 606, 332, 332, 606, 332, 606, 606, 606, 606, + 606, 606, 649, 649, 650, 308, 650, 650, 348, 650, + 606, 351, 351, 606, 351, 35, 35, 606, 606, 35, + 35, 35, 35, 606, 606, 606, 606, 611, 606, 606, + 623, 611, 611, 611, 611, 611, 611, 611, 611, 606, + 651, 606, 652, 335, 652, 652, 386, 386, 606, 389, + 389, 606, 389, 606, 606, 606, 606, 653, 653, 654, - 34, 34, 34, 34, 603, 598, 598, 615, 603, 603, - 603, 603, 603, 603, 603, 598, 598, 598, 598, 647, - 647, 648, 381, 648, 648, 425, 425, 598, 428, 428, - 598, 428, 598, 598, 598, 598, 598, 598, 649, 649, - 650, 650, 650, 443, 443, 34, 34, 34, 34, 598, - 598, 598, 598, 598, 598, 615, 615, 603, 651, 652, - 603, 603, 603, 603, 603, 603, 603, 598, 598, 598, - 598, 598, 598, 653, 653, 654, 431, 654, 654, 479, - 479, 598, 482, 482, 598, 482, 598, 598, 598, 598, - 655, 655, 598, 598, 34, 34, 34, 598, 656, 615, + 354, 654, 654, 403, 654, 606, 406, 406, 406, 35, + 35, 35, 35, 35, 35, 611, 606, 606, 623, 611, + 611, 611, 611, 611, 611, 611, 606, 606, 606, 606, + 655, 655, 656, 392, 656, 656, 436, 436, 606, 439, + 439, 606, 439, 606, 606, 606, 606, 606, 606, 657, + 657, 658, 658, 658, 454, 454, 35, 35, 35, 35, + 606, 606, 606, 606, 606, 606, 623, 623, 611, 659, + 660, 611, 611, 611, 611, 611, 611, 606, 606, 606, + 606, 606, 606, 661, 661, 662, 442, 662, 662, 489, + 489, 606, 492, 492, 606, 492, 606, 606, 606, 606, - 603, 651, 651, 651, 651, 598, 651, 652, 652, 603, - 603, 603, 603, 603, 598, 598, 598, 598, 657, 657, - 658, 485, 658, 658, 524, 524, 598, 527, 527, 527, - 598, 598, 598, 598, 598, 598, 598, 34, 34, 598, - 656, 598, 615, 598, 598, 603, 603, 603, 603, 603, - 598, 598, 598, 598, 598, 598, 659, 659, 660, 660, - 660, 561, 561, 598, 598, 34, 615, 603, 603, 603, - 598, 598, 598, 598, 661, 661, 598, 598, 662, 603, - 603, 603, 603, 603, 598, 598, 598, 598, 598, 662, - 598, 603, 603, 603, 603, 603, 603, 0, 598, 598, + 663, 663, 606, 606, 35, 35, 35, 606, 664, 623, + 611, 659, 659, 659, 659, 606, 659, 660, 660, 611, + 611, 611, 606, 606, 606, 606, 665, 665, 666, 495, + 666, 666, 532, 532, 606, 535, 535, 535, 606, 606, + 606, 606, 606, 606, 606, 35, 35, 606, 664, 606, + 623, 606, 606, 611, 611, 611, 611, 611, 606, 606, + 606, 606, 606, 606, 667, 667, 668, 668, 668, 569, + 569, 606, 606, 35, 623, 611, 611, 611, 606, 606, + 606, 606, 669, 669, 606, 606, 670, 611, 611, 611, + 611, 611, 606, 606, 606, 606, 606, 670, 606, 611, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598 + 611, 611, 611, 611, 611, 0, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606 } ; -static yyconst short int yy_nxt[3737] = +static yyconst short int yy_nxt[3732] = { 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 14, 23, 24, 14, 14, 25, 26, 27, 28, 26, 26, - 26, 26, 26, 29, 30, 31, 14, 32, 32, 32, - 32, 33, 34, 34, 34, 34, 35, 36, 34, 37, - 34, 38, 34, 34, 34, 34, 34, 39, 14, 40, - 40, 40, 40, 40, 40, 14, 14, 14, 14, 14, - 14, 14, 41, 14, 14, 42, 49, 49, 76, 43, - 50, 50, 71, 16, 72, 73, 51, 51, 76, 52, - 52, 123, 137, 109, 147, 110, 15, 55, 56, 148, - 57, 124, 84, 44, 45, 130, 57, 46, 80, 141, + 26, 26, 26, 29, 30, 31, 14, 32, 33, 33, + 33, 34, 35, 35, 35, 35, 36, 37, 35, 38, + 39, 40, 41, 35, 35, 35, 35, 35, 42, 14, + 43, 43, 43, 43, 43, 43, 14, 14, 14, 14, + 14, 14, 14, 44, 14, 14, 45, 79, 52, 105, + 46, 170, 53, 52, 105, 87, 79, 53, 54, 107, + 172, 55, 129, 54, 116, 105, 55, 74, 16, 75, + 76, 194, 130, 88, 47, 48, 79, 124, 49, 153, - 76, 15, 55, 56, 47, 57, 142, 48, 57, 58, - 85, 57, 71, 16, 72, 73, 90, 90, 74, 76, - 90, 90, 140, 57, 58, 144, 109, 53, 53, 140, - 146, 183, 59, 146, 86, 84, 137, 109, 90, 96, - 96, 96, 96, 96, 96, 96, 96, 59, 15, 16, - 17, 111, 60, 149, 150, 182, 145, 591, 74, 164, - 91, 97, 97, 97, 97, 97, 98, 75, 166, 95, - 95, 95, 95, 95, 95, 95, 95, 156, 76, 112, - 113, 123, 76, 114, 162, 162, 162, 162, 162, 162, - 115, 124, 227, 116, 61, 62, 62, 62, 62, 62, + 15, 58, 59, 125, 60, 50, 111, 35, 51, 35, + 60, 79, 35, 136, 35, 15, 58, 59, 89, 60, + 143, 115, 60, 61, 154, 60, 74, 16, 75, 76, + 56, 79, 147, 127, 77, 56, 148, 60, 61, 93, + 93, 150, 115, 93, 93, 238, 152, 62, 99, 99, + 99, 99, 99, 99, 99, 99, 146, 87, 79, 79, + 146, 93, 62, 15, 16, 17, 117, 63, 599, 152, + 192, 195, 129, 77, 100, 100, 100, 100, 100, 101, + 143, 115, 130, 78, 94, 98, 98, 98, 98, 98, + 98, 98, 98, 79, 118, 119, 155, 156, 120, 151, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 15, 16, 17, 125, 60, 591, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 153, 75, 76, 154, 154, 154, 154, 154, - 154, 154, 154, 137, 109, 76, 186, 229, 61, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 15, 16, 17, 64, - 60, 137, 109, 76, 184, 65, 66, 67, 176, 76, - 80, 128, 128, 371, 598, 128, 128, 90, 90, 68, + 162, 79, 83, 143, 115, 121, 185, 153, 122, 238, + 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 15, 16, + 17, 131, 63, 97, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 79, 139, 115, 140, 152, 141, 154, 78, 79, 140, + 191, 141, 85, 85, 85, 85, 85, 85, 85, 85, + 143, 115, 201, 141, 141, 64, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 15, 16, 17, 67, 63, 141, 193, - 76, 90, 90, 76, 185, 189, 133, 109, 134, 187, - 135, 147, 598, 128, 134, 148, 135, 137, 109, 90, - 149, 150, 69, 15, 16, 17, 64, 60, 135, 135, - 80, 192, 65, 66, 67, 129, 86, 83, 80, 83, - 83, 91, 164, 83, 83, 170, 68, 83, 76, 543, - 171, 205, 135, 172, 76, 173, 76, 146, 94, 146, - 83, 83, 598, 140, 227, 76, 312, 220, 76, 69, - 80, 158, 159, 160, 158, 158, 158, 158, 158, 226, - 81, 230, 76, 82, 82, 82, 82, 82, 82, 82, - 82, 92, 500, 93, 93, 93, 93, 93, 93, 93, + 79, 152, 68, 69, 70, 606, 196, 79, 134, 134, + 79, 606, 134, 134, 79, 198, 71, 168, 168, 168, + 168, 168, 168, 606, 155, 156, 79, 231, 159, 599, + 134, 160, 160, 160, 160, 160, 160, 160, 160, 241, + 72, 15, 16, 17, 67, 63, 382, 170, 89, 283, + 68, 69, 70, 135, 162, 86, 214, 86, 86, 267, + 530, 86, 86, 268, 71, 86, 170, 164, 165, 166, + 164, 164, 164, 164, 164, 214, 93, 93, 86, 86, + 93, 93, 79, 79, 79, 240, 83, 238, 72, 83, + 168, 168, 168, 168, 168, 168, 168, 168, 93, 84, - 93, 94, 254, 76, 156, 95, 95, 95, 95, 95, - 162, 162, 162, 162, 162, 162, 162, 162, 76, 238, - 238, 238, 522, 227, 255, 76, 164, 95, 95, 95, - 95, 95, 95, 75, 139, 205, 256, 139, 139, 75, - 257, 598, 75, 75, 139, 75, 75, 75, 101, 101, - 101, 101, 101, 101, 101, 101, 94, 139, 80, 75, - 101, 101, 101, 101, 101, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 76, 102, 95, 95, 95, 95, 95, 95, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 102, 102, + 79, 265, 85, 85, 85, 85, 85, 85, 85, 85, + 95, 83, 96, 96, 96, 96, 96, 96, 96, 96, + 97, 94, 83, 266, 98, 98, 98, 98, 98, 168, + 168, 168, 168, 168, 168, 168, 168, 85, 85, 85, + 85, 85, 85, 85, 85, 79, 551, 98, 98, 98, + 98, 98, 98, 78, 145, 79, 280, 145, 145, 78, + 606, 237, 78, 78, 145, 78, 78, 78, 104, 104, + 104, 104, 104, 104, 104, 104, 97, 145, 279, 78, + 104, 104, 104, 104, 104, 105, 105, 105, 105, 106, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 102, 102, 102, 102, 102, 102, 598, 76, 269, 408, - 102, 102, 102, 102, 102, 162, 162, 162, 162, 162, - 162, 162, 162, 371, 192, 111, 193, 193, 193, 193, - 193, 193, 75, 75, 75, 75, 75, 75, 108, 109, - 75, 75, 75, 76, 75, 75, 90, 76, 75, 264, - 90, 76, 307, 112, 113, 80, 90, 114, 76, 76, - 75, 75, 75, 80, 115, 271, 227, 116, 90, 90, - 128, 128, 522, 81, 128, 128, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 128, 598, 598, 598, 598, 598, 598, 598, + 105, 79, 105, 98, 98, 98, 98, 98, 98, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 105, + 105, 105, 105, 105, 105, 105, 105, 606, 249, 249, + 249, 105, 105, 105, 105, 105, 177, 79, 79, 79, + 105, 178, 170, 275, 179, 282, 180, 117, 382, 143, + 115, 214, 97, 238, 78, 78, 78, 78, 78, 78, + 114, 115, 78, 78, 78, 170, 78, 78, 134, 134, + 78, 265, 134, 134, 214, 118, 119, 79, 79, 120, + 431, 431, 78, 78, 78, 83, 121, 93, 323, 122, + 134, 93, 79, 266, 281, 84, 146, 93, 85, 85, - 598, 154, 154, 154, 154, 154, 154, 154, 154, 80, - 268, 349, 477, 80, 129, 350, 94, 117, 80, 154, - 154, 154, 154, 154, 154, 154, 154, 311, 136, 254, - 347, 598, 598, 598, 598, 598, 598, 598, 598, 75, - 76, 75, 75, 75, 164, 75, 75, 76, 76, 75, - 128, 255, 348, 205, 128, 242, 164, 270, 361, 360, - 128, 75, 75, 75, 87, 244, 87, 87, 87, 551, - 87, 87, 128, 128, 87, 310, 231, 232, 233, 231, - 231, 231, 231, 231, 598, 164, 87, 87, 87, 89, - 76, 75, 75, 89, 244, 75, 75, 420, 420, 89, + 85, 85, 85, 85, 85, 85, 79, 79, 373, 93, + 93, 318, 324, 135, 606, 606, 606, 606, 606, 606, + 606, 606, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 484, 484, + 123, 83, 242, 243, 244, 242, 242, 242, 242, 242, + 83, 142, 530, 322, 606, 606, 606, 606, 606, 606, + 606, 606, 78, 487, 78, 78, 78, 170, 78, 78, + 253, 170, 78, 134, 79, 79, 255, 134, 606, 170, + 255, 83, 79, 134, 78, 78, 78, 90, 255, 90, + 90, 90, 372, 90, 90, 134, 134, 90, 247, 247, - 155, 542, 155, 155, 76, 410, 155, 155, 76, 313, - 155, 89, 89, 75, 161, 161, 161, 161, 161, 161, - 161, 161, 155, 155, 155, 566, 161, 161, 161, 161, - 161, 236, 236, 237, 238, 238, 238, 238, 238, 202, - 210, 210, 210, 210, 210, 210, 210, 210, 161, 161, - 161, 161, 161, 161, 167, 167, 167, 167, 167, 167, - 167, 167, 76, 353, 458, 272, 167, 167, 167, 167, - 167, 246, 246, 246, 246, 246, 246, 246, 246, 247, - 247, 247, 247, 247, 248, 354, 164, 364, 161, 161, - 161, 161, 161, 161, 127, 205, 75, 75, 127, 76, + 248, 249, 249, 249, 249, 249, 211, 253, 170, 90, + 90, 90, 92, 321, 78, 78, 92, 255, 78, 78, + 360, 382, 92, 161, 361, 161, 161, 253, 170, 161, + 161, 384, 371, 161, 92, 92, 78, 167, 167, 167, + 167, 167, 167, 167, 167, 161, 161, 161, 358, 167, + 167, 167, 167, 167, 201, 79, 202, 202, 202, 202, + 202, 202, 219, 219, 219, 219, 219, 219, 219, 219, + 359, 416, 167, 167, 167, 167, 167, 167, 173, 173, + 173, 173, 173, 173, 173, 173, 97, 364, 83, 79, + 173, 173, 173, 173, 173, 257, 257, 257, 257, 257, - 75, 75, 164, 598, 127, 245, 245, 245, 245, 245, - 245, 245, 245, 474, 474, 164, 127, 127, 75, 192, - 76, 193, 193, 193, 193, 193, 193, 193, 193, 278, - 278, 278, 278, 278, 278, 278, 278, 202, 283, 284, - 285, 283, 283, 283, 283, 283, 292, 292, 292, 292, - 292, 293, 477, 76, 192, 423, 194, 194, 194, 194, - 194, 194, 194, 194, 253, 253, 253, 253, 253, 253, - 253, 253, 242, 164, 287, 287, 287, 287, 287, 287, - 76, 164, 244, 542, 456, 80, 355, 540, 76, 192, - 244, 195, 195, 195, 195, 195, 196, 193, 193, 291, + 257, 257, 257, 258, 258, 258, 258, 258, 259, 365, + 253, 170, 79, 167, 167, 167, 167, 167, 167, 133, + 300, 78, 78, 133, 559, 78, 78, 421, 606, 133, + 256, 256, 256, 256, 256, 256, 256, 256, 606, 170, + 419, 133, 133, 78, 201, 550, 202, 202, 202, 202, + 202, 202, 202, 202, 289, 289, 289, 289, 289, 289, + 289, 289, 211, 294, 295, 296, 294, 294, 294, 294, + 294, 264, 264, 264, 264, 264, 264, 264, 264, 79, + 201, 574, 203, 203, 203, 203, 203, 203, 203, 203, + 253, 170, 298, 298, 298, 298, 298, 298, 467, 83, - 291, 291, 291, 291, 291, 291, 291, 598, 356, 290, - 290, 290, 290, 290, 290, 290, 290, 338, 338, 338, - 338, 338, 339, 76, 75, 76, 197, 197, 197, 197, - 197, 197, 197, 197, 357, 457, 76, 347, 197, 197, - 197, 197, 197, 314, 315, 316, 314, 314, 314, 314, - 314, 272, 362, 273, 273, 273, 273, 273, 273, 348, - 197, 197, 197, 197, 197, 197, 199, 200, 201, 201, - 201, 201, 201, 201, 202, 76, 242, 164, 203, 203, - 203, 203, 203, 461, 326, 76, 327, 327, 327, 327, - 327, 327, 327, 327, 376, 376, 376, 376, 376, 377, + 255, 302, 302, 302, 302, 302, 302, 302, 302, 303, + 303, 303, 303, 303, 304, 79, 201, 170, 204, 204, + 204, 204, 204, 205, 202, 202, 606, 366, 301, 301, + 301, 301, 301, 301, 301, 301, 606, 170, 325, 326, + 327, 325, 325, 325, 325, 325, 300, 501, 501, 367, + 468, 79, 78, 79, 206, 206, 206, 206, 206, 206, + 206, 206, 368, 79, 170, 170, 206, 206, 206, 206, + 206, 79, 374, 255, 300, 253, 170, 283, 79, 284, + 284, 284, 284, 284, 284, 300, 79, 420, 469, 206, + 206, 206, 206, 206, 206, 208, 209, 210, 210, 210, - 203, 203, 203, 203, 203, 203, 164, 206, 207, 208, - 206, 206, 206, 206, 206, 209, 76, 76, 353, 210, - 210, 210, 210, 210, 326, 363, 328, 328, 328, 328, - 328, 328, 328, 328, 393, 393, 393, 393, 393, 394, - 354, 210, 210, 210, 210, 210, 210, 211, 211, 211, - 211, 211, 211, 211, 211, 242, 164, 539, 355, 211, - 211, 211, 211, 211, 326, 244, 329, 329, 329, 329, - 329, 330, 327, 327, 598, 164, 491, 491, 242, 164, - 356, 197, 197, 197, 197, 197, 197, 192, 289, 193, - 193, 193, 193, 193, 193, 193, 193, 298, 298, 298, + 210, 210, 210, 211, 253, 170, 170, 212, 212, 212, + 212, 212, 79, 337, 346, 338, 338, 338, 338, 338, + 338, 338, 338, 349, 349, 349, 349, 349, 350, 487, + 212, 212, 212, 212, 212, 212, 170, 215, 216, 217, + 215, 215, 215, 215, 215, 218, 527, 527, 434, 219, + 219, 219, 219, 219, 337, 375, 339, 339, 339, 339, + 339, 339, 339, 339, 309, 309, 309, 309, 309, 309, + 309, 309, 219, 219, 219, 219, 219, 219, 220, 220, + 220, 220, 220, 220, 220, 220, 606, 170, 79, 79, + 220, 220, 220, 220, 220, 337, 346, 340, 340, 340, - 298, 298, 298, 298, 298, 598, 164, 242, 164, 333, - 333, 333, 333, 333, 333, 289, 538, 289, 519, 519, - 164, 76, 192, 423, 193, 193, 193, 193, 193, 193, - 193, 193, 337, 337, 337, 337, 337, 337, 337, 337, - 598, 164, 336, 336, 336, 336, 336, 336, 336, 336, - 244, 373, 76, 76, 242, 164, 76, 242, 164, 243, - 243, 243, 243, 243, 243, 243, 243, 244, 405, 411, - 450, 245, 245, 245, 245, 245, 325, 325, 325, 325, - 325, 325, 325, 325, 375, 375, 375, 375, 375, 375, - 375, 375, 451, 245, 245, 245, 245, 245, 245, 164, + 340, 340, 341, 338, 338, 348, 348, 348, 348, 348, + 348, 348, 348, 206, 206, 206, 206, 206, 206, 201, + 550, 202, 202, 202, 202, 202, 202, 202, 202, 253, + 170, 344, 344, 344, 344, 344, 344, 548, 606, 300, + 347, 347, 347, 347, 347, 347, 347, 347, 387, 387, + 387, 387, 387, 388, 79, 201, 547, 202, 202, 202, + 202, 202, 202, 202, 202, 336, 336, 336, 336, 336, + 336, 336, 336, 386, 386, 386, 386, 386, 386, 386, + 386, 394, 395, 396, 394, 394, 394, 394, 394, 358, + 79, 253, 170, 254, 254, 254, 254, 254, 254, 254, - 249, 250, 251, 249, 249, 249, 249, 249, 252, 164, - 468, 452, 253, 253, 253, 253, 253, 598, 289, 374, - 374, 374, 374, 374, 374, 374, 374, 557, 557, 567, - 80, 242, 164, 453, 253, 253, 253, 253, 253, 253, - 272, 289, 273, 273, 273, 273, 273, 273, 273, 273, - 383, 384, 385, 383, 383, 383, 383, 383, 326, 76, - 327, 327, 327, 327, 327, 327, 327, 327, 409, 461, - 546, 514, 514, 514, 76, 272, 371, 274, 274, 274, - 274, 274, 274, 274, 274, 326, 373, 327, 327, 327, - 327, 327, 327, 327, 327, 326, 598, 327, 327, 327, + 254, 255, 253, 170, 546, 256, 256, 256, 256, 256, + 606, 359, 385, 385, 385, 385, 385, 385, 385, 385, + 337, 170, 338, 338, 338, 338, 338, 338, 256, 256, + 256, 256, 256, 256, 170, 260, 261, 262, 260, 260, + 260, 260, 260, 263, 170, 565, 565, 264, 264, 264, + 264, 264, 337, 300, 338, 338, 338, 338, 338, 338, + 338, 338, 355, 355, 355, 355, 355, 355, 355, 355, + 264, 264, 264, 264, 264, 264, 283, 434, 284, 284, + 284, 284, 284, 284, 284, 284, 337, 364, 338, 338, + 338, 338, 338, 338, 338, 338, 253, 170, 399, 399, - 327, 327, 327, 76, 76, 498, 373, 575, 575, 76, - 272, 497, 275, 275, 275, 275, 275, 276, 273, 273, - 242, 164, 344, 344, 344, 344, 344, 344, 344, 344, - 335, 598, 164, 242, 164, 388, 388, 388, 388, 388, - 388, 335, 496, 335, 76, 242, 164, 287, 287, 287, - 287, 287, 287, 287, 287, 244, 242, 164, 288, 288, - 288, 288, 288, 288, 288, 288, 289, 495, 76, 493, - 290, 290, 290, 290, 290, 392, 392, 392, 392, 392, - 392, 392, 392, 501, 364, 365, 365, 365, 365, 365, - 365, 494, 290, 290, 290, 290, 290, 290, 164, 294, + 399, 399, 399, 399, 170, 597, 346, 575, 83, 365, + 597, 79, 283, 346, 285, 285, 285, 285, 285, 285, + 285, 285, 403, 403, 403, 403, 403, 403, 403, 403, + 404, 404, 404, 404, 404, 405, 606, 366, 402, 402, + 402, 402, 402, 402, 402, 402, 79, 79, 283, 170, + 286, 286, 286, 286, 286, 287, 284, 284, 346, 367, + 461, 606, 422, 428, 429, 430, 428, 428, 428, 428, + 428, 384, 170, 423, 424, 425, 426, 423, 423, 423, + 423, 401, 462, 79, 253, 170, 298, 298, 298, 298, + 298, 298, 298, 298, 255, 253, 170, 299, 299, 299, - 295, 296, 294, 294, 294, 294, 294, 297, 138, 138, - 450, 298, 298, 298, 298, 298, 598, 76, 391, 391, - 391, 391, 391, 391, 391, 391, 426, 426, 426, 426, - 426, 427, 451, 298, 298, 298, 298, 298, 298, 272, - 164, 273, 273, 273, 273, 273, 273, 273, 273, 289, - 452, 433, 412, 413, 414, 415, 412, 412, 412, 412, - 417, 418, 419, 417, 417, 417, 417, 417, 373, 320, - 589, 76, 453, 76, 272, 589, 273, 273, 273, 273, - 273, 273, 273, 273, 76, 382, 382, 382, 382, 382, - 382, 382, 382, 425, 425, 425, 425, 425, 425, 425, + 299, 299, 299, 299, 299, 300, 79, 463, 503, 301, + 301, 301, 301, 301, 375, 376, 376, 376, 376, 376, + 376, 393, 393, 393, 393, 393, 393, 393, 393, 464, + 504, 384, 301, 301, 301, 301, 301, 301, 170, 305, + 306, 307, 305, 305, 305, 305, 305, 308, 79, 583, + 583, 309, 309, 309, 309, 309, 436, 436, 436, 436, + 436, 436, 436, 436, 437, 437, 437, 437, 437, 438, + 478, 253, 170, 508, 309, 309, 309, 309, 309, 309, + 283, 346, 284, 284, 284, 284, 284, 284, 284, 284, + 606, 382, 435, 435, 435, 435, 435, 435, 435, 435, - 425, 444, 444, 444, 444, 444, 445, 455, 76, 321, - 322, 323, 321, 321, 321, 321, 321, 324, 164, 454, - 493, 325, 325, 325, 325, 325, 598, 335, 424, 424, - 424, 424, 424, 424, 424, 424, 480, 480, 480, 480, - 480, 481, 494, 325, 325, 325, 325, 325, 325, 242, - 164, 333, 333, 333, 333, 333, 333, 333, 333, 289, - 242, 164, 334, 334, 334, 334, 334, 334, 334, 334, - 335, 459, 76, 536, 336, 336, 336, 336, 336, 433, - 371, 434, 434, 434, 434, 434, 434, 434, 434, 449, - 373, 459, 536, 459, 459, 537, 336, 336, 336, 336, + 444, 384, 445, 445, 445, 445, 445, 445, 445, 445, + 507, 472, 144, 144, 83, 79, 283, 382, 284, 284, + 284, 284, 284, 284, 284, 284, 444, 434, 446, 446, + 446, 446, 446, 446, 446, 446, 444, 606, 447, 447, + 447, 447, 447, 448, 445, 445, 79, 434, 461, 506, + 505, 79, 332, 333, 334, 332, 332, 332, 332, 332, + 335, 253, 170, 444, 336, 336, 336, 336, 336, 510, + 462, 401, 409, 409, 409, 409, 409, 409, 409, 409, + 455, 455, 455, 455, 455, 456, 384, 336, 336, 336, + 336, 336, 336, 253, 170, 344, 344, 344, 344, 344, - 336, 336, 164, 340, 341, 342, 340, 340, 340, 340, - 340, 343, 564, 564, 537, 344, 344, 344, 344, 344, - 433, 371, 435, 435, 435, 435, 435, 435, 435, 435, - 448, 423, 447, 580, 565, 565, 446, 344, 344, 344, - 344, 344, 344, 364, 365, 365, 365, 365, 365, 365, - 365, 365, 433, 320, 436, 436, 436, 436, 436, 437, - 434, 434, 242, 164, 242, 164, 164, 76, 240, 407, - 406, 404, 335, 403, 390, 335, 76, 364, 366, 366, - 366, 366, 366, 366, 366, 366, 398, 398, 398, 398, - 398, 398, 398, 398, 598, 164, 242, 164, 440, 440, + 344, 344, 344, 300, 253, 170, 345, 345, 345, 345, + 345, 345, 345, 345, 346, 606, 170, 463, 347, 347, + 347, 347, 347, 79, 472, 401, 253, 170, 451, 451, + 451, 451, 451, 451, 331, 503, 401, 79, 511, 464, + 466, 347, 347, 347, 347, 347, 347, 170, 351, 352, + 353, 351, 351, 351, 351, 351, 354, 504, 465, 79, + 355, 355, 355, 355, 355, 454, 454, 454, 454, 454, + 454, 454, 454, 606, 79, 453, 453, 453, 453, 453, + 453, 453, 453, 355, 355, 355, 355, 355, 355, 375, + 376, 376, 376, 376, 376, 376, 376, 376, 470, 478, - 440, 440, 440, 440, 390, 402, 390, 401, 400, 399, - 76, 364, 367, 367, 367, 367, 367, 368, 365, 365, - 443, 443, 443, 443, 443, 443, 443, 443, 598, 598, - 442, 442, 442, 442, 442, 442, 442, 442, 326, 423, - 320, 240, 202, 359, 76, 371, 358, 372, 372, 372, - 372, 372, 372, 372, 372, 373, 164, 577, 577, 374, - 374, 374, 374, 374, 468, 390, 469, 469, 469, 469, - 469, 469, 469, 469, 503, 352, 504, 505, 506, 578, - 578, 374, 374, 374, 374, 374, 374, 378, 379, 380, - 378, 378, 378, 378, 378, 381, 351, 346, 345, 382, + 544, 479, 479, 479, 479, 479, 479, 479, 479, 443, + 443, 443, 443, 443, 443, 443, 443, 460, 470, 459, + 470, 471, 545, 79, 375, 377, 377, 377, 377, 377, + 377, 377, 377, 478, 470, 480, 480, 480, 480, 480, + 480, 480, 480, 79, 478, 382, 481, 481, 481, 481, + 481, 482, 479, 479, 470, 434, 470, 470, 79, 375, + 378, 378, 378, 378, 378, 379, 376, 376, 489, 489, + 489, 489, 489, 489, 489, 489, 490, 490, 490, 490, + 490, 491, 606, 170, 488, 488, 488, 488, 488, 488, + 488, 488, 401, 79, 382, 382, 383, 383, 383, 383, - 382, 382, 382, 382, 468, 371, 470, 470, 470, 470, - 470, 470, 470, 470, 320, 423, 240, 202, 202, 265, - 507, 382, 382, 382, 382, 382, 382, 242, 164, 388, - 388, 388, 388, 388, 388, 388, 388, 335, 242, 164, - 389, 389, 389, 389, 389, 389, 389, 389, 390, 164, - 309, 308, 391, 391, 391, 391, 391, 468, 390, 471, - 471, 471, 471, 471, 472, 469, 469, 306, 503, 459, - 504, 505, 506, 305, 391, 391, 391, 391, 391, 391, - 164, 395, 396, 397, 395, 395, 395, 395, 395, 459, - 304, 459, 460, 398, 398, 398, 398, 398, 432, 432, + 383, 383, 383, 383, 384, 487, 458, 457, 385, 385, + 385, 385, 385, 497, 498, 499, 497, 497, 497, 497, + 497, 444, 331, 445, 445, 445, 445, 445, 445, 445, + 445, 385, 385, 385, 385, 385, 385, 389, 390, 391, + 389, 389, 389, 389, 389, 392, 251, 418, 417, 393, + 393, 393, 393, 393, 444, 606, 445, 445, 445, 445, + 445, 445, 445, 445, 444, 487, 445, 445, 445, 445, + 445, 445, 393, 393, 393, 393, 393, 393, 253, 170, + 399, 399, 399, 399, 399, 399, 399, 399, 346, 253, + 170, 400, 400, 400, 400, 400, 400, 400, 400, 401, - 432, 432, 432, 432, 432, 432, 525, 525, 525, 525, - 525, 526, 303, 76, 509, 398, 398, 398, 398, 398, - 398, 364, 365, 365, 365, 365, 365, 365, 365, 365, - 479, 479, 479, 479, 479, 479, 479, 479, 598, 371, - 478, 478, 478, 478, 478, 478, 478, 478, 302, 477, - 514, 514, 514, 301, 76, 364, 365, 365, 365, 365, - 365, 365, 365, 365, 487, 488, 489, 487, 487, 487, - 487, 487, 433, 598, 434, 434, 434, 434, 434, 434, - 434, 434, 76, 477, 300, 299, 281, 240, 76, 371, - 202, 421, 421, 421, 421, 421, 421, 421, 421, 373, + 253, 170, 382, 402, 402, 402, 402, 402, 467, 83, + 401, 513, 487, 514, 515, 516, 513, 415, 514, 515, + 516, 509, 544, 414, 554, 588, 402, 402, 402, 402, + 402, 402, 170, 406, 407, 408, 406, 406, 406, 406, + 406, 413, 572, 572, 545, 409, 409, 409, 409, 409, + 520, 521, 522, 520, 520, 520, 520, 520, 517, 79, + 79, 412, 411, 519, 573, 573, 410, 337, 409, 409, + 409, 409, 409, 409, 375, 376, 376, 376, 376, 376, + 376, 376, 376, 79, 472, 331, 473, 473, 473, 473, + 473, 473, 523, 524, 525, 523, 523, 523, 523, 523, - 371, 371, 422, 422, 422, 422, 422, 422, 422, 422, - 423, 477, 277, 202, 424, 424, 424, 424, 424, 433, - 371, 434, 434, 434, 434, 434, 434, 434, 434, 598, - 522, 598, 598, 598, 100, 265, 424, 424, 424, 424, - 424, 424, 428, 429, 430, 428, 428, 428, 428, 428, - 431, 267, 265, 266, 432, 432, 432, 432, 432, 433, - 265, 434, 434, 434, 434, 434, 434, 515, 516, 517, - 515, 515, 515, 515, 515, 507, 432, 432, 432, 432, - 432, 432, 242, 164, 440, 440, 440, 440, 440, 440, - 440, 440, 390, 242, 164, 441, 441, 441, 441, 441, + 478, 251, 479, 479, 479, 479, 479, 479, 79, 375, + 376, 376, 376, 376, 376, 376, 376, 376, 478, 79, + 479, 479, 479, 479, 479, 479, 479, 479, 478, 382, + 479, 479, 479, 479, 479, 479, 479, 479, 211, 530, + 370, 369, 363, 79, 382, 585, 432, 432, 432, 432, + 432, 432, 432, 432, 384, 382, 606, 433, 433, 433, + 433, 433, 433, 433, 433, 434, 530, 586, 585, 435, + 435, 435, 435, 435, 496, 496, 496, 496, 496, 496, + 496, 496, 532, 532, 532, 532, 532, 532, 532, 532, + 586, 362, 435, 435, 435, 435, 435, 435, 439, 440, - 441, 441, 441, 242, 164, 456, 80, 442, 442, 442, - 442, 442, 263, 390, 262, 567, 80, 598, 499, 510, - 511, 512, 510, 510, 510, 510, 510, 522, 579, 442, - 442, 442, 442, 442, 442, 461, 371, 462, 462, 462, - 462, 462, 462, 462, 462, 261, 522, 260, 259, 258, - 468, 76, 469, 469, 469, 469, 469, 469, 469, 469, - 468, 94, 469, 469, 469, 469, 469, 469, 202, 76, - 461, 240, 463, 463, 463, 463, 463, 463, 463, 463, - 468, 202, 469, 469, 469, 469, 469, 469, 469, 469, - 486, 486, 486, 486, 486, 486, 486, 486, 562, 562, + 441, 439, 439, 439, 439, 439, 442, 357, 356, 331, + 443, 443, 443, 443, 443, 533, 533, 533, 533, 533, + 534, 606, 382, 531, 531, 531, 531, 531, 531, 531, + 531, 251, 530, 443, 443, 443, 443, 443, 443, 253, + 170, 451, 451, 451, 451, 451, 451, 451, 451, 401, + 253, 170, 452, 452, 452, 452, 452, 452, 452, 452, + 211, 211, 276, 320, 453, 453, 453, 453, 453, 170, + 539, 539, 539, 539, 539, 539, 539, 539, 170, 540, + 540, 540, 540, 540, 540, 540, 540, 453, 453, 453, + 453, 453, 453, 472, 319, 473, 473, 473, 473, 473, - 562, 562, 562, 563, 76, 461, 100, 464, 464, 464, - 464, 464, 465, 466, 466, 524, 524, 524, 524, 524, - 524, 524, 524, 598, 80, 523, 523, 523, 523, 523, - 523, 523, 523, 585, 585, 585, 585, 585, 585, 76, - 461, 190, 467, 467, 467, 462, 462, 462, 462, 462, - 164, 531, 531, 531, 531, 531, 531, 531, 531, 164, - 532, 532, 532, 532, 532, 532, 532, 532, 503, 228, - 504, 505, 506, 225, 76, 371, 224, 475, 475, 475, - 475, 475, 475, 475, 475, 423, 371, 223, 476, 476, - 476, 476, 476, 476, 476, 476, 477, 222, 221, 219, + 473, 473, 473, 170, 541, 541, 541, 541, 541, 542, + 539, 539, 606, 317, 606, 606, 606, 575, 83, 513, + 316, 514, 515, 516, 315, 314, 313, 312, 79, 472, + 587, 474, 474, 474, 474, 474, 474, 474, 474, 606, + 311, 514, 515, 516, 606, 310, 606, 606, 516, 292, + 606, 251, 606, 606, 606, 211, 288, 211, 103, 517, + 276, 278, 276, 277, 79, 472, 517, 475, 475, 475, + 475, 475, 476, 477, 477, 552, 276, 274, 553, 553, + 553, 553, 553, 553, 553, 553, 517, 273, 272, 271, + 270, 517, 269, 97, 211, 512, 512, 519, 251, 512, - 478, 478, 478, 478, 478, 164, 533, 533, 533, 533, - 533, 534, 531, 531, 507, 598, 218, 504, 505, 506, - 217, 216, 478, 478, 478, 478, 478, 478, 482, 483, - 484, 482, 482, 482, 482, 482, 485, 215, 214, 213, - 486, 486, 486, 486, 486, 598, 212, 598, 598, 506, - 544, 100, 92, 545, 545, 545, 545, 545, 545, 545, - 545, 507, 486, 486, 486, 486, 486, 486, 242, 164, - 492, 492, 492, 492, 492, 492, 492, 492, 461, 80, - 466, 466, 466, 466, 466, 466, 466, 466, 502, 502, - 80, 507, 502, 598, 190, 598, 598, 598, 145, 146, + 79, 472, 211, 477, 477, 477, 473, 473, 473, 473, + 473, 512, 512, 512, 518, 518, 103, 559, 518, 560, + 560, 560, 560, 560, 560, 560, 560, 83, 199, 239, + 518, 518, 518, 236, 235, 234, 79, 382, 233, 485, + 485, 485, 485, 485, 485, 485, 485, 434, 382, 232, + 486, 486, 486, 486, 486, 486, 486, 486, 487, 230, + 229, 228, 488, 488, 488, 488, 488, 559, 227, 561, + 561, 561, 561, 561, 561, 561, 561, 538, 538, 538, + 538, 538, 538, 538, 538, 488, 488, 488, 488, 488, + 488, 492, 493, 494, 492, 492, 492, 492, 492, 495, - 140, 140, 132, 188, 502, 502, 502, 508, 508, 126, - 126, 508, 76, 461, 181, 466, 466, 466, 466, 466, - 466, 466, 466, 508, 508, 508, 513, 513, 513, 513, - 513, 513, 513, 513, 180, 179, 178, 177, 175, 509, - 164, 531, 531, 531, 531, 531, 531, 76, 461, 174, - 466, 466, 466, 466, 466, 466, 513, 513, 76, 551, - 169, 552, 552, 552, 552, 552, 552, 552, 552, 551, - 168, 553, 553, 553, 553, 553, 553, 553, 553, 100, - 75, 100, 76, 461, 157, 513, 513, 513, 513, 513, - 513, 513, 513, 551, 88, 554, 554, 554, 554, 554, + 226, 225, 224, 496, 496, 496, 496, 496, 559, 223, + 562, 562, 562, 562, 562, 563, 560, 560, 569, 569, + 569, 569, 569, 569, 569, 569, 496, 496, 496, 496, + 496, 496, 253, 170, 502, 502, 502, 502, 502, 502, + 502, 502, 472, 222, 473, 473, 473, 473, 473, 473, + 473, 473, 570, 570, 570, 570, 570, 571, 606, 221, + 568, 568, 568, 568, 568, 568, 568, 568, 170, 539, + 539, 539, 539, 539, 539, 539, 539, 79, 472, 103, + 473, 473, 473, 473, 473, 473, 473, 473, 170, 539, + 539, 539, 539, 539, 539, 539, 539, 170, 539, 539, - 555, 552, 552, 530, 530, 530, 530, 530, 530, 530, - 530, 80, 78, 77, 76, 146, 140, 76, 371, 132, - 520, 520, 520, 520, 520, 520, 520, 520, 477, 371, - 126, 521, 521, 521, 521, 521, 521, 521, 521, 522, - 122, 121, 120, 523, 523, 523, 523, 523, 561, 561, - 561, 561, 561, 561, 561, 561, 164, 531, 531, 531, - 531, 531, 531, 531, 531, 523, 523, 523, 523, 523, - 523, 527, 528, 529, 527, 527, 527, 527, 527, 119, - 118, 107, 106, 530, 530, 530, 530, 530, 598, 105, - 560, 560, 560, 560, 560, 560, 560, 560, 104, 103, + 539, 539, 539, 539, 553, 553, 553, 553, 553, 553, + 553, 553, 95, 79, 382, 83, 528, 528, 528, 528, + 528, 528, 528, 528, 487, 382, 83, 529, 529, 529, + 529, 529, 529, 529, 529, 530, 199, 151, 152, 531, + 531, 531, 531, 531, 553, 553, 553, 553, 553, 553, + 553, 553, 576, 577, 578, 576, 576, 576, 576, 576, + 146, 146, 531, 531, 531, 531, 531, 531, 535, 536, + 537, 535, 535, 535, 535, 535, 138, 197, 132, 132, + 538, 538, 538, 538, 538, 79, 554, 190, 555, 555, + 555, 555, 555, 555, 579, 580, 581, 579, 579, 579, - 100, 88, 78, 77, 76, 530, 530, 530, 530, 530, - 530, 546, 598, 547, 547, 547, 547, 547, 547, 547, - 547, 164, 531, 531, 531, 531, 531, 531, 531, 531, - 545, 545, 545, 545, 545, 545, 545, 545, 598, 598, - 598, 598, 598, 598, 598, 76, 546, 598, 548, 548, - 548, 548, 548, 548, 548, 548, 545, 545, 545, 545, - 545, 545, 545, 545, 568, 569, 570, 568, 568, 568, - 568, 568, 546, 598, 547, 547, 547, 547, 547, 547, - 76, 546, 598, 549, 549, 549, 549, 549, 550, 547, - 547, 598, 598, 598, 598, 598, 76, 571, 572, 573, + 579, 579, 189, 538, 538, 538, 538, 538, 538, 554, + 188, 555, 555, 555, 555, 555, 555, 555, 555, 187, + 559, 79, 560, 560, 560, 560, 560, 560, 560, 560, + 559, 186, 560, 560, 560, 560, 560, 560, 560, 560, + 184, 183, 182, 181, 79, 554, 176, 556, 556, 556, + 556, 556, 556, 556, 556, 559, 175, 560, 560, 560, + 560, 560, 560, 382, 174, 584, 584, 584, 584, 584, + 584, 584, 584, 593, 593, 593, 593, 593, 593, 103, + 79, 554, 78, 557, 557, 557, 557, 557, 558, 555, + 555, 593, 593, 593, 593, 593, 593, 593, 593, 594, - 571, 571, 571, 571, 571, 551, 76, 552, 552, 552, - 552, 552, 552, 552, 552, 76, 371, 598, 558, 558, - 558, 558, 558, 558, 558, 558, 522, 371, 598, 559, - 559, 559, 559, 559, 559, 559, 559, 598, 598, 598, - 598, 560, 560, 560, 560, 560, 551, 598, 552, 552, - 552, 552, 552, 552, 552, 552, 595, 595, 595, 595, - 595, 595, 598, 560, 560, 560, 560, 560, 560, 546, - 598, 547, 547, 547, 547, 547, 547, 547, 547, 551, - 598, 552, 552, 552, 552, 552, 552, 371, 76, 576, - 576, 576, 576, 576, 576, 576, 576, 598, 598, 598, + 594, 594, 594, 594, 594, 594, 594, 595, 595, 595, + 595, 595, 596, 593, 593, 103, 79, 382, 163, 566, + 566, 566, 566, 566, 566, 566, 566, 530, 382, 91, + 567, 567, 567, 567, 567, 567, 567, 567, 83, 81, + 80, 79, 568, 568, 568, 568, 568, 152, 600, 601, + 602, 600, 600, 600, 600, 600, 588, 146, 589, 589, + 589, 589, 589, 589, 138, 568, 568, 568, 568, 568, + 568, 554, 132, 555, 555, 555, 555, 555, 555, 555, + 555, 79, 593, 593, 593, 593, 593, 593, 593, 593, + 128, 79, 593, 593, 593, 593, 593, 593, 593, 593, - 598, 598, 598, 76, 546, 598, 547, 547, 547, 547, - 547, 547, 547, 547, 585, 585, 585, 585, 585, 585, - 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, - 587, 587, 587, 587, 587, 588, 585, 585, 76, 580, - 598, 581, 581, 581, 581, 581, 581, 581, 581, 598, - 598, 598, 592, 593, 594, 592, 592, 592, 592, 592, - 580, 598, 581, 581, 581, 581, 581, 581, 598, 598, - 598, 598, 598, 76, 580, 598, 582, 582, 582, 582, - 582, 582, 582, 582, 76, 585, 585, 585, 585, 585, - 585, 585, 585, 598, 76, 585, 585, 585, 585, 585, + 126, 113, 112, 111, 110, 109, 79, 554, 108, 555, + 555, 555, 555, 555, 555, 555, 555, 105, 103, 91, + 603, 603, 603, 603, 603, 603, 603, 603, 600, 600, + 600, 600, 600, 600, 600, 600, 81, 80, 79, 606, + 606, 606, 79, 588, 606, 589, 589, 589, 589, 589, + 589, 589, 589, 79, 606, 606, 606, 606, 606, 606, + 606, 79, 604, 604, 604, 604, 604, 605, 603, 603, + 603, 603, 603, 603, 603, 603, 603, 603, 79, 588, + 606, 590, 590, 590, 590, 590, 590, 590, 590, 606, + 606, 606, 606, 606, 606, 79, 603, 603, 603, 603, - 585, 585, 585, 598, 598, 598, 598, 598, 76, 580, - 598, 583, 583, 583, 583, 583, 584, 581, 581, 598, - 598, 598, 595, 595, 595, 595, 595, 595, 595, 595, - 592, 592, 592, 592, 592, 592, 592, 592, 598, 598, - 598, 598, 598, 76, 580, 598, 581, 581, 581, 581, - 581, 581, 581, 581, 76, 598, 598, 598, 598, 598, - 598, 598, 76, 596, 596, 596, 596, 596, 597, 595, - 595, 598, 598, 598, 598, 598, 598, 598, 76, 580, - 598, 581, 581, 581, 581, 581, 581, 581, 581, 598, - 598, 598, 598, 598, 598, 76, 595, 595, 595, 595, + 603, 603, 606, 79, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 79, 588, 606, 591, 591, 591, + 591, 591, 592, 589, 589, 606, 606, 606, 606, 79, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 79, 588, 606, 589, 589, 589, 589, 589, 589, 589, + 589, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 79, 588, 606, 589, + 589, 589, 589, 589, 589, 589, 589, 606, 606, 606, - 595, 595, 595, 595, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 76, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 76, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 31, 31, 31, 31, 31, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 79, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 75, 598, 598, 598, 598, 598, 598, + 31, 31, 31, 31, 31, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 78, 606, 606, + 606, 606, 606, 606, 606, 78, 78, 78, 606, 606, - 598, 75, 75, 75, 598, 598, 75, 75, 75, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 83, 598, 598, 598, 598, - 83, 598, 598, 83, 83, 83, 83, 598, 83, 83, - 83, 87, 598, 598, 598, 598, 598, 598, 598, 87, - 87, 87, 598, 598, 87, 87, 87, 89, 598, 598, - 89, 89, 598, 89, 598, 89, 89, 89, 598, 598, - 89, 89, 89, 99, 99, 598, 598, 598, 99, 127, - 598, 598, 127, 127, 598, 127, 598, 127, 127, 127, - 598, 598, 127, 127, 127, 131, 598, 598, 131, 131, + 78, 78, 78, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 86, + 606, 606, 606, 606, 86, 606, 606, 86, 86, 86, + 86, 606, 86, 86, 86, 90, 606, 606, 606, 606, + 606, 606, 606, 90, 90, 90, 606, 606, 90, 90, + 90, 92, 606, 606, 92, 92, 606, 92, 606, 92, + 92, 92, 606, 606, 92, 92, 92, 102, 102, 606, + 606, 606, 102, 133, 606, 606, 133, 133, 606, 133, + 606, 133, 133, 133, 606, 606, 133, 133, 133, 137, + 606, 606, 137, 137, 606, 137, 606, 137, 137, 137, - 598, 131, 598, 131, 131, 131, 598, 131, 598, 131, - 131, 139, 598, 598, 139, 598, 598, 139, 598, 139, - 139, 139, 139, 598, 139, 139, 139, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 145, 145, 598, 145, 598, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 152, 152, 598, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 155, 598, 598, 598, 598, 155, 598, 598, 155, + 606, 137, 606, 137, 137, 145, 606, 606, 145, 606, + 606, 145, 606, 145, 145, 145, 145, 606, 145, 145, + 145, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 151, 151, 606, + 151, 606, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, + 158, 606, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 161, 606, 606, 606, 606, + 161, 606, 606, 161, 161, 161, 606, 606, 161, 161, - 155, 155, 598, 598, 155, 155, 155, 90, 598, 598, - 90, 90, 598, 90, 598, 90, 90, 90, 598, 598, - 90, 90, 90, 163, 163, 598, 598, 598, 163, 165, - 165, 165, 598, 598, 598, 165, 128, 598, 598, 128, - 128, 598, 128, 598, 128, 128, 128, 598, 598, 128, - 128, 128, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 198, 198, - 598, 598, 598, 198, 204, 204, 204, 598, 598, 598, - 204, 234, 234, 598, 598, 598, 234, 235, 235, 598, - 598, 598, 235, 239, 239, 598, 598, 598, 239, 241, + 161, 93, 606, 606, 93, 93, 606, 93, 606, 93, + 93, 93, 606, 606, 93, 93, 93, 169, 169, 606, + 606, 606, 169, 171, 171, 171, 606, 606, 606, 171, + 134, 606, 606, 134, 134, 606, 134, 606, 134, 134, + 134, 606, 606, 134, 134, 134, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 207, 207, 606, 606, 606, 207, 213, 213, + 213, 606, 606, 606, 213, 245, 245, 606, 606, 606, + 245, 246, 246, 606, 606, 606, 246, 250, 250, 606, + 606, 606, 250, 252, 252, 252, 606, 606, 606, 252, - 241, 241, 598, 598, 598, 241, 277, 277, 598, 598, - 598, 277, 279, 279, 598, 598, 598, 279, 280, 280, - 598, 598, 598, 280, 282, 282, 282, 598, 598, 598, - 282, 286, 286, 286, 286, 598, 598, 598, 286, 317, - 317, 598, 598, 598, 317, 318, 318, 598, 598, 598, - 318, 319, 319, 598, 598, 598, 319, 331, 331, 331, - 598, 598, 598, 331, 332, 332, 332, 332, 598, 598, - 598, 332, 369, 369, 598, 598, 598, 369, 370, 370, - 598, 598, 598, 370, 386, 386, 386, 598, 598, 598, - 386, 387, 387, 387, 387, 598, 598, 598, 387, 416, + 288, 288, 606, 606, 606, 288, 290, 290, 606, 606, + 606, 290, 291, 291, 606, 606, 606, 291, 293, 293, + 293, 606, 606, 606, 293, 297, 297, 297, 297, 606, + 606, 606, 297, 328, 328, 606, 606, 606, 328, 329, + 329, 606, 606, 606, 329, 330, 330, 606, 606, 606, + 330, 342, 342, 342, 606, 606, 606, 342, 343, 343, + 343, 343, 606, 606, 606, 343, 380, 380, 606, 606, + 606, 380, 381, 381, 606, 606, 606, 381, 397, 397, + 397, 606, 606, 606, 397, 398, 398, 398, 398, 606, + 606, 606, 398, 427, 427, 606, 606, 606, 427, 431, - 416, 598, 598, 598, 416, 420, 598, 420, 420, 598, - 598, 598, 420, 438, 438, 438, 598, 598, 598, 438, - 439, 439, 439, 439, 598, 598, 598, 439, 473, 473, - 598, 598, 598, 473, 474, 598, 474, 474, 598, 598, - 598, 474, 490, 490, 490, 598, 598, 598, 490, 491, - 491, 491, 598, 598, 598, 598, 491, 502, 502, 598, - 502, 502, 502, 598, 598, 502, 502, 502, 598, 598, - 502, 502, 502, 508, 508, 598, 508, 508, 508, 598, - 598, 508, 508, 508, 598, 598, 508, 508, 508, 518, - 518, 598, 598, 598, 518, 519, 598, 519, 519, 598, + 606, 431, 431, 606, 606, 606, 431, 449, 449, 449, + 606, 606, 606, 449, 450, 450, 450, 450, 606, 606, + 606, 450, 483, 483, 606, 606, 606, 483, 484, 606, + 484, 484, 606, 606, 606, 484, 500, 500, 500, 606, + 606, 606, 500, 501, 501, 501, 606, 606, 606, 606, + 501, 512, 512, 606, 512, 512, 512, 606, 606, 512, + 512, 512, 606, 606, 512, 512, 512, 518, 518, 606, + 518, 518, 518, 606, 606, 518, 518, 518, 606, 606, + 518, 518, 518, 526, 526, 606, 606, 606, 526, 527, + 606, 527, 527, 606, 606, 606, 527, 543, 543, 606, - 598, 598, 519, 535, 535, 598, 598, 598, 598, 535, - 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, - 541, 541, 541, 541, 541, 541, 556, 556, 598, 598, - 598, 556, 557, 598, 557, 557, 598, 598, 598, 557, - 574, 574, 598, 598, 598, 574, 575, 598, 575, 598, - 598, 598, 598, 575, 590, 590, 590, 590, 590, 590, - 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, - 13, 598, 598, 598, 598, 598, 598, 598, 598, 598, + 606, 606, 606, 543, 549, 549, 549, 549, 549, 549, + 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, + 564, 564, 606, 606, 606, 564, 565, 606, 565, 565, + 606, 606, 606, 565, 582, 582, 606, 606, 606, 582, + 583, 606, 583, 606, 606, 606, 606, 583, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, + 598, 598, 598, 598, 13, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598 + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606 } ; -static yyconst short int yy_chk[3737] = +static yyconst short int yy_chk[3732] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -981,411 +982,411 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 3, 4, 41, 2, - 3, 4, 11, 11, 11, 11, 3, 4, 53, 3, - 4, 49, 61, 61, 71, 41, 5, 5, 5, 72, - 5, 49, 20, 2, 2, 53, 5, 2, 117, 65, + 1, 1, 1, 1, 1, 1, 2, 44, 3, 34, + 2, 103, 3, 4, 47, 20, 126, 4, 3, 34, + 103, 3, 52, 4, 44, 48, 4, 11, 11, 11, + 11, 126, 52, 20, 2, 2, 56, 47, 2, 74, - 595, 6, 6, 6, 2, 6, 67, 2, 5, 5, - 20, 6, 12, 12, 12, 12, 25, 25, 11, 118, - 25, 25, 65, 6, 6, 69, 69, 3, 4, 67, - 71, 118, 5, 72, 20, 85, 108, 108, 25, 27, - 27, 27, 27, 27, 27, 27, 27, 6, 7, 7, - 7, 42, 7, 74, 74, 117, 74, 590, 12, 100, - 25, 28, 28, 28, 28, 28, 28, 40, 100, 40, - 40, 40, 40, 40, 40, 40, 40, 85, 187, 42, - 42, 123, 108, 42, 98, 98, 98, 98, 98, 98, - 42, 123, 187, 42, 7, 7, 7, 7, 7, 7, + 5, 5, 5, 48, 5, 2, 50, 3, 2, 3, + 5, 603, 4, 56, 4, 6, 6, 6, 20, 6, + 64, 64, 5, 5, 75, 6, 12, 12, 12, 12, + 3, 196, 68, 50, 11, 4, 70, 6, 6, 25, + 25, 72, 72, 25, 25, 196, 74, 5, 27, 27, + 27, 27, 27, 27, 27, 27, 68, 88, 124, 127, + 70, 25, 6, 7, 7, 7, 45, 7, 598, 75, + 124, 127, 129, 12, 28, 28, 28, 28, 28, 28, + 139, 139, 129, 43, 25, 43, 43, 43, 43, 43, + 43, 43, 43, 194, 45, 45, 77, 77, 45, 77, + 88, 116, 123, 114, 114, 45, 116, 153, 45, 194, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 8, 8, 8, 50, 8, 579, 50, 50, - 50, 50, 50, 50, 50, 50, 81, 81, 81, 81, - 81, 81, 81, 81, 82, 82, 82, 82, 82, 82, - 82, 82, 84, 119, 121, 84, 84, 84, 84, 84, - 84, 84, 84, 133, 133, 186, 121, 186, 8, 8, + 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, + 8, 53, 8, 206, 53, 53, 53, 53, 53, 53, + 53, 53, 84, 84, 84, 84, 84, 84, 84, 84, + 114, 62, 62, 62, 153, 62, 154, 125, 206, 62, + 123, 62, 85, 85, 85, 85, 85, 85, 85, 85, + 143, 143, 202, 62, 62, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 137, 137, 110, 119, 9, 9, 9, 110, 120, - 500, 52, 52, 576, 83, 52, 52, 89, 89, 9, + 8, 8, 8, 9, 9, 9, 9, 9, 62, 125, - 130, 89, 89, 122, 120, 130, 59, 59, 59, 122, - 59, 147, 83, 52, 59, 148, 59, 144, 144, 89, - 149, 149, 9, 10, 10, 10, 10, 10, 59, 59, - 182, 193, 10, 10, 10, 52, 83, 86, 457, 86, - 86, 89, 165, 86, 86, 105, 10, 86, 185, 500, - 105, 165, 59, 105, 176, 105, 270, 147, 197, 148, - 86, 86, 155, 144, 185, 193, 270, 176, 189, 10, - 19, 92, 92, 92, 92, 92, 92, 92, 92, 182, - 19, 189, 197, 19, 19, 19, 19, 19, 19, 19, - 19, 26, 457, 26, 26, 26, 26, 26, 26, 26, + 128, 154, 9, 9, 9, 86, 128, 202, 55, 55, + 136, 161, 55, 55, 185, 136, 9, 101, 101, 101, + 101, 101, 101, 86, 155, 155, 198, 185, 87, 587, + 55, 87, 87, 87, 87, 87, 87, 87, 87, 198, + 9, 10, 10, 10, 10, 10, 584, 171, 86, 284, + 10, 10, 10, 55, 161, 89, 171, 89, 89, 222, + 582, 89, 89, 222, 10, 89, 213, 95, 95, 95, + 95, 95, 95, 95, 95, 213, 92, 92, 89, 89, + 92, 92, 192, 195, 284, 195, 510, 192, 10, 19, + 99, 99, 99, 99, 99, 99, 99, 99, 92, 19, - 26, 26, 212, 92, 155, 26, 26, 26, 26, 26, - 96, 96, 96, 96, 96, 96, 96, 96, 183, 201, - 201, 201, 574, 183, 212, 26, 204, 26, 26, 26, - 26, 26, 26, 32, 140, 204, 213, 140, 140, 32, - 213, 560, 32, 32, 140, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 140, 360, 32, + 95, 221, 19, 19, 19, 19, 19, 19, 19, 19, + 26, 191, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 92, 237, 221, 26, 26, 26, 26, 26, 100, + 100, 100, 100, 100, 100, 100, 100, 131, 131, 131, + 131, 131, 131, 131, 131, 26, 510, 26, 26, 26, + 26, 26, 26, 32, 146, 238, 238, 146, 146, 32, + 568, 191, 32, 32, 146, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 146, 237, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 34, 34, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 210, 210, + 210, 35, 35, 35, 35, 35, 109, 231, 240, 241, + 35, 109, 252, 231, 109, 241, 109, 117, 567, 150, + 150, 252, 239, 240, 35, 35, 35, 35, 35, 35, + 42, 42, 42, 42, 42, 293, 42, 42, 133, 133, + 42, 265, 133, 133, 293, 117, 117, 239, 281, 117, + 388, 388, 42, 42, 42, 46, 117, 163, 281, 117, + 133, 163, 323, 265, 239, 46, 150, 163, 46, 46, - 34, 34, 34, 34, 34, 34, 34, 227, 227, 360, - 34, 34, 34, 34, 34, 97, 97, 97, 97, 97, - 97, 97, 97, 559, 196, 111, 196, 196, 196, 196, - 196, 196, 34, 34, 34, 34, 34, 34, 39, 39, - 39, 39, 39, 220, 39, 39, 157, 264, 39, 220, - 157, 229, 264, 111, 111, 226, 157, 111, 196, 230, - 39, 39, 39, 43, 111, 230, 229, 111, 157, 157, - 127, 127, 557, 43, 127, 127, 43, 43, 43, 43, - 43, 43, 43, 43, 125, 125, 125, 125, 125, 125, - 125, 125, 127, 136, 136, 136, 136, 136, 136, 136, + 46, 46, 46, 46, 46, 46, 275, 282, 323, 163, + 163, 275, 282, 133, 142, 142, 142, 142, 142, 142, + 142, 142, 159, 159, 159, 159, 159, 159, 159, 159, + 160, 160, 160, 160, 160, 160, 160, 160, 438, 438, + 46, 63, 201, 201, 201, 201, 201, 201, 201, 201, + 279, 63, 565, 280, 63, 63, 63, 63, 63, 63, + 63, 63, 79, 564, 79, 79, 79, 297, 79, 79, + 254, 254, 79, 197, 280, 201, 297, 197, 256, 256, + 254, 321, 322, 197, 79, 79, 79, 91, 256, 91, + 91, 91, 322, 91, 91, 197, 197, 91, 209, 209, - 136, 153, 153, 153, 153, 153, 153, 153, 153, 310, - 226, 302, 556, 268, 127, 302, 228, 43, 60, 154, - 154, 154, 154, 154, 154, 154, 154, 269, 60, 254, - 301, 60, 60, 60, 60, 60, 60, 60, 60, 76, - 228, 76, 76, 76, 241, 76, 76, 269, 311, 76, - 188, 254, 301, 241, 188, 243, 243, 228, 311, 310, - 188, 76, 76, 76, 88, 243, 88, 88, 88, 552, - 88, 88, 188, 188, 88, 268, 192, 192, 192, 192, - 192, 192, 192, 192, 245, 245, 88, 88, 88, 91, - 362, 91, 91, 91, 245, 91, 91, 377, 377, 91, + 209, 209, 209, 209, 209, 209, 209, 298, 298, 91, + 91, 91, 94, 279, 94, 94, 94, 298, 94, 94, + 313, 383, 94, 162, 313, 162, 162, 452, 452, 162, + 162, 383, 321, 162, 94, 94, 94, 96, 96, 96, + 96, 96, 96, 96, 96, 162, 162, 162, 312, 96, + 96, 96, 96, 96, 205, 368, 205, 205, 205, 205, + 205, 205, 214, 214, 214, 214, 214, 214, 214, 214, + 312, 368, 96, 96, 96, 96, 96, 96, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 316, 371, 205, + 104, 104, 104, 104, 104, 216, 216, 216, 216, 216, - 156, 541, 156, 156, 271, 362, 156, 156, 192, 271, - 156, 91, 91, 91, 93, 93, 93, 93, 93, 93, - 93, 93, 156, 156, 156, 539, 93, 93, 93, 93, - 93, 200, 200, 200, 200, 200, 200, 200, 200, 200, - 205, 205, 205, 205, 205, 205, 205, 205, 93, 93, - 93, 93, 93, 93, 101, 101, 101, 101, 101, 101, - 101, 101, 409, 305, 409, 273, 101, 101, 101, 101, - 101, 207, 207, 207, 207, 207, 207, 207, 207, 208, - 208, 208, 208, 208, 208, 305, 282, 365, 101, 101, - 101, 101, 101, 101, 129, 282, 129, 129, 129, 273, + 216, 216, 216, 217, 217, 217, 217, 217, 217, 316, + 299, 299, 373, 104, 104, 104, 104, 104, 104, 135, + 299, 135, 135, 135, 560, 135, 135, 373, 219, 135, + 219, 219, 219, 219, 219, 219, 219, 219, 453, 453, + 371, 135, 135, 135, 164, 549, 164, 164, 164, 164, + 164, 164, 164, 164, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 253, 253, 253, 253, 253, 253, 253, + 253, 255, 255, 255, 255, 255, 255, 255, 255, 164, + 165, 547, 165, 165, 165, 165, 165, 165, 165, 165, + 259, 259, 259, 259, 259, 259, 259, 259, 419, 419, - 129, 129, 535, 210, 129, 210, 210, 210, 210, 210, - 210, 210, 210, 427, 427, 531, 129, 129, 129, 158, - 365, 158, 158, 158, 158, 158, 158, 158, 158, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 242, 242, - 242, 242, 242, 242, 242, 242, 251, 251, 251, 251, - 251, 251, 519, 158, 159, 518, 159, 159, 159, 159, - 159, 159, 159, 159, 244, 244, 244, 244, 244, 244, - 244, 244, 248, 248, 248, 248, 248, 248, 248, 248, - 501, 286, 248, 499, 408, 408, 306, 498, 159, 160, - 286, 160, 160, 160, 160, 160, 160, 160, 160, 250, + 259, 261, 261, 261, 261, 261, 261, 261, 261, 262, + 262, 262, 262, 262, 262, 165, 166, 543, 166, 166, + 166, 166, 166, 166, 166, 166, 264, 317, 264, 264, + 264, 264, 264, 264, 264, 264, 301, 301, 283, 283, + 283, 283, 283, 283, 283, 283, 301, 456, 456, 317, + 419, 166, 167, 318, 167, 167, 167, 167, 167, 167, + 167, 167, 318, 324, 342, 343, 167, 167, 167, 167, + 167, 283, 324, 342, 343, 344, 344, 287, 372, 287, + 287, 287, 287, 287, 287, 344, 420, 372, 420, 167, + 167, 167, 167, 167, 167, 170, 170, 170, 170, 170, - 250, 250, 250, 250, 250, 250, 250, 253, 306, 253, - 253, 253, 253, 253, 253, 253, 253, 296, 296, 296, - 296, 296, 296, 160, 161, 307, 161, 161, 161, 161, - 161, 161, 161, 161, 307, 408, 312, 347, 161, 161, - 161, 161, 161, 272, 272, 272, 272, 272, 272, 272, - 272, 276, 312, 276, 276, 276, 276, 276, 276, 347, - 161, 161, 161, 161, 161, 161, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 272, 441, 441, 164, 164, - 164, 164, 164, 462, 283, 276, 283, 283, 283, 283, - 283, 283, 283, 283, 323, 323, 323, 323, 323, 323, + 170, 170, 170, 170, 345, 345, 539, 170, 170, 170, + 170, 170, 287, 294, 345, 294, 294, 294, 294, 294, + 294, 294, 294, 307, 307, 307, 307, 307, 307, 527, + 170, 170, 170, 170, 170, 170, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 491, 491, 526, 172, + 172, 172, 172, 172, 295, 376, 295, 295, 295, 295, + 295, 295, 295, 295, 300, 300, 300, 300, 300, 300, + 300, 300, 172, 172, 172, 172, 172, 172, 173, 173, + 173, 173, 173, 173, 173, 173, 347, 347, 511, 376, + 173, 173, 173, 173, 173, 296, 347, 296, 296, 296, - 164, 164, 164, 164, 164, 164, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 313, 462, 353, 166, - 166, 166, 166, 166, 284, 313, 284, 284, 284, 284, - 284, 284, 284, 284, 342, 342, 342, 342, 342, 342, - 353, 166, 166, 166, 166, 166, 166, 167, 167, 167, - 167, 167, 167, 167, 167, 287, 287, 497, 355, 167, - 167, 167, 167, 167, 285, 287, 285, 285, 285, 285, - 285, 285, 285, 285, 442, 442, 445, 445, 288, 288, - 355, 167, 167, 167, 167, 167, 167, 194, 288, 194, - 194, 194, 194, 194, 194, 194, 194, 289, 289, 289, + 296, 296, 296, 296, 296, 306, 306, 306, 306, 306, + 306, 306, 306, 173, 173, 173, 173, 173, 173, 203, + 509, 203, 203, 203, 203, 203, 203, 203, 203, 304, + 304, 304, 304, 304, 304, 304, 304, 508, 309, 304, + 309, 309, 309, 309, 309, 309, 309, 309, 334, 334, + 334, 334, 334, 334, 203, 204, 507, 204, 204, 204, + 204, 204, 204, 204, 204, 331, 331, 331, 331, 331, + 331, 331, 331, 333, 333, 333, 333, 333, 333, 333, + 333, 337, 337, 337, 337, 337, 337, 337, 337, 358, + 204, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 289, 289, 289, 289, 289, 290, 290, 293, 293, 293, - 293, 293, 293, 293, 293, 290, 496, 293, 481, 481, - 491, 194, 195, 474, 195, 195, 195, 195, 195, 195, - 195, 195, 295, 295, 295, 295, 295, 295, 295, 295, - 298, 331, 298, 298, 298, 298, 298, 298, 298, 298, - 331, 473, 357, 363, 492, 492, 195, 206, 206, 206, - 206, 206, 206, 206, 206, 206, 206, 206, 357, 363, - 403, 206, 206, 206, 206, 206, 320, 320, 320, 320, - 320, 320, 320, 320, 322, 322, 322, 322, 322, 322, - 322, 322, 403, 206, 206, 206, 206, 206, 206, 209, + 215, 215, 502, 502, 506, 215, 215, 215, 215, 215, + 336, 358, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 501, 341, 341, 341, 341, 341, 341, 215, 215, + 215, 215, 215, 215, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 397, 534, 534, 218, 218, 218, + 218, 218, 339, 397, 339, 339, 339, 339, 339, 339, + 339, 339, 346, 346, 346, 346, 346, 346, 346, 346, + 218, 218, 218, 218, 218, 218, 242, 484, 242, 242, + 242, 242, 242, 242, 242, 242, 340, 364, 340, 340, + 340, 340, 340, 340, 340, 340, 350, 350, 350, 350, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 332, - 469, 404, 209, 209, 209, 209, 209, 325, 332, 325, - 325, 325, 325, 325, 325, 325, 325, 526, 526, 543, - 543, 333, 333, 404, 209, 209, 209, 209, 209, 209, - 231, 333, 231, 231, 231, 231, 231, 231, 231, 231, - 326, 326, 326, 326, 326, 326, 326, 326, 328, 361, - 328, 328, 328, 328, 328, 328, 328, 328, 361, 467, - 547, 467, 467, 467, 231, 232, 372, 232, 232, 232, - 232, 232, 232, 232, 232, 329, 372, 329, 329, 329, - 329, 329, 329, 329, 329, 330, 374, 330, 330, 330, + 350, 350, 350, 350, 398, 669, 350, 551, 551, 364, + 669, 242, 243, 398, 243, 243, 243, 243, 243, 243, + 243, 243, 352, 352, 352, 352, 352, 352, 352, 352, + 353, 353, 353, 353, 353, 353, 355, 366, 355, 355, + 355, 355, 355, 355, 355, 355, 374, 243, 244, 449, + 244, 244, 244, 244, 244, 244, 244, 244, 449, 366, + 414, 385, 374, 382, 382, 382, 382, 382, 382, 382, + 382, 385, 450, 375, 375, 375, 375, 375, 375, 375, + 375, 450, 414, 244, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 260, 260, 260, 260, 260, - 330, 330, 330, 467, 547, 454, 374, 563, 563, 232, - 233, 449, 233, 233, 233, 233, 233, 233, 233, 233, - 334, 334, 335, 335, 335, 335, 335, 335, 335, 335, - 334, 336, 336, 339, 339, 339, 339, 339, 339, 339, - 339, 336, 448, 339, 233, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 447, 458, 446, - 249, 249, 249, 249, 249, 341, 341, 341, 341, 341, - 341, 341, 341, 458, 368, 368, 368, 368, 368, 368, - 368, 446, 249, 249, 249, 249, 249, 249, 252, 252, + 260, 260, 260, 260, 260, 260, 375, 415, 457, 260, + 260, 260, 260, 260, 379, 379, 379, 379, 379, 379, + 379, 384, 384, 384, 384, 384, 384, 384, 384, 415, + 457, 483, 260, 260, 260, 260, 260, 260, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 379, 571, + 571, 263, 263, 263, 263, 263, 390, 390, 390, 390, + 390, 390, 390, 390, 391, 391, 391, 391, 391, 391, + 479, 399, 399, 465, 263, 263, 263, 263, 263, 263, + 285, 399, 285, 285, 285, 285, 285, 285, 285, 285, + 393, 432, 393, 393, 393, 393, 393, 393, 393, 393, - 252, 252, 252, 252, 252, 252, 252, 252, 611, 611, - 450, 252, 252, 252, 252, 252, 344, 368, 344, 344, - 344, 344, 344, 344, 344, 344, 380, 380, 380, 380, - 380, 380, 450, 252, 252, 252, 252, 252, 252, 274, - 386, 274, 274, 274, 274, 274, 274, 274, 274, 386, - 452, 434, 364, 364, 364, 364, 364, 364, 364, 364, - 371, 371, 371, 371, 371, 371, 371, 371, 420, 416, - 661, 411, 452, 274, 275, 661, 275, 275, 275, 275, - 275, 275, 275, 275, 364, 373, 373, 373, 373, 373, - 373, 373, 373, 379, 379, 379, 379, 379, 379, 379, + 394, 432, 394, 394, 394, 394, 394, 394, 394, 394, + 460, 473, 619, 619, 468, 285, 286, 433, 286, 286, + 286, 286, 286, 286, 286, 286, 395, 433, 395, 395, + 395, 395, 395, 395, 395, 395, 396, 435, 396, 396, + 396, 396, 396, 396, 396, 396, 473, 435, 461, 459, + 458, 286, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 400, 400, 445, 292, 292, 292, 292, 292, 468, + 461, 400, 401, 401, 401, 401, 401, 401, 401, 401, + 408, 408, 408, 408, 408, 408, 431, 292, 292, 292, + 292, 292, 292, 302, 302, 302, 302, 302, 302, 302, - 379, 397, 397, 397, 397, 397, 397, 407, 275, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 387, 406, - 493, 281, 281, 281, 281, 281, 382, 387, 382, 382, - 382, 382, 382, 382, 382, 382, 430, 430, 430, 430, - 430, 430, 493, 281, 281, 281, 281, 281, 281, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, - 294, 455, 405, 495, 294, 294, 294, 294, 294, 383, - 421, 383, 383, 383, 383, 383, 383, 383, 383, 402, - 421, 455, 536, 455, 455, 495, 294, 294, 294, 294, + 302, 302, 302, 302, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 402, 402, 463, 305, 305, + 305, 305, 305, 469, 477, 402, 405, 405, 405, 405, + 405, 405, 405, 405, 427, 503, 405, 422, 469, 463, + 418, 305, 305, 305, 305, 305, 305, 308, 308, 308, + 308, 308, 308, 308, 308, 308, 308, 503, 417, 477, + 308, 308, 308, 308, 308, 407, 407, 407, 407, 407, + 407, 407, 407, 409, 416, 409, 409, 409, 409, 409, + 409, 409, 409, 308, 308, 308, 308, 308, 308, 325, + 325, 325, 325, 325, 325, 325, 325, 325, 421, 428, - 294, 294, 297, 297, 297, 297, 297, 297, 297, 297, - 297, 297, 538, 564, 536, 297, 297, 297, 297, 297, - 384, 422, 384, 384, 384, 384, 384, 384, 384, 384, - 401, 422, 400, 581, 538, 564, 399, 297, 297, 297, - 297, 297, 297, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 385, 370, 385, 385, 385, 385, 385, 385, - 385, 385, 388, 388, 389, 389, 438, 581, 369, 359, - 358, 352, 388, 351, 389, 438, 314, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 390, 390, 390, 390, - 390, 390, 390, 390, 391, 391, 394, 394, 394, 394, + 505, 428, 428, 428, 428, 428, 428, 428, 428, 434, + 434, 434, 434, 434, 434, 434, 434, 413, 421, 412, + 421, 421, 505, 325, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 429, 466, 429, 429, 429, 429, 429, + 429, 429, 429, 421, 430, 485, 430, 430, 430, 430, + 430, 430, 430, 430, 466, 485, 466, 466, 326, 327, + 327, 327, 327, 327, 327, 327, 327, 327, 440, 440, + 440, 440, 440, 440, 440, 440, 441, 441, 441, 441, + 441, 441, 443, 500, 443, 443, 443, 443, 443, 443, + 443, 443, 500, 327, 332, 486, 332, 332, 332, 332, - 394, 394, 394, 394, 391, 350, 394, 349, 346, 345, - 315, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 396, 396, 396, 396, 396, 396, 396, 396, 398, 424, - 398, 398, 398, 398, 398, 398, 398, 398, 327, 424, - 319, 318, 317, 309, 316, 321, 308, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 439, 566, 577, 321, - 321, 321, 321, 321, 417, 439, 417, 417, 417, 417, - 417, 417, 417, 417, 459, 304, 459, 459, 459, 566, - 577, 321, 321, 321, 321, 321, 321, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 303, 300, 299, 324, + 332, 332, 332, 332, 332, 486, 411, 410, 332, 332, + 332, 332, 332, 444, 444, 444, 444, 444, 444, 444, + 444, 446, 381, 446, 446, 446, 446, 446, 446, 446, + 446, 332, 332, 332, 332, 332, 332, 335, 335, 335, + 335, 335, 335, 335, 335, 335, 380, 370, 369, 335, + 335, 335, 335, 335, 447, 488, 447, 447, 447, 447, + 447, 447, 447, 447, 448, 488, 448, 448, 448, 448, + 448, 448, 335, 335, 335, 335, 335, 335, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, - 324, 324, 324, 324, 418, 475, 418, 418, 418, 418, - 418, 418, 418, 418, 280, 475, 279, 278, 277, 267, - 459, 324, 324, 324, 324, 324, 324, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 340, 340, - 340, 340, 340, 340, 340, 340, 340, 340, 340, 490, - 266, 265, 340, 340, 340, 340, 340, 419, 490, 419, - 419, 419, 419, 419, 419, 419, 419, 263, 460, 410, - 460, 460, 460, 262, 340, 340, 340, 340, 340, 340, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 410, - 261, 410, 410, 343, 343, 343, 343, 343, 423, 423, + 451, 451, 528, 351, 351, 351, 351, 351, 467, 467, + 451, 470, 528, 470, 470, 470, 471, 363, 471, 471, + 471, 467, 544, 362, 555, 589, 351, 351, 351, 351, + 351, 351, 354, 354, 354, 354, 354, 354, 354, 354, + 354, 361, 546, 572, 544, 354, 354, 354, 354, 354, + 472, 472, 472, 472, 472, 472, 472, 472, 470, 555, + 589, 360, 357, 471, 546, 572, 356, 338, 354, 354, + 354, 354, 354, 354, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 472, 476, 330, 476, 476, 476, 476, + 476, 476, 478, 478, 478, 478, 478, 478, 478, 478, - 423, 423, 423, 423, 423, 423, 484, 484, 484, 484, - 484, 484, 260, 410, 460, 343, 343, 343, 343, 343, - 343, 366, 366, 366, 366, 366, 366, 366, 366, 366, - 429, 429, 429, 429, 429, 429, 429, 429, 432, 476, - 432, 432, 432, 432, 432, 432, 432, 432, 259, 476, - 514, 514, 514, 258, 366, 367, 367, 367, 367, 367, - 367, 367, 367, 367, 433, 433, 433, 433, 433, 433, - 433, 433, 435, 478, 435, 435, 435, 435, 435, 435, - 435, 435, 514, 478, 257, 256, 240, 239, 367, 375, - 238, 375, 375, 375, 375, 375, 375, 375, 375, 375, + 482, 329, 482, 482, 482, 482, 482, 482, 377, 378, + 378, 378, 378, 378, 378, 378, 378, 378, 480, 476, + 480, 480, 480, 480, 480, 480, 480, 480, 481, 529, + 481, 481, 481, 481, 481, 481, 481, 481, 328, 529, + 320, 319, 315, 378, 386, 574, 386, 386, 386, 386, + 386, 386, 386, 386, 386, 389, 531, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 531, 574, 585, 389, + 389, 389, 389, 389, 487, 487, 487, 487, 487, 487, + 487, 487, 493, 493, 493, 493, 493, 493, 493, 493, + 585, 314, 389, 389, 389, 389, 389, 389, 392, 392, - 378, 520, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 520, 237, 235, 378, 378, 378, 378, 378, 436, - 521, 436, 436, 436, 436, 436, 436, 436, 436, 502, - 521, 502, 502, 502, 234, 225, 378, 378, 378, 378, - 378, 378, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 224, 223, 222, 381, 381, 381, 381, 381, 437, - 221, 437, 437, 437, 437, 437, 437, 468, 468, 468, - 468, 468, 468, 468, 468, 502, 381, 381, 381, 381, - 381, 381, 392, 392, 392, 392, 392, 392, 392, 392, - 392, 392, 392, 395, 395, 395, 395, 395, 395, 395, + 392, 392, 392, 392, 392, 392, 392, 311, 310, 291, + 392, 392, 392, 392, 392, 494, 494, 494, 494, 494, + 494, 496, 566, 496, 496, 496, 496, 496, 496, 496, + 496, 290, 566, 392, 392, 392, 392, 392, 392, 403, + 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, + 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, + 289, 288, 278, 277, 406, 406, 406, 406, 406, 497, + 497, 497, 497, 497, 497, 497, 497, 497, 498, 498, + 498, 498, 498, 498, 498, 498, 498, 406, 406, 406, + 406, 406, 406, 423, 276, 423, 423, 423, 423, 423, - 395, 395, 395, 440, 440, 456, 456, 395, 395, 395, - 395, 395, 219, 440, 218, 567, 567, 523, 456, 461, - 461, 461, 461, 461, 461, 461, 461, 523, 567, 395, - 395, 395, 395, 395, 395, 412, 558, 412, 412, 412, - 412, 412, 412, 412, 412, 217, 558, 216, 215, 214, - 470, 461, 470, 470, 470, 470, 470, 470, 470, 470, - 472, 211, 472, 472, 472, 472, 472, 472, 203, 412, - 413, 202, 413, 413, 413, 413, 413, 413, 413, 413, - 471, 199, 471, 471, 471, 471, 471, 471, 471, 471, - 477, 477, 477, 477, 477, 477, 477, 477, 529, 529, + 423, 423, 423, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 512, 274, 512, 512, 512, 575, 575, 513, + 273, 513, 513, 513, 272, 271, 270, 269, 423, 424, + 575, 424, 424, 424, 424, 424, 424, 424, 424, 514, + 268, 514, 514, 514, 515, 267, 515, 515, 515, 251, + 518, 250, 518, 518, 518, 249, 248, 246, 245, 512, + 236, 235, 234, 233, 424, 425, 513, 425, 425, 425, + 425, 425, 425, 425, 425, 516, 232, 229, 516, 516, + 516, 516, 516, 516, 516, 516, 514, 227, 226, 225, + 224, 515, 223, 220, 212, 517, 517, 518, 211, 517, - 529, 529, 529, 529, 413, 414, 198, 414, 414, 414, - 414, 414, 414, 414, 414, 483, 483, 483, 483, 483, - 483, 483, 483, 486, 191, 486, 486, 486, 486, 486, - 486, 486, 486, 588, 588, 588, 588, 588, 588, 414, - 415, 190, 415, 415, 415, 415, 415, 415, 415, 415, - 487, 487, 487, 487, 487, 487, 487, 487, 487, 488, - 488, 488, 488, 488, 488, 488, 488, 488, 503, 184, - 503, 503, 503, 181, 415, 425, 180, 425, 425, 425, - 425, 425, 425, 425, 425, 425, 428, 179, 428, 428, - 428, 428, 428, 428, 428, 428, 428, 178, 177, 175, + 425, 426, 208, 426, 426, 426, 426, 426, 426, 426, + 426, 517, 517, 517, 519, 519, 207, 523, 519, 523, + 523, 523, 523, 523, 523, 523, 523, 200, 199, 193, + 519, 519, 519, 190, 189, 188, 426, 436, 187, 436, + 436, 436, 436, 436, 436, 436, 436, 436, 439, 186, + 439, 439, 439, 439, 439, 439, 439, 439, 439, 184, + 183, 182, 439, 439, 439, 439, 439, 524, 181, 524, + 524, 524, 524, 524, 524, 524, 524, 530, 530, 530, + 530, 530, 530, 530, 530, 439, 439, 439, 439, 439, + 439, 442, 442, 442, 442, 442, 442, 442, 442, 442, - 428, 428, 428, 428, 428, 489, 489, 489, 489, 489, - 489, 489, 489, 489, 503, 504, 174, 504, 504, 504, - 173, 172, 428, 428, 428, 428, 428, 428, 431, 431, - 431, 431, 431, 431, 431, 431, 431, 171, 170, 169, - 431, 431, 431, 431, 431, 505, 168, 505, 505, 505, - 506, 163, 162, 506, 506, 506, 506, 506, 506, 506, - 506, 504, 431, 431, 431, 431, 431, 431, 443, 443, - 443, 443, 443, 443, 443, 443, 443, 443, 463, 152, - 463, 463, 463, 463, 463, 463, 463, 463, 507, 507, - 151, 505, 507, 508, 150, 508, 508, 508, 146, 145, + 180, 179, 178, 442, 442, 442, 442, 442, 525, 177, + 525, 525, 525, 525, 525, 525, 525, 525, 536, 536, + 536, 536, 536, 536, 536, 536, 442, 442, 442, 442, + 442, 442, 454, 454, 454, 454, 454, 454, 454, 454, + 454, 454, 474, 176, 474, 474, 474, 474, 474, 474, + 474, 474, 537, 537, 537, 537, 537, 537, 538, 175, + 538, 538, 538, 538, 538, 538, 538, 538, 540, 540, + 540, 540, 540, 540, 540, 540, 540, 474, 475, 169, + 475, 475, 475, 475, 475, 475, 475, 475, 541, 541, + 541, 541, 541, 541, 541, 541, 541, 542, 542, 542, - 143, 139, 132, 128, 507, 507, 507, 509, 509, 126, - 124, 509, 463, 464, 116, 464, 464, 464, 464, 464, - 464, 464, 464, 509, 509, 509, 513, 513, 513, 513, - 513, 513, 513, 513, 115, 114, 113, 112, 107, 508, - 534, 534, 534, 534, 534, 534, 534, 464, 465, 106, - 465, 465, 465, 465, 465, 465, 465, 465, 513, 515, - 104, 515, 515, 515, 515, 515, 515, 515, 515, 516, - 103, 516, 516, 516, 516, 516, 516, 516, 516, 99, - 95, 94, 465, 466, 90, 466, 466, 466, 466, 466, - 466, 466, 466, 517, 87, 517, 517, 517, 517, 517, + 542, 542, 542, 542, 552, 552, 552, 552, 552, 552, + 552, 552, 168, 475, 489, 158, 489, 489, 489, 489, + 489, 489, 489, 489, 489, 492, 157, 492, 492, 492, + 492, 492, 492, 492, 492, 492, 156, 152, 151, 492, + 492, 492, 492, 492, 553, 553, 553, 553, 553, 553, + 553, 553, 554, 554, 554, 554, 554, 554, 554, 554, + 149, 145, 492, 492, 492, 492, 492, 492, 495, 495, + 495, 495, 495, 495, 495, 495, 138, 134, 132, 130, + 495, 495, 495, 495, 495, 554, 558, 122, 558, 558, + 558, 558, 558, 558, 559, 559, 559, 559, 559, 559, - 517, 517, 517, 522, 522, 522, 522, 522, 522, 522, - 522, 79, 78, 77, 75, 70, 63, 466, 479, 56, - 479, 479, 479, 479, 479, 479, 479, 479, 479, 482, - 51, 482, 482, 482, 482, 482, 482, 482, 482, 482, - 48, 47, 46, 482, 482, 482, 482, 482, 528, 528, - 528, 528, 528, 528, 528, 528, 532, 532, 532, 532, - 532, 532, 532, 532, 532, 482, 482, 482, 482, 482, - 482, 485, 485, 485, 485, 485, 485, 485, 485, 45, - 44, 38, 37, 485, 485, 485, 485, 485, 530, 36, - 530, 530, 530, 530, 530, 530, 530, 530, 35, 33, + 559, 559, 121, 495, 495, 495, 495, 495, 495, 520, + 120, 520, 520, 520, 520, 520, 520, 520, 520, 119, + 561, 558, 561, 561, 561, 561, 561, 561, 561, 561, + 562, 118, 562, 562, 562, 562, 562, 562, 562, 562, + 113, 112, 111, 110, 520, 521, 108, 521, 521, 521, + 521, 521, 521, 521, 521, 563, 107, 563, 563, 563, + 563, 563, 563, 569, 106, 569, 569, 569, 569, 569, + 569, 569, 569, 596, 596, 596, 596, 596, 596, 102, + 521, 522, 98, 522, 522, 522, 522, 522, 522, 522, + 522, 579, 579, 579, 579, 579, 579, 579, 579, 580, - 29, 23, 17, 15, 14, 485, 485, 485, 485, 485, - 485, 510, 13, 510, 510, 510, 510, 510, 510, 510, - 510, 533, 533, 533, 533, 533, 533, 533, 533, 533, - 544, 544, 544, 544, 544, 544, 544, 544, 0, 0, - 0, 0, 0, 0, 0, 510, 511, 0, 511, 511, - 511, 511, 511, 511, 511, 511, 545, 545, 545, 545, - 545, 545, 545, 545, 546, 546, 546, 546, 546, 546, - 546, 546, 550, 0, 550, 550, 550, 550, 550, 550, - 511, 512, 0, 512, 512, 512, 512, 512, 512, 512, - 512, 0, 0, 0, 0, 0, 546, 551, 551, 551, + 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, + 581, 581, 581, 581, 581, 97, 522, 532, 93, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 535, 90, + 535, 535, 535, 535, 535, 535, 535, 535, 82, 81, + 80, 78, 535, 535, 535, 535, 535, 73, 588, 588, + 588, 588, 588, 588, 588, 588, 592, 66, 592, 592, + 592, 592, 592, 592, 59, 535, 535, 535, 535, 535, + 535, 556, 54, 556, 556, 556, 556, 556, 556, 556, + 556, 588, 594, 594, 594, 594, 594, 594, 594, 594, + 51, 592, 595, 595, 595, 595, 595, 595, 595, 595, - 551, 551, 551, 551, 551, 553, 550, 553, 553, 553, - 553, 553, 553, 553, 553, 512, 524, 0, 524, 524, - 524, 524, 524, 524, 524, 524, 524, 527, 0, 527, - 527, 527, 527, 527, 527, 527, 527, 0, 0, 0, - 0, 527, 527, 527, 527, 527, 554, 0, 554, 554, - 554, 554, 554, 554, 554, 554, 597, 597, 597, 597, - 597, 597, 0, 527, 527, 527, 527, 527, 527, 548, - 0, 548, 548, 548, 548, 548, 548, 548, 548, 555, - 0, 555, 555, 555, 555, 555, 555, 561, 597, 561, - 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, + 49, 41, 40, 39, 38, 37, 556, 557, 36, 557, + 557, 557, 557, 557, 557, 557, 557, 33, 29, 23, + 600, 600, 600, 600, 600, 600, 600, 600, 601, 601, + 601, 601, 601, 601, 601, 601, 17, 15, 14, 13, + 0, 0, 557, 576, 0, 576, 576, 576, 576, 576, + 576, 576, 576, 600, 0, 0, 0, 0, 0, 0, + 0, 601, 602, 602, 602, 602, 602, 602, 602, 602, + 604, 604, 604, 604, 604, 604, 604, 604, 576, 577, + 0, 577, 577, 577, 577, 577, 577, 577, 577, 0, + 0, 0, 0, 0, 0, 602, 605, 605, 605, 605, - 0, 0, 0, 548, 549, 0, 549, 549, 549, 549, - 549, 549, 549, 549, 571, 571, 571, 571, 571, 571, - 571, 571, 572, 572, 572, 572, 572, 572, 572, 572, - 573, 573, 573, 573, 573, 573, 573, 573, 549, 568, - 0, 568, 568, 568, 568, 568, 568, 568, 568, 0, - 0, 0, 580, 580, 580, 580, 580, 580, 580, 580, - 584, 0, 584, 584, 584, 584, 584, 584, 0, 0, - 0, 0, 0, 568, 569, 0, 569, 569, 569, 569, - 569, 569, 569, 569, 580, 586, 586, 586, 586, 586, - 586, 586, 586, 0, 584, 587, 587, 587, 587, 587, + 605, 605, 0, 604, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 577, 578, 0, 578, 578, 578, + 578, 578, 578, 578, 578, 0, 0, 0, 0, 605, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 578, 590, 0, 590, 590, 590, 590, 590, 590, 590, + 590, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 590, 591, 0, 591, + 591, 591, 591, 591, 591, 591, 591, 0, 0, 0, - 587, 587, 587, 0, 0, 0, 0, 0, 569, 570, - 0, 570, 570, 570, 570, 570, 570, 570, 570, 0, - 0, 0, 592, 592, 592, 592, 592, 592, 592, 592, - 593, 593, 593, 593, 593, 593, 593, 593, 0, 0, - 0, 0, 0, 570, 582, 0, 582, 582, 582, 582, - 582, 582, 582, 582, 592, 0, 0, 0, 0, 0, - 0, 0, 593, 594, 594, 594, 594, 594, 594, 594, - 594, 0, 0, 0, 0, 0, 0, 0, 582, 583, - 0, 583, 583, 583, 583, 583, 583, 583, 583, 0, - 0, 0, 0, 0, 0, 594, 596, 596, 596, 596, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 591, 607, 607, 607, 607, 607, 607, 607, + 607, 607, 607, 607, 607, 607, 607, 607, 607, 608, + 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, + 608, 608, 608, 608, 608, 609, 609, 609, 609, 609, + 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, + 609, 610, 610, 610, 610, 610, 610, 610, 610, 610, + 610, 610, 610, 610, 610, 610, 610, 611, 0, 0, + 0, 0, 0, 0, 0, 611, 611, 611, 0, 0, - 596, 596, 596, 596, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 583, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 596, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 601, 601, 601, 601, 601, 601, 601, 601, 601, - 601, 601, 601, 601, 601, 601, 601, 602, 602, 602, - 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, - 602, 602, 602, 603, 0, 0, 0, 0, 0, 0, + 611, 611, 611, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 613, + 0, 0, 0, 0, 613, 0, 0, 613, 613, 613, + 613, 0, 613, 613, 613, 614, 0, 0, 0, 0, + 0, 0, 0, 614, 614, 614, 0, 0, 614, 614, + 614, 615, 0, 0, 615, 615, 0, 615, 0, 615, + 615, 615, 0, 0, 615, 615, 615, 616, 616, 0, + 0, 0, 616, 617, 0, 0, 617, 617, 0, 617, + 0, 617, 617, 617, 0, 0, 617, 617, 617, 618, + 0, 0, 618, 618, 0, 618, 0, 618, 618, 618, - 0, 603, 603, 603, 0, 0, 603, 603, 603, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 605, 0, 0, 0, 0, - 605, 0, 0, 605, 605, 605, 605, 0, 605, 605, - 605, 606, 0, 0, 0, 0, 0, 0, 0, 606, - 606, 606, 0, 0, 606, 606, 606, 607, 0, 0, - 607, 607, 0, 607, 0, 607, 607, 607, 0, 0, - 607, 607, 607, 608, 608, 0, 0, 0, 608, 609, - 0, 0, 609, 609, 0, 609, 0, 609, 609, 609, - 0, 0, 609, 609, 609, 610, 0, 0, 610, 610, + 0, 618, 0, 618, 618, 620, 0, 0, 620, 0, + 0, 620, 0, 620, 620, 620, 620, 0, 620, 620, + 620, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 622, 622, 0, + 622, 0, 622, 622, 622, 622, 622, 622, 622, 622, + 622, 622, 622, 623, 623, 623, 623, 623, 623, 623, + 623, 623, 623, 623, 623, 623, 623, 623, 623, 624, + 624, 0, 624, 624, 624, 624, 624, 624, 624, 624, + 624, 624, 624, 624, 624, 625, 0, 0, 0, 0, + 625, 0, 0, 625, 625, 625, 0, 0, 625, 625, - 0, 610, 0, 610, 610, 610, 0, 610, 0, 610, - 610, 612, 0, 0, 612, 0, 0, 612, 0, 612, - 612, 612, 612, 0, 612, 612, 612, 613, 613, 613, - 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, - 613, 613, 613, 614, 614, 0, 614, 0, 614, 614, - 614, 614, 614, 614, 614, 614, 614, 614, 614, 615, - 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, - 615, 615, 615, 615, 615, 616, 616, 0, 616, 616, - 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, - 616, 617, 0, 0, 0, 0, 617, 0, 0, 617, + 625, 626, 0, 0, 626, 626, 0, 626, 0, 626, + 626, 626, 0, 0, 626, 626, 626, 627, 627, 0, + 0, 0, 627, 628, 628, 628, 0, 0, 0, 628, + 629, 0, 0, 629, 629, 0, 629, 0, 629, 629, + 629, 0, 0, 629, 629, 629, 630, 630, 630, 630, + 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, + 630, 630, 631, 631, 0, 0, 0, 631, 632, 632, + 632, 0, 0, 0, 632, 633, 633, 0, 0, 0, + 633, 634, 634, 0, 0, 0, 634, 635, 635, 0, + 0, 0, 635, 636, 636, 636, 0, 0, 0, 636, - 617, 617, 0, 0, 617, 617, 617, 618, 0, 0, - 618, 618, 0, 618, 0, 618, 618, 618, 0, 0, - 618, 618, 618, 619, 619, 0, 0, 0, 619, 620, - 620, 620, 0, 0, 0, 620, 621, 0, 0, 621, - 621, 0, 621, 0, 621, 621, 621, 0, 0, 621, - 621, 621, 622, 622, 622, 622, 622, 622, 622, 622, - 622, 622, 622, 622, 622, 622, 622, 622, 623, 623, - 0, 0, 0, 623, 624, 624, 624, 0, 0, 0, - 624, 625, 625, 0, 0, 0, 625, 626, 626, 0, - 0, 0, 626, 627, 627, 0, 0, 0, 627, 628, - - 628, 628, 0, 0, 0, 628, 629, 629, 0, 0, - 0, 629, 630, 630, 0, 0, 0, 630, 631, 631, - 0, 0, 0, 631, 632, 632, 632, 0, 0, 0, - 632, 633, 633, 633, 633, 0, 0, 0, 633, 634, - 634, 0, 0, 0, 634, 635, 635, 0, 0, 0, - 635, 636, 636, 0, 0, 0, 636, 637, 637, 637, - 0, 0, 0, 637, 638, 638, 638, 638, 0, 0, + 637, 637, 0, 0, 0, 637, 638, 638, 0, 0, 0, 638, 639, 639, 0, 0, 0, 639, 640, 640, - 0, 0, 0, 640, 641, 641, 641, 0, 0, 0, - 641, 642, 642, 642, 642, 0, 0, 0, 642, 643, + 640, 0, 0, 0, 640, 641, 641, 641, 641, 0, + 0, 0, 641, 642, 642, 0, 0, 0, 642, 643, + 643, 0, 0, 0, 643, 644, 644, 0, 0, 0, + 644, 645, 645, 645, 0, 0, 0, 645, 646, 646, + 646, 646, 0, 0, 0, 646, 647, 647, 0, 0, + 0, 647, 648, 648, 0, 0, 0, 648, 649, 649, + 649, 0, 0, 0, 649, 650, 650, 650, 650, 0, + 0, 0, 650, 651, 651, 0, 0, 0, 651, 652, - 643, 0, 0, 0, 643, 644, 0, 644, 644, 0, - 0, 0, 644, 645, 645, 645, 0, 0, 0, 645, - 646, 646, 646, 646, 0, 0, 0, 646, 647, 647, - 0, 0, 0, 647, 648, 0, 648, 648, 0, 0, - 0, 648, 649, 649, 649, 0, 0, 0, 649, 650, - 650, 650, 0, 0, 0, 0, 650, 651, 651, 0, - 651, 651, 651, 0, 0, 651, 651, 651, 0, 0, - 651, 651, 651, 652, 652, 0, 652, 652, 652, 0, - 0, 652, 652, 652, 0, 0, 652, 652, 652, 653, - 653, 0, 0, 0, 653, 654, 0, 654, 654, 0, + 0, 652, 652, 0, 0, 0, 652, 653, 653, 653, + 0, 0, 0, 653, 654, 654, 654, 654, 0, 0, + 0, 654, 655, 655, 0, 0, 0, 655, 656, 0, + 656, 656, 0, 0, 0, 656, 657, 657, 657, 0, + 0, 0, 657, 658, 658, 658, 0, 0, 0, 0, + 658, 659, 659, 0, 659, 659, 659, 0, 0, 659, + 659, 659, 0, 0, 659, 659, 659, 660, 660, 0, + 660, 660, 660, 0, 0, 660, 660, 660, 0, 0, + 660, 660, 660, 661, 661, 0, 0, 0, 661, 662, + 0, 662, 662, 0, 0, 0, 662, 663, 663, 0, - 0, 0, 654, 655, 655, 0, 0, 0, 0, 655, - 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, - 656, 656, 656, 656, 656, 656, 657, 657, 0, 0, - 0, 657, 658, 0, 658, 658, 0, 0, 0, 658, - 659, 659, 0, 0, 0, 659, 660, 0, 660, 0, - 0, 0, 0, 660, 662, 662, 662, 662, 662, 662, - 662, 662, 662, 662, 662, 662, 662, 662, 662, 662, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, + 0, 0, 0, 663, 664, 664, 664, 664, 664, 664, + 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, + 665, 665, 0, 0, 0, 665, 666, 0, 666, 666, + 0, 0, 0, 666, 667, 667, 0, 0, 0, 667, + 668, 0, 668, 0, 0, 0, 0, 668, 670, 670, + 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, + 670, 670, 670, 670, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598 + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 606 } ; static yy_state_type yy_last_accepting_state; @@ -1508,7 +1509,7 @@ #define INSTR 5 -#line 1511 "lex.yy.c" +#line 1512 "lex.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1664,7 +1665,7 @@ #line 120 "toke.l" -#line 1667 "lex.yy.c" +#line 1668 "lex.yy.c" if ( yy_init ) { @@ -1716,13 +1717,13 @@ 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 >= 599 ) + if ( yy_current_state >= 607 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 3671 ); + while ( yy_base[yy_current_state] != 3665 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -2216,30 +2217,49 @@ YY_RULE_SETUP #line 471 "toke.l" { - if (strcmp(yytext, "ALL") == 0) { - LEXTRACE("ALL "); - return ALL; - } + LEXTRACE("ALL "); + return ALL; + + } + YY_BREAK +case 40: +YY_RULE_SETUP +#line 477 "toke.l" +{ #ifdef HAVE_SELINUX - /* XXX - restrict type/role to initial state */ - if (strcmp(yytext, "TYPE") == 0) { - LEXTRACE("TYPE "); - return TYPE; - } - if (strcmp(yytext, "ROLE") == 0) { - LEXTRACE("ROLE "); - return ROLE; - } -#endif /* HAVE_SELINUX */ + LEXTRACE("ROLE "); + return ROLE; +#else + goto got_alias; +#endif + } + YY_BREAK +case 41: +YY_RULE_SETUP +#line 486 "toke.l" +{ +#ifdef HAVE_SELINUX + LEXTRACE("TYPE "); + return TYPE; +#else + goto got_alias; +#endif + } + YY_BREAK +case 42: +YY_RULE_SETUP +#line 495 "toke.l" +{ + got_alias: if (!fill(yytext, yyleng)) yyterminate(); LEXTRACE("ALIAS "); return ALIAS; } YY_BREAK -case 40: +case 43: YY_RULE_SETUP -#line 493 "toke.l" +#line 503 "toke.l" { /* no command args allowed for Defaults!/path */ if (!fill_cmnd(yytext, yyleng)) @@ -2248,9 +2268,9 @@ return COMMAND; } YY_BREAK -case 41: +case 44: YY_RULE_SETUP -#line 501 "toke.l" +#line 511 "toke.l" { BEGIN GOTCMND; LEXTRACE("COMMAND "); @@ -2258,9 +2278,9 @@ yyterminate(); } /* sudo -e */ YY_BREAK -case 42: +case 45: YY_RULE_SETUP -#line 508 "toke.l" +#line 518 "toke.l" { /* directories can't have args... */ if (yytext[yyleng - 1] == '/') { @@ -2276,9 +2296,9 @@ } } /* a pathname */ YY_BREAK -case 43: +case 46: YY_RULE_SETUP -#line 523 "toke.l" +#line 533 "toke.l" { LEXTRACE("BEGINSTR "); yylval.string = NULL; @@ -2286,9 +2306,9 @@ BEGIN INSTR; } YY_BREAK -case 44: +case 47: YY_RULE_SETUP -#line 530 "toke.l" +#line 540 "toke.l" { /* a word */ if (!fill(yytext, yyleng)) @@ -2297,49 +2317,49 @@ return WORD; } YY_BREAK -case 45: +case 48: YY_RULE_SETUP -#line 538 "toke.l" +#line 548 "toke.l" { LEXTRACE("( "); return '('; } YY_BREAK -case 46: +case 49: YY_RULE_SETUP -#line 543 "toke.l" +#line 553 "toke.l" { LEXTRACE(") "); return ')'; } YY_BREAK -case 47: +case 50: YY_RULE_SETUP -#line 548 "toke.l" +#line 558 "toke.l" { LEXTRACE(", "); return ','; } /* return ',' */ YY_BREAK -case 48: +case 51: YY_RULE_SETUP -#line 553 "toke.l" +#line 563 "toke.l" { LEXTRACE("= "); return '='; } /* return '=' */ YY_BREAK -case 49: +case 52: YY_RULE_SETUP -#line 558 "toke.l" +#line 568 "toke.l" { LEXTRACE(": "); return ':'; } /* return ':' */ YY_BREAK -case 50: +case 53: YY_RULE_SETUP -#line 563 "toke.l" +#line 573 "toke.l" { if (yyleng & 1) { LEXTRACE("!"); @@ -2347,9 +2367,9 @@ } } YY_BREAK -case 51: +case 54: YY_RULE_SETUP -#line 570 "toke.l" +#line 580 "toke.l" { if (YY_START == INSTR) { LEXTRACE("ERROR "); @@ -2362,25 +2382,25 @@ return COMMENT; } /* return newline */ YY_BREAK -case 52: +case 55: YY_RULE_SETUP -#line 582 "toke.l" +#line 592 "toke.l" { /* throw away space/tabs */ sawspace = TRUE; /* but remember for fill_args */ } YY_BREAK -case 53: +case 56: YY_RULE_SETUP -#line 586 "toke.l" +#line 596 "toke.l" { sawspace = TRUE; /* remember for fill_args */ ++sudolineno; continued = TRUE; } /* throw away EOL after \ */ YY_BREAK -case 54: +case 57: YY_RULE_SETUP -#line 592 "toke.l" +#line 602 "toke.l" { BEGIN INITIAL; ++sudolineno; @@ -2389,9 +2409,9 @@ return COMMENT; } /* comment, not uid/gid */ YY_BREAK -case 55: +case 58: YY_RULE_SETUP -#line 600 "toke.l" +#line 610 "toke.l" { LEXTRACE("ERROR "); return ERROR; @@ -2403,7 +2423,7 @@ case YY_STATE_EOF(STARTDEFS): case YY_STATE_EOF(INDEFS): case YY_STATE_EOF(INSTR): -#line 605 "toke.l" +#line 615 "toke.l" { if (YY_START != INITIAL) { BEGIN INITIAL; @@ -2414,12 +2434,12 @@ yyterminate(); } YY_BREAK -case 56: +case 59: YY_RULE_SETUP -#line 615 "toke.l" +#line 625 "toke.l" ECHO; YY_BREAK -#line 2422 "lex.yy.c" +#line 2442 "lex.yy.c" case YY_END_OF_BUFFER: { @@ -2710,7 +2730,7 @@ 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 >= 599 ) + if ( yy_current_state >= 607 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2745,11 +2765,11 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 599 ) + if ( yy_current_state >= 607 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 598); + yy_is_jam = (yy_current_state == 606); return yy_is_jam ? 0 : yy_current_state; } @@ -3310,7 +3330,7 @@ return 0; } #endif -#line 615 "toke.l" +#line 625 "toke.l" struct path_list { char *path; diff -urNa sudo-1.7.6p1/toke.l sudo-1.7.6p2/toke.l --- sudo-1.7.6p1/toke.l Thu Apr 14 15:09:06 2011 +++ sudo-1.7.6p2/toke.l Fri Apr 29 16:07:06 2011 @@ -439,7 +439,7 @@ return NTWKADDR; } -{IPV4ADDR}\/([12][0-9]*|3[0-2]*) { +{IPV4ADDR}\/([12]?[0-9]|3[0-2]) { if (!fill(yytext, yyleng)) yyterminate(); LEXTRACE("NTWKADDR "); @@ -468,22 +468,32 @@ return NTWKADDR; } -[[:upper:]][[:upper:][:digit:]_]* { - if (strcmp(yytext, "ALL") == 0) { - LEXTRACE("ALL "); - return ALL; - } +ALL { + LEXTRACE("ALL "); + return ALL; + + } + +ROLE { #ifdef HAVE_SELINUX - /* XXX - restrict type/role to initial state */ - if (strcmp(yytext, "TYPE") == 0) { - LEXTRACE("TYPE "); - return TYPE; - } - if (strcmp(yytext, "ROLE") == 0) { - LEXTRACE("ROLE "); - return ROLE; - } -#endif /* HAVE_SELINUX */ + LEXTRACE("ROLE "); + return ROLE; +#else + goto got_alias; +#endif + } + +TYPE { +#ifdef HAVE_SELINUX + LEXTRACE("TYPE "); + return TYPE; +#else + goto got_alias; +#endif + } + +[[:upper:]][[:upper:][:digit:]_]* { + got_alias: if (!fill(yytext, yyleng)) yyterminate(); LEXTRACE("ALIAS ");