From: Zygo Blaxell Date: Mon, 2 Mar 2009 05:42:38 +0000 (-0500) Subject: http://ftp.x.org/contrib/applications/xscreensaver-3.19.tar.gz X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=commitdiff_plain;h=c596d1306f5f92f7eab76224d3b049980a14adcb ftp.x.org/contrib/applications/xscreensaver-3.19.tar.gz -rw-r--r-- 1 zblaxell zblaxell 1191660 Oct 29 1999 xscreensaver-3.19.tar.gz 67aaae2b935e2712ac8b23b8d9e31e2d0b5e9db1 xscreensaver-3.19.tar.gz --- diff --git a/README b/README index 9fe342bd..6555321f 100644 --- a/README +++ b/README @@ -77,6 +77,18 @@ http://www.jwz.org/xscreensaver/. ============ +Changes since 3.18: * Fixed gcc dependencies in `bumps' and `ccurve'. + * New hack, `extrusion'. + * Some of the web sites that `webcollage' was using as + its sources changed formats; tweaked it to understand + the current layouts. + * Added typeahead in the password dialog: if the screen + is locked, and you unlock it by typing a character, + that key will be automatically inserted in the + password dialog (unless it is Return, Enter, Space, + or a non-printing key like Shift.) + * Made `xmatrix' take a `-small' option, since some + folks with tiny screens prefer a smaller font. Changes since 3.17: * New versions of `shadebobs', `lmorph', and `distort'. * Added `ccurve', `blaster', and `bumps' hacks. * Replaced `forest' hack with a rewritten version. diff --git a/README.debugging b/README.debugging index 31364dbf..006fb5e3 100644 --- a/README.debugging +++ b/README.debugging @@ -81,7 +81,7 @@ RUN-TIME PROBLEMS: * Is the problem in the driver (`xscreensaver'), the GUI (`xscreensaver-demo'), or in the graphics hacks? - * If the problem is in the GUI, was the it built using + * If the problem is in the GUI, was it built using Motif, Lesstif, or Athena? Which version? * If the problem is in one (or more) of the hacks, which ones? @@ -118,8 +118,18 @@ RUN-TIME PROBLEMS: where If the bottom few lines of the output don't include the functions - `main_loop()' and `main()', then something's wrong: are you sure - the core file came from that program? + `main_loop()' and `main()', then something went wrong, and the + core file is bogus. If the lines it prints out contain only + question marks, then the core file is bogus. Are you sure the + core file came from that program? Did you compile with -g, as + explained above? If you don't compile with -g, the core file + won't have any information in it. + + Never ever ever mail me (or anyone) a core file. They are huge, + and are only meaningful on the machine that generated them, with + the exact executable that generated them, neither of which anyone + but you has access to. Don't mail me a core file unless you're + also planning on mailing me your computer. * If it gets an X error, where did it come from? Run xscreensaver with the `-sync' command-line option. When `-sync' diff --git a/config.h.in b/config.h.in index 318e2bfc..78291f46 100644 --- a/config.h.in +++ b/config.h.in @@ -159,6 +159,10 @@ */ #undef HAVE_GLBINDTEXTURE +/* Define this if you have the -lgle and -lmatrix libraries (GL extrusion.) + */ +#undef HAVE_GLE + /* Define this if the `xscreensaver' process itself (the driver process) should be linked against GL. Most systems won't want this (in particular, if you're using Linux and/or Mesa, you don't want this) but SGI systems diff --git a/configure b/configure index a1d4d6a9..135f8a3d 100755 --- a/configure +++ b/configure @@ -80,6 +80,9 @@ ac_help="$ac_help Graphics options: --with-gl Build those demos which depend on OpenGL." +ac_help="$ac_help + --with-gle Build those demos which depend on GLE + (the OpenGL "extrusion" library.)" ac_help="$ac_help --with-xpm Include support for XPM files in some demos." ac_help="$ac_help @@ -786,7 +789,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:801: checking host system type" >&5 +echo "configure:804: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -809,7 +812,7 @@ echo "$ac_t""$host" 1>&6 # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:824: checking for $ac_word" >&5 +echo "configure:827: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -839,7 +842,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:854: checking for $ac_word" >&5 +echo "configure:857: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -890,7 +893,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:905: checking for $ac_word" >&5 +echo "configure:908: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -922,7 +925,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:937: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:940: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -933,12 +936,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 948 "configure" +#line 951 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:956: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -964,12 +967,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:979: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:982: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:984: checking whether we are using GNU C" >&5 +echo "configure:987: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -978,7 +981,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:993: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:996: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -997,7 +1000,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1012: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1015: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1031,7 +1034,7 @@ fi if test -z "$GCC"; then echo $ac_n "checking how to request ANSI compilation""... $ac_c" 1>&6 -echo "configure:1046: checking how to request ANSI compilation" >&5 +echo "configure:1049: checking how to request ANSI compilation" >&5 case "$host" in *-hpux* ) echo "$ac_t""HPUX: adding -Ae" 1>&6 @@ -1054,16 +1057,16 @@ echo "configure:1046: checking how to request ANSI compilation" >&5 fi echo $ac_n "checking whether the compiler works on ANSI C""... $ac_c" 1>&6 -echo "configure:1069: checking whether the compiler works on ANSI C" >&5 +echo "configure:1072: checking whether the compiler works on ANSI C" >&5 if test "$cross_compiling" = yes; then { echo "configure: error: Couldn't build even a trivial ANSI C program: check CC." 1>&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 else @@ -1096,7 +1099,7 @@ fi fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1111: checking how to run the C preprocessor" >&5 +echo "configure:1114: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1111,13 +1114,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1132: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1135: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1128,13 +1131,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1149: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1152: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1145,13 +1148,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1166: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1169: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1176,12 +1179,12 @@ fi echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:1191: checking for working const" >&5 +echo "configure:1194: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -1251,21 +1254,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:1266: checking for inline" >&5 +echo "configure:1269: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -1304,7 +1307,7 @@ esac # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1319: checking for a BSD compatible install" >&5 +echo "configure:1322: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1357,7 +1360,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether \"\${INSTALL} -d\" creates intermediate directories""... $ac_c" 1>&6 -echo "configure:1372: checking whether \"\${INSTALL} -d\" creates intermediate directories" >&5 +echo "configure:1375: checking whether \"\${INSTALL} -d\" creates intermediate directories" >&5 if eval "test \"`echo '$''{'ac_cv_install_d_creates_dirs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1379,7 +1382,7 @@ echo "$ac_t""$ac_cv_install_d_creates_dirs" 1>&6 if test "$ac_cv_install_d_creates_dirs" = no ; then echo $ac_n "checking whether \"mkdir -p\" creates intermediate directories""... $ac_c" 1>&6 -echo "configure:1394: checking whether \"mkdir -p\" creates intermediate directories" >&5 +echo "configure:1397: checking whether \"mkdir -p\" creates intermediate directories" >&5 if eval "test \"`echo '$''{'ac_cv_mkdir_p_creates_dirs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1410,7 +1413,7 @@ echo "$ac_t""$ac_cv_mkdir_p_creates_dirs" 1>&6 fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:1425: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:1428: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1439,12 +1442,12 @@ fi # random libc stuff echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1454: checking for ANSI C header files" >&5 +echo "configure:1457: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1452,7 +1455,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1467: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1470: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1469,7 +1472,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -1487,7 +1490,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -1508,7 +1511,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -1519,7 +1522,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:1534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -1546,17 +1549,17 @@ for ac_hdr in unistd.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1561: checking for $ac_hdr" >&5 +echo "configure:1564: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1571: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1574: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1583,12 +1586,12 @@ fi done echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:1598: checking for mode_t" >&5 +echo "configure:1601: checking for mode_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -1616,12 +1619,12 @@ EOF fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:1631: checking for pid_t" >&5 +echo "configure:1634: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -1649,12 +1652,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:1664: checking for size_t" >&5 +echo "configure:1667: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -1682,12 +1685,12 @@ EOF fi echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:1697: checking return type of signal handlers" >&5 +echo "configure:1700: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1704,7 +1707,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:1719: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -1723,12 +1726,12 @@ EOF echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:1738: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:1741: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1737,7 +1740,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:1752: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1755: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -1758,12 +1761,12 @@ EOF fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:1773: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:1776: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1779,7 +1782,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:1794: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1797: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -1804,12 +1807,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 -echo "configure:1819: checking for $ac_hdr that defines DIR" >&5 +echo "configure:1822: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> @@ -1817,7 +1820,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:1832: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1835: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -1842,7 +1845,7 @@ done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 -echo "configure:1857: checking for opendir in -ldir" >&5 +echo "configure:1860: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1850,7 +1853,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1883,7 +1886,7 @@ fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:1898: checking for opendir in -lx" >&5 +echo "configure:1901: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1891,7 +1894,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1925,12 +1928,12 @@ fi fi echo $ac_n "checking how to call gettimeofday""... $ac_c" 1>&6 -echo "configure:1940: checking how to call gettimeofday" >&5 +echo "configure:1943: checking how to call gettimeofday" >&5 if eval "test \"`echo '$''{'ac_cv_gettimeofday_args'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1939,7 +1942,7 @@ struct timeval tv; struct timezone tzp; gettimeofday(&tv, &tzp); ; return 0; } EOF -if { (eval echo configure:1954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1957: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_gettimeofday_args=2 else @@ -1947,7 +1950,7 @@ else cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext < #include @@ -1955,7 +1958,7 @@ int main() { struct timeval tv; gettimeofday(&tv); ; return 0; } EOF -if { (eval echo configure:1970: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_gettimeofday_args=1 else @@ -1994,12 +1997,12 @@ EOF for ac_func in select fcntl uname nice setpriority getcwd getwd putenv do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2009: checking for $ac_func" >&5 +echo "configure:2012: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2040: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2050,12 +2053,12 @@ done for ac_func in sigaction syslog realpath do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2065: checking for $ac_func" >&5 +echo "configure:2068: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2103,12 +2106,12 @@ fi done echo $ac_n "checking for struct icmp""... $ac_c" 1>&6 -echo "configure:2118: checking for struct icmp" >&5 +echo "configure:2121: checking for struct icmp" >&5 if eval "test \"`echo '$''{'ac_cv_have_icmp'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -2143,7 +2146,7 @@ struct icmp i; ip.ip_hl = 0; ; return 0; } EOF -if { (eval echo configure:2158: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2161: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_icmp=yes else @@ -2163,12 +2166,12 @@ EOF fi echo $ac_n "checking for struct icmphdr""... $ac_c" 1>&6 -echo "configure:2178: checking for struct icmphdr" >&5 +echo "configure:2181: checking for struct icmphdr" >&5 if eval "test \"`echo '$''{'ac_cv_have_icmphdr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -2203,7 +2206,7 @@ struct icmphdr i; ip.ip_hl = 0; ; return 0; } EOF -if { (eval echo configure:2218: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2221: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_icmphdr=yes else @@ -2226,17 +2229,17 @@ for ac_hdr in crypt.h sys/select.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2241: checking for $ac_hdr" >&5 +echo "configure:2244: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2251: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2254: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2262,13 +2265,12 @@ else fi done -PERL='' - for ac_prog in perl5 perl +for ac_prog in perl5 perl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2283: checking for $ac_word" >&5 +echo "configure:2285: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2307,7 +2309,7 @@ done PERL_VERSION=0 else echo $ac_n "checking perl version""... $ac_c" 1>&6 -echo "configure:2322: checking perl version" >&5 +echo "configure:2324: checking perl version" >&5 if eval "test \"`echo '$''{'ac_cv_perl_version'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2329,7 +2331,7 @@ fi # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 -echo "configure:2344: checking for X" >&5 +echo "configure:2346: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -2391,12 +2393,12 @@ if test "$ac_x_includes" = NO; then # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2411: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2413: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2465,14 +2467,14 @@ if test "$ac_x_libraries" = NO; then ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -2578,17 +2580,17 @@ else case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 -echo "configure:2593: checking whether -R must be followed by a space" >&5 +echo "configure:2595: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else @@ -2604,14 +2606,14 @@ rm -f conftest* else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else @@ -2643,7 +2645,7 @@ rm -f conftest* # libraries were built with DECnet support. And karl@cs.umb.edu says # the Alpha needs dnet_stub (dnet does not exist). echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:2658: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:2660: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2651,7 +2653,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldnet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2684,7 +2686,7 @@ fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 -echo "configure:2699: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:2701: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2692,7 +2694,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldnet_stub $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2732,12 +2734,12 @@ fi # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:2747: checking for gethostbyname" >&5 +echo "configure:2749: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -2781,7 +2783,7 @@ fi if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:2796: checking for gethostbyname in -lnsl" >&5 +echo "configure:2798: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2789,7 +2791,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2830,12 +2832,12 @@ fi # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:2845: checking for connect" >&5 +echo "configure:2847: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -2879,7 +2881,7 @@ fi if test $ac_cv_func_connect = no; then echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 -echo "configure:2894: checking for connect in -lsocket" >&5 +echo "configure:2896: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2887,7 +2889,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2922,12 +2924,12 @@ fi # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 -echo "configure:2937: checking for remove" >&5 +echo "configure:2939: checking for remove" >&5 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_remove=yes" else @@ -2971,7 +2973,7 @@ fi if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:2986: checking for remove in -lposix" >&5 +echo "configure:2988: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2979,7 +2981,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lposix $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3014,12 +3016,12 @@ fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:3029: checking for shmat" >&5 +echo "configure:3031: checking for shmat" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else @@ -3063,7 +3065,7 @@ fi if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:3078: checking for shmat in -lipc" >&5 +echo "configure:3080: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3071,7 +3073,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lipc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3099: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3115,7 +3117,7 @@ fi # libraries we check for below, so use a different variable. # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 -echo "configure:3130: checking for IceConnectionNumber in -lICE" >&5 +echo "configure:3132: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3123,7 +3125,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3165,7 +3167,7 @@ fi echo $ac_n "checking for X app-defaults directory""... $ac_c" 1>&6 -echo "configure:3180: checking for X app-defaults directory" >&5 +echo "configure:3182: checking for X app-defaults directory" >&5 if eval "test \"`echo '$''{'ac_cv_x_app_defaults'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3364,7 +3366,7 @@ case "$host" in # Some versions of Slowlaris Motif require -lgen. But not all. Why? echo $ac_n "checking for regcmp in -lgen""... $ac_c" 1>&6 -echo "configure:3379: checking for regcmp in -lgen" >&5 +echo "configure:3381: checking for regcmp in -lgen" >&5 ac_lib_var=`echo gen'_'regcmp | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3372,7 +3374,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgen $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3407,7 +3409,7 @@ fi ;; esac echo $ac_n "checking for XPointer""... $ac_c" 1>&6 -echo "configure:3422: checking for XPointer" >&5 +echo "configure:3424: checking for XPointer" >&5 if eval "test \"`echo '$''{'ac_cv_xpointer'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3418,14 +3420,14 @@ else fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" cat > conftest.$ac_ext < int main() { XPointer foo = (XPointer) 0; ; return 0; } EOF -if { (eval echo configure:3440: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3442: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_xpointer=yes else @@ -3463,17 +3465,17 @@ have_xmu=no CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "X11/Xmu/Error.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xmu/Error.h""... $ac_c" 1>&6 -echo "configure:3478: checking for X11/Xmu/Error.h" >&5 +echo "configure:3480: checking for X11/Xmu/Error.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3488: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3490: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3526,7 +3528,7 @@ if test "$have_xmu" = yes ; then case "$host" in *-sunos4*) echo $ac_n "checking for the SunOS 4.1.x _get_wmShellWidgetClass bug""... $ac_c" 1>&6 -echo "configure:3541: checking for the SunOS 4.1.x _get_wmShellWidgetClass bug" >&5 +echo "configure:3543: checking for the SunOS 4.1.x _get_wmShellWidgetClass bug" >&5 if eval "test \"`echo '$''{'ac_cv_sunos_xmu_bug'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3539,14 +3541,14 @@ else # with X libraries because we know it's SunOS. LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_sunos_xmu_bug=no else @@ -3562,21 +3564,21 @@ fi echo "$ac_t""$ac_cv_sunos_xmu_bug" 1>&6 if test "$ac_cv_sunos_xmu_bug" = yes ; then echo $ac_n "checking whether the compiler understands -static""... $ac_c" 1>&6 -echo "configure:3577: checking whether the compiler understands -static" >&5 +echo "configure:3579: checking whether the compiler understands -static" >&5 if eval "test \"`echo '$''{'ac_cv_ld_static'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -static" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_ld_static=yes else @@ -3659,7 +3661,7 @@ fi /*) echo $ac_n "checking for SGI SCREEN_SAVER headers""... $ac_c" 1>&6 -echo "configure:3674: checking for SGI SCREEN_SAVER headers" >&5 +echo "configure:3676: checking for SGI SCREEN_SAVER headers" >&5 d=$with_sgi/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -3669,7 +3671,7 @@ echo "configure:3674: checking for SGI SCREEN_SAVER headers" >&5 fi echo $ac_n "checking for SGI SCREEN_SAVER libs""... $ac_c" 1>&6 -echo "configure:3684: checking for SGI SCREEN_SAVER libs" >&5 +echo "configure:3686: checking for SGI SCREEN_SAVER libs" >&5 d=$with_sgi/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -3702,17 +3704,17 @@ if test "$with_sgi" = yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "X11/extensions/XScreenSaver.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/extensions/XScreenSaver.h""... $ac_c" 1>&6 -echo "configure:3717: checking for X11/extensions/XScreenSaver.h" >&5 +echo "configure:3719: checking for X11/extensions/XScreenSaver.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3727: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3729: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3769,7 +3771,7 @@ fi /*) echo $ac_n "checking for MIT-SCREEN-SAVER headers""... $ac_c" 1>&6 -echo "configure:3784: checking for MIT-SCREEN-SAVER headers" >&5 +echo "configure:3786: checking for MIT-SCREEN-SAVER headers" >&5 d=$with_mit/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -3779,7 +3781,7 @@ echo "configure:3784: checking for MIT-SCREEN-SAVER headers" >&5 fi echo $ac_n "checking for MIT-SCREEN-SAVER libs""... $ac_c" 1>&6 -echo "configure:3794: checking for MIT-SCREEN-SAVER libs" >&5 +echo "configure:3796: checking for MIT-SCREEN-SAVER libs" >&5 d=$with_mit/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -3812,17 +3814,17 @@ if test "$with_mit" = yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "X11/extensions/scrnsaver.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/extensions/scrnsaver.h""... $ac_c" 1>&6 -echo "configure:3827: checking for X11/extensions/scrnsaver.h" >&5 +echo "configure:3829: checking for X11/extensions/scrnsaver.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3837: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3839: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3867,7 +3869,7 @@ fi LDFLAGS="$LDFLAGS $X_LIBS" echo $ac_n "checking for XScreenSaverRegister in -lXext""... $ac_c" 1>&6 -echo "configure:3882: checking for XScreenSaverRegister in -lXext" >&5 +echo "configure:3884: checking for XScreenSaverRegister in -lXext" >&5 ac_lib_var=`echo Xext'_'XScreenSaverRegister | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3875,7 +3877,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXext -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3933,7 +3935,7 @@ fi LDFLAGS="$LDFLAGS $X_LIBS" echo $ac_n "checking for XScreenSaverRegister in -lXExExt""... $ac_c" 1>&6 -echo "configure:3948: checking for XScreenSaverRegister in -lXExExt" >&5 +echo "configure:3950: checking for XScreenSaverRegister in -lXExExt" >&5 ac_lib_var=`echo XExExt'_'XScreenSaverRegister | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3941,7 +3943,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXExExt -lX11 -lXext -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4002,7 +4004,7 @@ fi LDFLAGS="$LDFLAGS $X_LIBS" echo $ac_n "checking for XScreenSaverRegister in -lXss""... $ac_c" 1>&6 -echo "configure:4017: checking for XScreenSaverRegister in -lXss" >&5 +echo "configure:4019: checking for XScreenSaverRegister in -lXss" >&5 ac_lib_var=`echo Xss'_'XScreenSaverRegister | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4010,7 +4012,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXss -lX11 -lXext -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4038: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4087,7 +4089,7 @@ fi /*) echo $ac_n "checking for XIDLE headers""... $ac_c" 1>&6 -echo "configure:4102: checking for XIDLE headers" >&5 +echo "configure:4104: checking for XIDLE headers" >&5 d=$with_xidle/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -4097,7 +4099,7 @@ echo "configure:4102: checking for XIDLE headers" >&5 fi echo $ac_n "checking for XIDLE libs""... $ac_c" 1>&6 -echo "configure:4112: checking for XIDLE libs" >&5 +echo "configure:4114: checking for XIDLE libs" >&5 d=$with_xidle/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -4130,17 +4132,17 @@ if test "$with_xidle" = yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "X11/extensions/xidle.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/extensions/xidle.h""... $ac_c" 1>&6 -echo "configure:4145: checking for X11/extensions/xidle.h" >&5 +echo "configure:4147: checking for X11/extensions/xidle.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4155: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4157: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4196,7 +4198,7 @@ fi /*) echo $ac_n "checking for SGI-VIDEO-CONTROL headers""... $ac_c" 1>&6 -echo "configure:4211: checking for SGI-VIDEO-CONTROL headers" >&5 +echo "configure:4213: checking for SGI-VIDEO-CONTROL headers" >&5 d=$with_sgivc/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -4206,7 +4208,7 @@ echo "configure:4211: checking for SGI-VIDEO-CONTROL headers" >&5 fi echo $ac_n "checking for SGI-VIDEO-CONTROL libs""... $ac_c" 1>&6 -echo "configure:4221: checking for SGI-VIDEO-CONTROL libs" >&5 +echo "configure:4223: checking for SGI-VIDEO-CONTROL libs" >&5 d=$with_sgivc/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -4241,17 +4243,17 @@ if test "$with_sgivc" = yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "X11/extensions/XSGIvc.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/extensions/XSGIvc.h""... $ac_c" 1>&6 -echo "configure:4256: checking for X11/extensions/XSGIvc.h" >&5 +echo "configure:4258: checking for X11/extensions/XSGIvc.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4266: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4268: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4295,7 +4297,7 @@ fi LDFLAGS="$LDFLAGS $X_LIBS" echo $ac_n "checking for XSGIvcQueryGammaMap in -lXsgivc""... $ac_c" 1>&6 -echo "configure:4310: checking for XSGIvcQueryGammaMap in -lXsgivc" >&5 +echo "configure:4312: checking for XSGIvcQueryGammaMap in -lXsgivc" >&5 ac_lib_var=`echo Xsgivc'_'XSGIvcQueryGammaMap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4303,7 +4305,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXsgivc -lXext -lX11 $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4379,7 +4381,7 @@ fi /*) echo $ac_n "checking for DPMS headers""... $ac_c" 1>&6 -echo "configure:4394: checking for DPMS headers" >&5 +echo "configure:4396: checking for DPMS headers" >&5 d=$with_dpms/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -4389,7 +4391,7 @@ echo "configure:4394: checking for DPMS headers" >&5 fi echo $ac_n "checking for DPMS libs""... $ac_c" 1>&6 -echo "configure:4404: checking for DPMS libs" >&5 +echo "configure:4406: checking for DPMS libs" >&5 d=$with_dpms/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -4424,17 +4426,17 @@ if test "$with_dpms" = yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "X11/extensions/dpms.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/extensions/dpms.h""... $ac_c" 1>&6 -echo "configure:4439: checking for X11/extensions/dpms.h" >&5 +echo "configure:4441: checking for X11/extensions/dpms.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4449: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4451: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4478,7 +4480,7 @@ fi LDFLAGS="$LDFLAGS $X_LIBS" echo $ac_n "checking for DPMSInfo in -lXdpms""... $ac_c" 1>&6 -echo "configure:4493: checking for DPMSInfo in -lXdpms" >&5 +echo "configure:4495: checking for DPMSInfo in -lXdpms" >&5 ac_lib_var=`echo Xdpms'_'DPMSInfo | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4486,7 +4488,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXdpms -lXext -lX11 $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4514: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4562,7 +4564,7 @@ fi /*) echo $ac_n "checking for xf86vmode headers""... $ac_c" 1>&6 -echo "configure:4577: checking for xf86vmode headers" >&5 +echo "configure:4579: checking for xf86vmode headers" >&5 d=$with_xf86vmode/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -4572,7 +4574,7 @@ echo "configure:4577: checking for xf86vmode headers" >&5 fi echo $ac_n "checking for xf86vmode libs""... $ac_c" 1>&6 -echo "configure:4587: checking for xf86vmode libs" >&5 +echo "configure:4589: checking for xf86vmode libs" >&5 d=$with_xf86vmode/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -4607,17 +4609,17 @@ if test "$with_xf86vmode" = yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "X11/extensions/xf86vmode.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/extensions/xf86vmode.h""... $ac_c" 1>&6 -echo "configure:4622: checking for X11/extensions/xf86vmode.h" >&5 +echo "configure:4624: checking for X11/extensions/xf86vmode.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4632: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4634: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4661,7 +4663,7 @@ fi LDFLAGS="$LDFLAGS $X_LIBS" echo $ac_n "checking for XF86VidModeGetViewPort in -lXxf86vm""... $ac_c" 1>&6 -echo "configure:4676: checking for XF86VidModeGetViewPort in -lXxf86vm" >&5 +echo "configure:4678: checking for XF86VidModeGetViewPort in -lXxf86vm" >&5 ac_lib_var=`echo Xxf86vm'_'XF86VidModeGetViewPort | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4669,7 +4671,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXxf86vm -lXext -lX11 $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4697: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4734,7 +4736,7 @@ fi fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" cat > conftest.$ac_ext < EOF @@ -4772,7 +4774,7 @@ fi if test "$with_proc_interrupts" = yes; then echo $ac_n "checking whether /proc/interrupts contains keyboard data""... $ac_c" 1>&6 -echo "configure:4787: checking whether /proc/interrupts contains keyboard data" >&5 +echo "configure:4789: checking whether /proc/interrupts contains keyboard data" >&5 if eval "test \"`echo '$''{'ac_cv_have_proc_interrupts'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4905,7 +4907,7 @@ fi /*) echo $ac_n "checking for PAM headers""... $ac_c" 1>&6 -echo "configure:4920: checking for PAM headers" >&5 +echo "configure:4922: checking for PAM headers" >&5 d=$with_pam/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -4915,7 +4917,7 @@ echo "configure:4920: checking for PAM headers" >&5 fi echo $ac_n "checking for PAM libs""... $ac_c" 1>&6 -echo "configure:4930: checking for PAM libs" >&5 +echo "configure:4932: checking for PAM libs" >&5 d=$with_pam/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -4941,7 +4943,7 @@ echo "configure:4930: checking for PAM libs" >&5 if test "$enable_locking" = yes -a "$with_pam" = yes; then echo $ac_n "checking for PAM""... $ac_c" 1>&6 -echo "configure:4956: checking for PAM" >&5 +echo "configure:4958: checking for PAM" >&5 if eval "test \"`echo '$''{'ac_cv_pam'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4952,14 +4954,14 @@ else fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" cat > conftest.$ac_ext < int main() { ; return 0; } EOF -if { (eval echo configure:4974: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4976: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_pam=yes else @@ -4984,7 +4986,7 @@ EOF # libpam typically requires dlopen and dlsym. On FreeBSD, # those are in libc. On Linux and Solaris, they're in libdl. echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:4999: checking for dlopen in -ldl" >&5 +echo "configure:5001: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4992,7 +4994,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5025,12 +5027,12 @@ fi echo $ac_n "checking how to call pam_strerror""... $ac_c" 1>&6 -echo "configure:5040: checking how to call pam_strerror" >&5 +echo "configure:5042: checking how to call pam_strerror" >&5 if eval "test \"`echo '$''{'ac_cv_pam_strerror_args'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -5040,7 +5042,7 @@ pam_handle_t *pamh = 0; char *s = pam_strerror(pamh, PAM_SUCCESS); ; return 0; } EOF -if { (eval echo configure:5055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5057: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_pam_strerror_args=2 else @@ -5048,7 +5050,7 @@ else cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext < #include @@ -5058,7 +5060,7 @@ char *s = pam_strerror(PAM_SUCCESS); ; return 0; } EOF -if { (eval echo configure:5073: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5075: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_pam_strerror_args=1 else @@ -5114,7 +5116,7 @@ fi /*) echo $ac_n "checking for Kerberos headers""... $ac_c" 1>&6 -echo "configure:5129: checking for Kerberos headers" >&5 +echo "configure:5131: checking for Kerberos headers" >&5 d=$with_kerberos/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -5124,7 +5126,7 @@ echo "configure:5129: checking for Kerberos headers" >&5 fi echo $ac_n "checking for Kerberos libs""... $ac_c" 1>&6 -echo "configure:5139: checking for Kerberos libs" >&5 +echo "configure:5141: checking for Kerberos libs" >&5 d=$with_kerberos/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -5150,7 +5152,7 @@ echo "configure:5139: checking for Kerberos libs" >&5 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then echo $ac_n "checking for Kerberos""... $ac_c" 1>&6 -echo "configure:5165: checking for Kerberos" >&5 +echo "configure:5167: checking for Kerberos" >&5 if eval "test \"`echo '$''{'ac_cv_kerberos'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5161,14 +5163,14 @@ else fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" cat > conftest.$ac_ext < int main() { ; return 0; } EOF -if { (eval echo configure:5183: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5185: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_kerberos=yes else @@ -5192,12 +5194,12 @@ EOF # from Tim Showalter PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes" echo $ac_n "checking for res_search""... $ac_c" 1>&6 -echo "configure:5207: checking for res_search" >&5 +echo "configure:5209: checking for res_search" >&5 if eval "test \"`echo '$''{'ac_cv_func_res_search'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_res_search=yes" else @@ -5238,7 +5240,7 @@ if eval "test \"`echo '$ac_cv_func_'res_search`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for res_search in -lresolv""... $ac_c" 1>&6 -echo "configure:5253: checking for res_search in -lresolv" >&5 +echo "configure:5255: checking for res_search in -lresolv" >&5 ac_lib_var=`echo resolv'_'res_search | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5246,7 +5248,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lresolv $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5313,7 +5315,7 @@ fi /*) echo $ac_n "checking for shadow password headers""... $ac_c" 1>&6 -echo "configure:5328: checking for shadow password headers" >&5 +echo "configure:5330: checking for shadow password headers" >&5 d=$with_shadow/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -5323,7 +5325,7 @@ echo "configure:5328: checking for shadow password headers" >&5 fi echo $ac_n "checking for shadow password libs""... $ac_c" 1>&6 -echo "configure:5338: checking for shadow password libs" >&5 +echo "configure:5340: checking for shadow password libs" >&5 d=$with_shadow/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -5361,7 +5363,7 @@ fi if test "$with_shadow" = yes ; then echo $ac_n "checking for Sun-style shadow passwords""... $ac_c" 1>&6 -echo "configure:5376: checking for Sun-style shadow passwords" >&5 +echo "configure:5378: checking for Sun-style shadow passwords" >&5 if eval "test \"`echo '$''{'ac_cv_sun_adjunct'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5372,7 +5374,7 @@ else fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" cat > conftest.$ac_ext < #include @@ -5385,7 +5387,7 @@ struct passwd_adjunct *p = getpwanam("nobody"); const char *pw = p->pwa_passwd; ; return 0; } EOF -if { (eval echo configure:5400: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5402: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sun_adjunct=yes else @@ -5415,7 +5417,7 @@ fi if test "$with_shadow" = yes ; then echo $ac_n "checking for DEC-style shadow passwords""... $ac_c" 1>&6 -echo "configure:5430: checking for DEC-style shadow passwords" >&5 +echo "configure:5432: checking for DEC-style shadow passwords" >&5 if eval "test \"`echo '$''{'ac_cv_enhanced_passwd'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5426,7 +5428,7 @@ else fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" cat > conftest.$ac_ext < #include @@ -5443,7 +5445,7 @@ struct pr_passwd *p; pw = p->ufld.fd_encrypt; ; return 0; } EOF -if { (eval echo configure:5458: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5460: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_enhanced_passwd=yes else @@ -5467,7 +5469,7 @@ echo "$ac_t""$ac_cv_enhanced_passwd" 1>&6 # But on DEC, it's in -lsecurity. # echo $ac_n "checking for getprpwnam in -lprot""... $ac_c" 1>&6 -echo "configure:5482: checking for getprpwnam in -lprot" >&5 +echo "configure:5484: checking for getprpwnam in -lprot" >&5 ac_lib_var=`echo prot'_'getprpwnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5475,7 +5477,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lprot -lx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5503: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5505,7 +5507,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for getprpwnam in -lsecurity""... $ac_c" 1>&6 -echo "configure:5520: checking for getprpwnam in -lsecurity" >&5 +echo "configure:5522: checking for getprpwnam in -lsecurity" >&5 ac_lib_var=`echo security'_'getprpwnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5513,7 +5515,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsecurity $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5557,7 +5559,7 @@ fi if test "$with_shadow" = yes ; then echo $ac_n "checking for HP-style shadow passwords""... $ac_c" 1>&6 -echo "configure:5572: checking for HP-style shadow passwords" >&5 +echo "configure:5574: checking for HP-style shadow passwords" >&5 if eval "test \"`echo '$''{'ac_cv_hpux_passwd'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5568,7 +5570,7 @@ else fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" cat > conftest.$ac_ext < #include @@ -5581,7 +5583,7 @@ struct s_passwd *p = getspwnam("nobody"); const char *pw = p->pw_passwd; ; return 0; } EOF -if { (eval echo configure:5596: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_hpux_passwd=yes else @@ -5602,7 +5604,7 @@ echo "$ac_t""$ac_cv_hpux_passwd" 1>&6 # on HPUX, bigcrypt is in -lsec echo $ac_n "checking for bigcrypt in -lsec""... $ac_c" 1>&6 -echo "configure:5617: checking for bigcrypt in -lsec" >&5 +echo "configure:5619: checking for bigcrypt in -lsec" >&5 ac_lib_var=`echo sec'_'bigcrypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5610,7 +5612,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsec $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5638: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5659,7 +5661,7 @@ fi if test "$with_shadow" = yes ; then echo $ac_n "checking for FreeBSD-style shadow passwords""... $ac_c" 1>&6 -echo "configure:5674: checking for FreeBSD-style shadow passwords" >&5 +echo "configure:5676: checking for FreeBSD-style shadow passwords" >&5 if eval "test \"`echo '$''{'ac_cv_master_passwd'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5685,7 +5687,7 @@ fi if test "$with_shadow" = yes ; then echo $ac_n "checking for generic shadow passwords""... $ac_c" 1>&6 -echo "configure:5700: checking for generic shadow passwords" >&5 +echo "configure:5702: checking for generic shadow passwords" >&5 if eval "test \"`echo '$''{'ac_cv_shadow'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5696,7 +5698,7 @@ else fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" cat > conftest.$ac_ext < #include @@ -5708,7 +5710,7 @@ struct spwd *p = getspnam("nobody"); const char *pw = p->sp_pwdp; ; return 0; } EOF -if { (eval echo configure:5723: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5725: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_shadow=yes else @@ -5729,7 +5731,7 @@ echo "$ac_t""$ac_cv_shadow" 1>&6 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc. have_getspnam=no echo $ac_n "checking for getspnam in -lc""... $ac_c" 1>&6 -echo "configure:5744: checking for getspnam in -lc" >&5 +echo "configure:5746: checking for getspnam in -lc" >&5 ac_lib_var=`echo c'_'getspnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5737,7 +5739,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5770,7 +5772,7 @@ fi if test "$have_getspnam" = no ; then echo $ac_n "checking for getspnam in -lgen""... $ac_c" 1>&6 -echo "configure:5785: checking for getspnam in -lgen" >&5 +echo "configure:5787: checking for getspnam in -lgen" >&5 ac_lib_var=`echo gen'_'getspnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5778,7 +5780,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgen $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5825,7 +5827,7 @@ if test "$enable_locking" = yes ; then # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc. have_crypt=no echo $ac_n "checking for crypt in -lc""... $ac_c" 1>&6 -echo "configure:5840: checking for crypt in -lc" >&5 +echo "configure:5842: checking for crypt in -lc" >&5 ac_lib_var=`echo c'_'crypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5833,7 +5835,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5866,7 +5868,7 @@ fi if test "$have_crypt" = no ; then echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:5881: checking for crypt in -lcrypt" >&5 +echo "configure:5883: checking for crypt in -lcrypt" >&5 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5874,7 +5876,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcrypt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5969,7 +5971,7 @@ fi /*) echo $ac_n "checking for Motif headers""... $ac_c" 1>&6 -echo "configure:5984: checking for Motif headers" >&5 +echo "configure:5986: checking for Motif headers" >&5 d=$with_motif/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -5979,7 +5981,7 @@ echo "configure:5984: checking for Motif headers" >&5 fi echo $ac_n "checking for Motif libs""... $ac_c" 1>&6 -echo "configure:5994: checking for Motif libs" >&5 +echo "configure:5996: checking for Motif libs" >&5 d=$with_motif/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -6018,17 +6020,17 @@ if test "$with_motif" = yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6 -echo "configure:6033: checking for Xm/Xm.h" >&5 +echo "configure:6035: checking for Xm/Xm.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6043: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6045: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6093,7 +6095,7 @@ esac /*) echo $ac_n "checking for Gtk headers""... $ac_c" 1>&6 -echo "configure:6108: checking for Gtk headers" >&5 +echo "configure:6110: checking for Gtk headers" >&5 d=$with_gtk/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -6103,7 +6105,7 @@ echo "configure:6108: checking for Gtk headers" >&5 fi echo $ac_n "checking for Gtk libs""... $ac_c" 1>&6 -echo "configure:6118: checking for Gtk libs" >&5 +echo "configure:6120: checking for Gtk libs" >&5 d=$with_gtk/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -6152,7 +6154,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6167: checking for $ac_word" >&5 +echo "configure:6169: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_glib_config'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6192,7 +6194,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6207: checking for $ac_word" >&5 +echo "configure:6209: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_gtk_config'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6233,7 +6235,7 @@ done fi if test "$have_gtk" = yes; then echo $ac_n "checking Gtk version number""... $ac_c" 1>&6 -echo "configure:6248: checking Gtk version number" >&5 +echo "configure:6250: checking Gtk version number" >&5 if eval "test \"`echo '$''{'ac_cv_gtk_version_string'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6260,7 +6262,7 @@ echo "$ac_t""$ac_cv_gtk_version_string" 1>&6 fi if test "$have_gtk" = yes; then echo $ac_n "checking for Gtk includes""... $ac_c" 1>&6 -echo "configure:6275: checking for Gtk includes" >&5 +echo "configure:6277: checking for Gtk includes" >&5 if eval "test \"`echo '$''{'ac_cv_gtk_config_cflags'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6269,7 +6271,7 @@ fi echo "$ac_t""$ac_cv_gtk_config_cflags" 1>&6 echo $ac_n "checking for Gtk libs""... $ac_c" 1>&6 -echo "configure:6284: checking for Gtk libs" >&5 +echo "configure:6286: checking for Gtk libs" >&5 if eval "test \"`echo '$''{'ac_cv_gtk_config_libs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6312,7 +6314,7 @@ fi /*) echo $ac_n "checking for Athena headers""... $ac_c" 1>&6 -echo "configure:6327: checking for Athena headers" >&5 +echo "configure:6329: checking for Athena headers" >&5 d=$with_athena/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -6322,7 +6324,7 @@ echo "configure:6327: checking for Athena headers" >&5 fi echo $ac_n "checking for Athena libs""... $ac_c" 1>&6 -echo "configure:6337: checking for Athena libs" >&5 +echo "configure:6339: checking for Athena libs" >&5 d=$with_athena/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -6363,17 +6365,17 @@ if test "$with_athena" = yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "X11/Xaw/Dialog.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/Dialog.h""... $ac_c" 1>&6 -echo "configure:6378: checking for X11/Xaw/Dialog.h" >&5 +echo "configure:6380: checking for X11/Xaw/Dialog.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6388: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6390: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6414,7 +6416,7 @@ fi LDFLAGS="$LDFLAGS $X_LIBS" echo $ac_n "checking for Xaw3dComputeTopShadowRGB in -lXaw3d""... $ac_c" 1>&6 -echo "configure:6429: checking for Xaw3dComputeTopShadowRGB in -lXaw3d" >&5 +echo "configure:6431: checking for Xaw3dComputeTopShadowRGB in -lXaw3d" >&5 ac_lib_var=`echo Xaw3d'_'Xaw3dComputeTopShadowRGB | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6422,7 +6424,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXaw3d -lXt -lXmu -lXext -lX11 $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6478,7 +6480,7 @@ fi # XawViewportSetCoordinates in Viewport.h (R3 (or R4?) don't.) if test "$have_athena" = yes ; then echo $ac_n "checking for XawViewportSetCoordinates in Viewport.h""... $ac_c" 1>&6 -echo "configure:6493: checking for XawViewportSetCoordinates in Viewport.h" >&5 +echo "configure:6495: checking for XawViewportSetCoordinates in Viewport.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_XawViewportSetCoordinates'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6490,7 +6492,7 @@ else fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" cat > conftest.$ac_ext < EOF @@ -6523,7 +6525,7 @@ fi have_lesstif=no if test "$have_motif" = yes ; then echo $ac_n "checking whether Motif is really LessTif""... $ac_c" 1>&6 -echo "configure:6538: checking whether Motif is really LessTif" >&5 +echo "configure:6540: checking whether Motif is really LessTif" >&5 if eval "test \"`echo '$''{'ac_cv_have_lesstif'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6534,14 +6536,14 @@ else fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" cat > conftest.$ac_ext < int main() { long vers = LesstifVersion; ; return 0; } EOF -if { (eval echo configure:6556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6558: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_lesstif=yes else @@ -6566,7 +6568,7 @@ if test "$have_lesstif" = yes ; then ltv=unknown echo unknown > conftest-lt echo $ac_n "checking LessTif version number""... $ac_c" 1>&6 -echo "configure:6581: checking LessTif version number" >&5 +echo "configure:6583: checking LessTif version number" >&5 if eval "test \"`echo '$''{'ac_cv_lesstif_version_string'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6581,7 +6583,7 @@ else ac_cv_lesstif_version_string=unknown else cat > conftest.$ac_ext < #include @@ -6594,7 +6596,7 @@ else exit(0); } EOF -if { (eval echo configure:6609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ltv=`cat conftest-lt` ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'` @@ -6624,7 +6626,7 @@ if test "$have_motif" = yes ; then mtv=unknown echo unknown > conftest-mt echo $ac_n "checking Motif version number""... $ac_c" 1>&6 -echo "configure:6639: checking Motif version number" >&5 +echo "configure:6641: checking Motif version number" >&5 if eval "test \"`echo '$''{'ac_cv_motif_version_string'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6639,7 +6641,7 @@ else ac_cv_motif_version_string=unknown else cat > conftest.$ac_ext < #include @@ -6652,7 +6654,7 @@ else exit(0); } EOF -if { (eval echo configure:6667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then mtv=`cat conftest-mt` ac_cv_motif_version=`echo $mtv | sed 's/ .*//'` @@ -6696,7 +6698,7 @@ fi motif_requires_xpm=no if test "$have_motif" = yes ; then echo $ac_n "checking whether Motif requires XPM""... $ac_c" 1>&6 -echo "configure:6711: checking whether Motif requires XPM" >&5 +echo "configure:6713: checking whether Motif requires XPM" >&5 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000 then motif_requires_xpm=yes @@ -6738,7 +6740,7 @@ if test "$have_motif" = yes ; then LDFLAGS="$LDFLAGS $X_LIBS" echo $ac_n "checking for XpQueryExtension in -lXp""... $ac_c" 1>&6 -echo "configure:6753: checking for XpQueryExtension in -lXp" >&5 +echo "configure:6755: checking for XpQueryExtension in -lXp" >&5 ac_lib_var=`echo Xp'_'XpQueryExtension | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6746,7 +6748,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXp -lX11 -lXext -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6811,7 +6813,7 @@ if test "$have_motif" = yes ; then LDFLAGS="$LDFLAGS $X_LIBS" echo $ac_n "checking for _Xsetlocale in -lXintl""... $ac_c" 1>&6 -echo "configure:6826: checking for _Xsetlocale in -lXintl" >&5 +echo "configure:6828: checking for _Xsetlocale in -lXintl" >&5 ac_lib_var=`echo Xintl'_'_Xsetlocale | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6819,7 +6821,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXintl -lX11 -lXext -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6863,7 +6865,7 @@ fi ############################################################################### # -# Check for -lGL or -lMesa. +# Check for -lGL or -lMesaGL. # ############################################################################### @@ -6886,7 +6888,7 @@ fi /*) echo $ac_n "checking for GL headers""... $ac_c" 1>&6 -echo "configure:6901: checking for GL headers" >&5 +echo "configure:6903: checking for GL headers" >&5 d=$with_gl/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -6896,7 +6898,7 @@ echo "configure:6901: checking for GL headers" >&5 fi echo $ac_n "checking for GL libs""... $ac_c" 1>&6 -echo "configure:6911: checking for GL libs" >&5 +echo "configure:6913: checking for GL libs" >&5 d=$with_gl/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -6932,17 +6934,17 @@ if test "$with_gl" = yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "GL/gl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for GL/gl.h""... $ac_c" 1>&6 -echo "configure:6947: checking for GL/gl.h" >&5 +echo "configure:6949: checking for GL/gl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6957: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6959: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6973,17 +6975,17 @@ fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "GL/glx.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for GL/glx.h""... $ac_c" 1>&6 -echo "configure:6988: checking for GL/glx.h" >&5 +echo "configure:6990: checking for GL/glx.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6998: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7000: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7015,7 +7017,7 @@ fi # to link against. # echo $ac_n "checking whether GL is really MesaGL""... $ac_c" 1>&6 -echo "configure:7030: checking whether GL is really MesaGL" >&5 +echo "configure:7032: checking whether GL is really MesaGL" >&5 if eval "test \"`echo '$''{'ac_cv_have_mesa_gl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7027,7 +7029,7 @@ else fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" cat > conftest.$ac_ext < EOF @@ -7072,7 +7074,7 @@ echo "$ac_t""$ac_cv_have_mesa_gl" 1>&6 LDFLAGS="$LDFLAGS $X_LIBS" echo $ac_n "checking for glXCreateContext in -lMesaGL""... $ac_c" 1>&6 -echo "configure:7087: checking for glXCreateContext in -lMesaGL" >&5 +echo "configure:7089: checking for glXCreateContext in -lMesaGL" >&5 ac_lib_var=`echo MesaGL'_'glXCreateContext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7080,7 +7082,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lMesaGL -lMesaGLU -lX11 -lXext -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7137,7 +7139,7 @@ fi LDFLAGS="$LDFLAGS $X_LIBS" echo $ac_n "checking for glXCreateContext in -lGL""... $ac_c" 1>&6 -echo "configure:7152: checking for glXCreateContext in -lGL" >&5 +echo "configure:7154: checking for glXCreateContext in -lGL" >&5 ac_lib_var=`echo GL'_'glXCreateContext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7145,7 +7147,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lGL -lGLU -lX11 -lXext -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7173: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7213,12 +7215,12 @@ EOF if test "$ac_have_mesa_gl" = yes; then echo $ac_n "checking MesaGL version number""... $ac_c" 1>&6 -echo "configure:7228: checking MesaGL version number" >&5 +echo "configure:7230: checking MesaGL version number" >&5 if eval "test \"`echo '$''{'ac_cv_mesagl_version_string'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION @@ -7271,7 +7273,7 @@ echo "$ac_t""$ac_cv_mesagl_version_string" 1>&6 if test "$ac_have_mesa_gl" = yes; then echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6 -echo "configure:7286: checking for pthread_create in -lpthread" >&5 +echo "configure:7288: checking for pthread_create in -lpthread" >&5 ac_lib_var=`echo pthread'_'pthread_create | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7279,7 +7281,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lpthread $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7329,7 +7331,7 @@ fi LDFLAGS="$LDFLAGS $X_LIBS" echo $ac_n "checking for gl_get_thread_context in -l$gl_lib_1""... $ac_c" 1>&6 -echo "configure:7344: checking for gl_get_thread_context in -l$gl_lib_1" >&5 +echo "configure:7346: checking for gl_get_thread_context in -l$gl_lib_1" >&5 ac_lib_var=`echo $gl_lib_1'_'gl_get_thread_context | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7337,7 +7339,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l$gl_lib_1 $GL_LIBS -lpthread -lX11 -lXext -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7400,7 +7402,7 @@ fi LDFLAGS="$LDFLAGS $X_LIBS" echo $ac_n "checking for glBindTexture in -l$gl_lib_1""... $ac_c" 1>&6 -echo "configure:7415: checking for glBindTexture in -l$gl_lib_1" >&5 +echo "configure:7417: checking for glBindTexture in -l$gl_lib_1" >&5 ac_lib_var=`echo $gl_lib_1'_'glBindTexture | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7408,7 +7410,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l$gl_lib_1 $GL_LIBS -lX11 -lXext -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7453,7 +7455,7 @@ fi # See comments in utils/visual-gl.c for why this is sometimes necessary. # echo $ac_n "checking whether drastic GL measures must be taken""... $ac_c" 1>&6 -echo "configure:7468: checking whether drastic GL measures must be taken" >&5 +echo "configure:7470: checking whether drastic GL measures must be taken" >&5 case "$host" in *-sgi*) echo "$ac_t""yes -- hello, SGI." 1>&6 @@ -7481,6 +7483,298 @@ elif test "$with_gl" != no; then fi +############################################################################### +# +# Check for -lgle. +# +############################################################################### + +have_gle=no +with_gle_req=unspecified +# Check whether --with-gle or --without-gle was given. +if test "${with_gle+set}" = set; then + withval="$with_gle" + with_gle="$withval"; with_gle_req="$withval" +else + with_gle=yes +fi + + + + case "$with_gle" in + yes) ;; + no) ;; + + /*) + echo $ac_n "checking for GLE headers""... $ac_c" 1>&6 +echo "configure:7522: checking for GLE headers" >&5 + d=$with_gle/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + echo "$ac_t""$d" 1>&6 + else + echo "$ac_t""not found ($d: no such directory)" 1>&6 + fi + + echo $ac_n "checking for GLE libs""... $ac_c" 1>&6 +echo "configure:7532: checking for GLE libs" >&5 + d=$with_gle/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + echo "$ac_t""$d" 1>&6 + else + echo "$ac_t""not found ($d: no such directory)" 1>&6 + fi + + # replace the directory string with "yes". + with_gle_req="yes" + with_gle=$with_gle_req + ;; + + *) + echo "" + echo "error: argument to --with-gle must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac + + +GLE_LIBS="" + +if test "$with_gle" = yes; then + + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + ac_safe=`echo "GL/gutil.h" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for GL/gutil.h""... $ac_c" 1>&6 +echo "configure:7568: checking for GL/gutil.h" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:7578: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + have_gle=yes +else + echo "$ac_t""no" 1>&6 +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + if test "$have_gle" = yes ; then + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + ac_safe=`echo "GL/tube.h" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for GL/tube.h""... $ac_c" 1>&6 +echo "configure:7609: checking for GL/tube.h" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:7619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + have_gle=yes +else + echo "$ac_t""no" 1>&6 +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + fi + +# /usr/local/lib/GL/libgle.a +# /usr/local/lib/GL/libmatrix.a + + if test "$have_gle" = yes ; then + have_gle=no + + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" + + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS" + + echo $ac_n "checking for gleCreateGC in -lgle""... $ac_c" 1>&6 +echo "configure:7666: checking for gleCreateGC in -lgle" >&5 +ac_lib_var=`echo gle'_'gleCreateGC | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lgle $GL_LIBS -lX11 -lXext -lm $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + have_gle=yes; GLE_LIBS="-lgle" +else + echo "$ac_t""no" 1>&6 +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" + + fi + if test "$have_gle" = yes ; then + have_gle=no + + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" + + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS" + + echo $ac_n "checking for uview_direction_d in -lmatrix""... $ac_c" 1>&6 +echo "configure:7730: checking for uview_direction_d in -lmatrix" >&5 +ac_lib_var=`echo matrix'_'uview_direction_d | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lmatrix $GL_LIBS -lX11 -lXext -lm $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + have_gle=yes; GLE_LIBS="$GLE_LIBS -lmatrix" +else + echo "$ac_t""no" 1>&6 +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" + + fi + + if test "$have_gle" = yes ; then + cat >> confdefs.h <<\EOF +#define HAVE_GLE 1 +EOF + + fi + +elif test "$with_gle" != no; then + echo "error: must be yes or no: --with-gle=$with_gle" + exit 1 + +fi + + + ############################################################################### # # Check for -lXpm. @@ -7505,7 +7799,7 @@ fi /*) echo $ac_n "checking for XPM headers""... $ac_c" 1>&6 -echo "configure:7520: checking for XPM headers" >&5 +echo "configure:7814: checking for XPM headers" >&5 d=$with_xpm/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -7515,7 +7809,7 @@ echo "configure:7520: checking for XPM headers" >&5 fi echo $ac_n "checking for XPM libs""... $ac_c" 1>&6 -echo "configure:7530: checking for XPM libs" >&5 +echo "configure:7824: checking for XPM libs" >&5 d=$with_xpm/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -7548,17 +7842,17 @@ if test "$with_xpm" = yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "X11/xpm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/xpm.h""... $ac_c" 1>&6 -echo "configure:7563: checking for X11/xpm.h" >&5 +echo "configure:7857: checking for X11/xpm.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7573: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7867: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7624,7 +7918,7 @@ fi /*) echo $ac_n "checking for XSHM headers""... $ac_c" 1>&6 -echo "configure:7639: checking for XSHM headers" >&5 +echo "configure:7933: checking for XSHM headers" >&5 d=$with_xshm/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -7634,7 +7928,7 @@ echo "configure:7639: checking for XSHM headers" >&5 fi echo $ac_n "checking for XSHM libs""... $ac_c" 1>&6 -echo "configure:7649: checking for XSHM libs" >&5 +echo "configure:7943: checking for XSHM libs" >&5 d=$with_xshm/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -7669,17 +7963,17 @@ if test "$with_xshm" = yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "X11/extensions/XShm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/extensions/XShm.h""... $ac_c" 1>&6 -echo "configure:7684: checking for X11/extensions/XShm.h" >&5 +echo "configure:7978: checking for X11/extensions/XShm.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7694: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7988: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7713,17 +8007,17 @@ fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "sys/ipc.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/ipc.h""... $ac_c" 1>&6 -echo "configure:7728: checking for sys/ipc.h" >&5 +echo "configure:8022: checking for sys/ipc.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7738: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8032: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7758,17 +8052,17 @@ fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "sys/shm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/shm.h""... $ac_c" 1>&6 -echo "configure:7773: checking for sys/shm.h" >&5 +echo "configure:8067: checking for sys/shm.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7783: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8077: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7819,7 +8113,7 @@ fi LDFLAGS="$LDFLAGS $X_LIBS" echo $ac_n "checking for XShmQueryExtension in -lXextSam""... $ac_c" 1>&6 -echo "configure:7834: checking for XShmQueryExtension in -lXextSam" >&5 +echo "configure:8128: checking for XShmQueryExtension in -lXextSam" >&5 ac_lib_var=`echo XextSam'_'XShmQueryExtension | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7827,7 +8121,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXextSam -lX11 -lXext -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8147: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7904,7 +8198,7 @@ fi /*) echo $ac_n "checking for DOUBLE-BUFFER headers""... $ac_c" 1>&6 -echo "configure:7919: checking for DOUBLE-BUFFER headers" >&5 +echo "configure:8213: checking for DOUBLE-BUFFER headers" >&5 d=$with_xdbe/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -7914,7 +8208,7 @@ echo "configure:7919: checking for DOUBLE-BUFFER headers" >&5 fi echo $ac_n "checking for DOUBLE-BUFFER libs""... $ac_c" 1>&6 -echo "configure:7929: checking for DOUBLE-BUFFER libs" >&5 +echo "configure:8223: checking for DOUBLE-BUFFER libs" >&5 d=$with_xdbe/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -7948,17 +8242,17 @@ if test "$with_xdbe" = yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "X11/extensions/Xdbe.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/extensions/Xdbe.h""... $ac_c" 1>&6 -echo "configure:7963: checking for X11/extensions/Xdbe.h" >&5 +echo "configure:8257: checking for X11/extensions/Xdbe.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7973: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8267: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8021,7 +8315,7 @@ fi /*) echo $ac_n "checking for XReadDisplay headers""... $ac_c" 1>&6 -echo "configure:8036: checking for XReadDisplay headers" >&5 +echo "configure:8330: checking for XReadDisplay headers" >&5 d=$with_readdisplay/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -8031,7 +8325,7 @@ echo "configure:8036: checking for XReadDisplay headers" >&5 fi echo $ac_n "checking for XReadDisplay libs""... $ac_c" 1>&6 -echo "configure:8046: checking for XReadDisplay libs" >&5 +echo "configure:8340: checking for XReadDisplay libs" >&5 d=$with_readdisplay/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -8064,17 +8358,17 @@ if test "$with_readdisplay" = yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "X11/extensions/readdisplay.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/extensions/readdisplay.h""... $ac_c" 1>&6 -echo "configure:8079: checking for X11/extensions/readdisplay.h" >&5 +echo "configure:8373: checking for X11/extensions/readdisplay.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8089: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8383: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8129,7 +8423,7 @@ fi /*) echo $ac_n "checking for Iris Video headers""... $ac_c" 1>&6 -echo "configure:8144: checking for Iris Video headers" >&5 +echo "configure:8438: checking for Iris Video headers" >&5 d=$with_sgivideo/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" @@ -8139,7 +8433,7 @@ echo "configure:8144: checking for Iris Video headers" >&5 fi echo $ac_n "checking for Iris Video libs""... $ac_c" 1>&6 -echo "configure:8154: checking for Iris Video libs" >&5 +echo "configure:8448: checking for Iris Video libs" >&5 d=$with_sgivideo/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" @@ -8172,17 +8466,17 @@ if test "$with_sgivideo" = yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_safe=`echo "dmedia/vl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dmedia/vl.h""... $ac_c" 1>&6 -echo "configure:8187: checking for dmedia/vl.h" >&5 +echo "configure:8481: checking for dmedia/vl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8197: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8491: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8207,7 +8501,7 @@ fi if test "$have_sgivideo" = yes; then have_sgivideo=no echo $ac_n "checking for vlOpenVideo in -lvl""... $ac_c" 1>&6 -echo "configure:8222: checking for vlOpenVideo in -lvl" >&5 +echo "configure:8516: checking for vlOpenVideo in -lvl" >&5 ac_lib_var=`echo vl'_'vlOpenVideo | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8215,7 +8509,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lvl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8297,7 +8591,7 @@ if test -n "$with_zippy_req" ; then case "$with_zippy_req" in /*) echo $ac_n "checking for $with_zippy_req""... $ac_c" 1>&6 -echo "configure:8312: checking for $with_zippy_req" >&5 +echo "configure:8606: checking for $with_zippy_req" >&5 if test -x "$with_zippy_req" ; then echo "$ac_t""yes" 1>&6 else @@ -8311,7 +8605,7 @@ echo "configure:8312: checking for $with_zippy_req" >&5 # Extract the first word of "$with_zippy_req", so it can be a program name with args. set dummy $with_zippy_req; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:8326: checking for $ac_word" >&5 +echo "configure:8620: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_zip2'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8361,7 +8655,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:8376: checking for $ac_word" >&5 +echo "configure:8670: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_emacs_exe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8395,7 +8689,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:8410: checking for $ac_word" >&5 +echo "configure:8704: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_xemacs_exe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8430,7 +8724,7 @@ done if test -n "$emacs_exe" ; then echo $ac_n "checking for emacs yow""... $ac_c" 1>&6 -echo "configure:8445: checking for emacs yow" >&5 +echo "configure:8739: checking for emacs yow" >&5 # # get emacs to tell us where the libexec directory is. # @@ -8452,7 +8746,7 @@ echo "configure:8445: checking for emacs yow" >&5 if test -z "$ac_cv_zippy_program" ; then echo $ac_n "checking for xemacs yow""... $ac_c" 1>&6 -echo "configure:8467: checking for xemacs yow" >&5 +echo "configure:8761: checking for xemacs yow" >&5 if test -n "$xemacs_exe" ; then # # get xemacs to tell us where the libexec directory is. @@ -8511,7 +8805,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:8526: checking for $ac_word" >&5 +echo "configure:8820: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_fortune'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8547,7 +8841,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:8562: checking for $ac_word" >&5 +echo "configure:8856: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_fortune'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8654,8 +8948,8 @@ if test "$enable_locking" = yes; then LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)' LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)' else - LOCK_SRCS='' - LOCK_OBJS='' + LOCK_SRCS='$(NOLOCK_SRCS_1)' + LOCK_OBJS='$(NOLOCK_SRCS_1)' fi if test "$need_setuid" = yes; then @@ -8675,6 +8969,14 @@ else GL_KLUDGE=" -${tab} " fi +if test "$have_gle" = yes; then + GLE_EXES='$(GLE_EXES)' + GLE_MEN='$(GLE_MEN)' + GLE_KLUDGE="${tab} " +else + GLE_KLUDGE=" -${tab} " +fi + ############################################################################### # @@ -8711,6 +9013,10 @@ fi + + + + @@ -8895,6 +9201,7 @@ s%@ATHENA3D_LIBS@%$ATHENA3D_LIBS%g s%@HACK_LIBS@%$HACK_LIBS%g s%@XPM_LIBS@%$XPM_LIBS%g s%@GL_LIBS@%$GL_LIBS%g +s%@GLE_LIBS@%$GLE_LIBS%g s%@PASSWD_LIBS@%$PASSWD_LIBS%g s%@INSTALL_SETUID@%$INSTALL_SETUID%g s%@INSTALL_DIRS@%$INSTALL_DIRS%g @@ -8914,6 +9221,9 @@ s%@LOCK_OBJS@%$LOCK_OBJS%g s%@GL_EXES@%$GL_EXES%g s%@GL_MEN@%$GL_MEN%g s%@GL_KLUDGE@%$GL_KLUDGE%g +s%@GLE_EXES@%$GLE_EXES%g +s%@GLE_MEN@%$GLE_MEN%g +s%@GLE_KLUDGE@%$GLE_KLUDGE%g s%@HACKDIR@%$HACKDIR%g s%@APPDEFAULTS@%$APPDEFAULTS%g s%@DEPEND@%$DEPEND%g @@ -9368,6 +9678,26 @@ if test "$have_gl" = no ; then fi + +if test "$have_gl" = yes -a "$have_gle" = no ; then + if test "$with_gle_req" = yes ; then + warnL 'Use of GLE was requested, but it was not found.' + elif test "$with_gle_req" = no ; then + noteL 'The GLE (GL Extrusion) library is not being used.' + else + noteL 'The GLE (GL Extrusion) library was not found.' + fi + + echo '' + warn2 'Some of the OpenGL (3D) demos will not be built or installed.' + warn2 'You might want to consider installing GLE and re-running' + warn2 'configure. (Remember to delete the config.cache file first.)' + warn2 'You can find the GLE library at .' + warn2 'For general OpenGL info, see .' + +fi + + if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then warn 'Use of XReadDisplay was requested, but it was not found.' fi diff --git a/configure.in b/configure.in index 6c9c4d0d..ed3a8193 100644 --- a/configure.in +++ b/configure.in @@ -180,8 +180,7 @@ perl_version_cmd='print $]' changequote([,]) AC_DEFUN(AC_PROG_PERL, - [PERL='' - AC_PATH_PROGS(PERL, [perl5 perl],,) + [AC_PATH_PROGS(PERL, [perl5 perl],,) if test -z "$PERL" ; then PERL_VERSION=0 else @@ -1781,7 +1780,7 @@ fi ############################################################################### # -# Check for -lGL or -lMesa. +# Check for -lGL or -lMesaGL. # ############################################################################### @@ -1960,6 +1959,58 @@ elif test "$with_gl" != no; then fi +############################################################################### +# +# Check for -lgle. +# +############################################################################### + +have_gle=no +with_gle_req=unspecified +AC_ARG_WITH(gle, +[ --with-gle Build those demos which depend on GLE + (the OpenGL "extrusion" library.)], + [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes]) + +HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE) + +GLE_LIBS="" + +if test "$with_gle" = yes; then + + AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no) + if test "$have_gle" = yes ; then + AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no) + fi + +# /usr/local/lib/GL/libgle.a +# /usr/local/lib/GL/libmatrix.a + + if test "$have_gle" = yes ; then + have_gle=no + AC_CHECK_X_LIB(gle, gleCreateGC, + [have_gle=yes; GLE_LIBS="-lgle"], + [], $GL_LIBS -lX11 -lXext -lm) + fi + if test "$have_gle" = yes ; then + have_gle=no + AC_CHECK_X_LIB(matrix, uview_direction_d, + [have_gle=yes; GLE_LIBS="$GLE_LIBS -lmatrix"], + [], $GL_LIBS -lX11 -lXext -lm) + fi + + if test "$have_gle" = yes ; then + AC_DEFINE(HAVE_GLE) + fi + +elif test "$with_gle" != no; then + echo "error: must be yes or no: --with-gle=$with_gle" + exit 1 + +fi + + + ############################################################################### # # Check for -lXpm. @@ -2354,8 +2405,8 @@ if test "$enable_locking" = yes; then LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)' LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)' else - LOCK_SRCS='' - LOCK_OBJS='' + LOCK_SRCS='$(NOLOCK_SRCS_1)' + LOCK_OBJS='$(NOLOCK_SRCS_1)' fi if test "$need_setuid" = yes; then @@ -2375,6 +2426,14 @@ else GL_KLUDGE=" -${tab} " fi +if test "$have_gle" = yes; then + GLE_EXES='$(GLE_EXES)' + GLE_MEN='$(GLE_MEN)' + GLE_KLUDGE="${tab} " +else + GLE_KLUDGE=" -${tab} " +fi + ############################################################################### # @@ -2394,6 +2453,7 @@ AC_SUBST(ATHENA3D_LIBS) AC_SUBST(HACK_LIBS) AC_SUBST(XPM_LIBS) AC_SUBST(GL_LIBS) +AC_SUBST(GLE_LIBS) AC_SUBST(PASSWD_LIBS) AC_SUBST(INSTALL_SETUID) AC_SUBST(INSTALL_DIRS) @@ -2414,6 +2474,9 @@ AC_SUBST(LOCK_OBJS) AC_SUBST(GL_EXES) AC_SUBST(GL_MEN) AC_SUBST(GL_KLUDGE) +AC_SUBST(GLE_EXES) +AC_SUBST(GLE_MEN) +AC_SUBST(GLE_KLUDGE) AC_SUBST(HACKDIR) APPDEFAULTS=$ac_x_app_defaults @@ -2655,6 +2718,26 @@ if test "$have_gl" = no ; then fi + +if test "$have_gl" = yes -a "$have_gle" = no ; then + if test "$with_gle_req" = yes ; then + warnL 'Use of GLE was requested, but it was not found.' + elif test "$with_gle_req" = no ; then + noteL 'The GLE (GL Extrusion) library is not being used.' + else + noteL 'The GLE (GL Extrusion) library was not found.' + fi + + echo '' + warn2 'Some of the OpenGL (3D) demos will not be built or installed.' + warn2 'You might want to consider installing GLE and re-running' + warn2 'configure. (Remember to delete the config.cache file first.)' + warn2 'You can find the GLE library at .' + warn2 'For general OpenGL info, see .' + +fi + + if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then warn 'Use of XReadDisplay was requested, but it was not found.' fi diff --git a/driver/Makefile.in b/driver/Makefile.in index 6d0da084..7e101dbd 100644 --- a/driver/Makefile.in +++ b/driver/Makefile.in @@ -83,6 +83,8 @@ PAM_OBJS = passwd-pam.o LOCK_SRCS_1 = lock.c passwd.c LOCK_OBJS_1 = lock.o passwd.o +NOLOCK_SRCS_1 = lock.c +NOLOCK_OBJS_1 = lock.o TEST_SRCS = test-passwd.c test-uid.c test-xdpms.c test-grab.c test-apm.c diff --git a/driver/XScreenSaver.ad.in b/driver/XScreenSaver.ad.in index 076cd748..cccc3693 100644 --- a/driver/XScreenSaver.ad.in +++ b/driver/XScreenSaver.ad.in @@ -4,8 +4,8 @@ ! a screen saver and locker for the X window system ! by Jamie Zawinski ! -! version 3.18 -! 13-Oct-99 +! version 3.19 +! 30-Oct-99 ! ! See "man xscreensaver" for more info. The latest version is always ! available at http://www.jwz.org/xscreensaver/ @@ -245,7 +245,8 @@ @GL_KLUDGE@ GL: glplanet -root \n\ @GL_KLUDGE@ GL: pulsar -root \n\ - GL: pulsar -root -texture -mipmap -texture_quality \ - -light -fog \n + -light -fog \n\ +@GLE_KLUDGE@ GL: extrusion -root \n ! Some other programs that you might want to track down (these work as diff --git a/driver/XScreenSaver_ad.h b/driver/XScreenSaver_ad.h index 73e756f4..4d87b251 100644 --- a/driver/XScreenSaver_ad.h +++ b/driver/XScreenSaver_ad.h @@ -161,7 +161,8 @@ GL: glplanet -root \\n\ GL: pulsar -root \\n\ - GL: pulsar -root -texture -mipmap -texture_quality \ - -light -fog \\n", + -light -fog \\n\ + GL: extrusion -root \\n", " ", "XScreenSaver.pointerPollTime: 5", "XScreenSaver.initialDelay: 0", diff --git a/driver/lock.c b/driver/lock.c index 6d498b19..26441f07 100644 --- a/driver/lock.c +++ b/driver/lock.c @@ -1164,6 +1164,30 @@ passwd_event_loop (saver_info *si) } +static void +handle_typeahead (saver_info *si) +{ + passwd_dialog_data *pw = si->pw_data; + int i; + if (!si->unlock_typeahead) + return; + + i = strlen (si->unlock_typeahead); + if (i >= sizeof(pw->typed_passwd) - 1) + i = sizeof(pw->typed_passwd) - 1; + + memcpy (pw->typed_passwd, si->unlock_typeahead, i); + pw->typed_passwd [i] = 0; + + memset (si->unlock_typeahead, '*', strlen(si->unlock_typeahead)); + si->unlock_typeahead[i] = 0; + update_passwd_window (si, si->unlock_typeahead, pw->ratio); + + free (si->unlock_typeahead); + si->unlock_typeahead = 0; +} + + Bool unlock_p (saver_info *si) { @@ -1183,6 +1207,7 @@ unlock_p (saver_info *si) make_passwd_window (si); if (cmap) XInstallColormap (si->dpy, cmap); + handle_typeahead (si); passwd_event_loop (si); status = (si->pw_data->state == pw_ok); diff --git a/driver/timers.c b/driver/timers.c index a6a9486f..5ffc63ed 100644 --- a/driver/timers.c +++ b/driver/timers.c @@ -440,6 +440,63 @@ dispatch_event (saver_info *si, XEvent *event) } +static void +swallow_unlock_typeahead_events (saver_info *si, XEvent *e) +{ + XEvent event; + char buf [100]; + int i = 0; + + memset (buf, 0, sizeof(buf)); + + event = *e; + + do + { + if (event.xany.type == KeyPress) + { + char s[2]; + int size = XLookupString (&event, s, 1, 0, 0); + if (size != 1) continue; + switch (*s) + { + case '\010': case '\177': /* Backspace */ + if (i > 0) i--; + break; + case '\025': case '\030': /* Erase line */ + case '\012': case '\015': /* Enter */ + i = 0; + break; + case '\040': /* Space */ + if (i == 0) + break; /* ignore space at beginning of line */ + /* else, fall through */ + default: + buf [i++] = *s; + break; + } + } + + } while (i < sizeof(buf)-1 && + XCheckMaskEvent (si->dpy, KeyPressMask, &event)); + + buf[i] = 0; + + if (si->unlock_typeahead) + { + memset (si->unlock_typeahead, 0, strlen(si->unlock_typeahead)); + free (si->unlock_typeahead); + } + + if (i > 0) + si->unlock_typeahead = strdup (buf); + else + si->unlock_typeahead = 0; + + memset (buf, 0, sizeof(buf)); +} + + /* methods of detecting idleness: explicitly informed by SGI SCREEN_SAVER server event; @@ -752,8 +809,13 @@ sleep_until_idle (saver_info *si, Bool until_idle_p) doesn't exhibit itself without an extension, because in that case, there's only one event generated by user activity, not two.) */ - XCheckMaskEvent (si->dpy, (KeyPressMask|ButtonPressMask|PointerMotionMask), - &event); + if (!until_idle_p && si->locked_p) + swallow_unlock_typeahead_events (si, &event); + else + while (XCheckMaskEvent (si->dpy, + (KeyPressMask|ButtonPressMask|PointerMotionMask), + &event)) + ; if (si->check_pointer_timer_id) diff --git a/driver/xscreensaver-command.man b/driver/xscreensaver-command.man index 7d1802a1..b02acfff 100644 --- a/driver/xscreensaver-command.man +++ b/driver/xscreensaver-command.man @@ -11,7 +11,7 @@ .if n .sp 1 .if t .sp .5 .. -.TH XScreenSaver 1 "13-Oct-99 (3.18)" "X Version 11" +.TH XScreenSaver 1 "30-Oct-99 (3.19)" "X Version 11" .SH NAME xscreensaver-command - control a running xscreensaver process .SH SYNOPSIS diff --git a/driver/xscreensaver-demo.man b/driver/xscreensaver-demo.man index cb555b1b..3a89d4de 100644 --- a/driver/xscreensaver-demo.man +++ b/driver/xscreensaver-demo.man @@ -11,7 +11,7 @@ .if n .sp 1 .if t .sp .5 .. -.TH XScreenSaver 1 "13-Oct-99 (3.18)" "X Version 11" +.TH XScreenSaver 1 "30-Oct-99 (3.19)" "X Version 11" .SH NAME xscreensaver-demo - interactively control the background xscreensaver daemon .SH SYNOPSIS diff --git a/driver/xscreensaver.c b/driver/xscreensaver.c index dead85d6..c37cf326 100644 --- a/driver/xscreensaver.c +++ b/driver/xscreensaver.c @@ -59,7 +59,7 @@ * This program accepts ClientMessages of type SCREENSAVER; these messages * may contain the atom ACTIVATE or DEACTIVATE, meaning to turn the * screensaver on or off now, regardless of the idleness of the user, - * and a few other things. The included "xscreensaver_command" program + * and a few other things. The included "xscreensaver-command" program * sends these messsages. * * If we don't have the XIdle, MIT-SCREEN-SAVER, or SGI SCREEN_SAVER @@ -70,8 +70,9 @@ * KeyPress on windows which don't select them, because that would * interfere with event propagation. This will break if any program * changes its event mask to contain KeyRelease or PointerMotion more than - * 30 seconds after creating the window, but that's probably pretty rare. - * + * 30 seconds after creating the window, but such programs do not seem to + * occur in nature (I've never seen it happen in all these years.) + * * The reason that we can't select KeyPresses on windows that don't have * them already is that, when dispatching a KeyPress event, X finds the * lowest (leafmost) window in the hierarchy on which *any* client selects @@ -110,13 +111,13 @@ * to keep your emacs window alive even when xscreensaver has grabbed. * - Go read the code related to `debug_p'. * - You probably can't set breakpoints in functions that are called on - * the other side of a call to fork() -- if your clients are dying - * with signal 5, Trace/BPT Trap, you're losing in this way. + * the other side of a call to fork() -- if your subprocesses are + * dying with signal 5, Trace/BPT Trap, you're losing in this way. * - If you aren't using a server extension, don't leave this stopped * under the debugger for very long, or the X input buffer will get * huge because of the keypress events it's selecting for. This can * make your X server wedge with "no more input buffers." - * + * * ======================================================================== */ #ifdef HAVE_CONFIG_H @@ -318,6 +319,7 @@ saver_ehandler (Display *dpy, XErrorEvent *error) " arguments `-sync -verbose', and reproduce this bug. That will cause\n" " xscreensaver to dump a `core' file to the current directory. Please\n" " include the stack trace from that core file in your bug report.\n" + " Do NOT mail the core file itself! That won't work.\n" "\n" " http://www.jwz.org/xscreensaver/bugs.html explains how to create the\n" " most useful bug reports, and how to examine core files.\n" diff --git a/driver/xscreensaver.h b/driver/xscreensaver.h index f54ebcf0..58f5214e 100644 --- a/driver/xscreensaver.h +++ b/driver/xscreensaver.h @@ -115,6 +115,12 @@ struct saver_info { int unlock_failures; /* Counts failed login attempts while the screen is locked. */ + char *unlock_typeahead; /* If the screen is locked, and the user types + a character, we assume that it is the first + character of the password. It's stored here + for the password dialog to use to populate + itself. */ + /* ======================================================================= demoing diff --git a/driver/xscreensaver.man b/driver/xscreensaver.man index 8b2a70b7..03ae4374 100644 --- a/driver/xscreensaver.man +++ b/driver/xscreensaver.man @@ -11,7 +11,7 @@ .if n .sp 1 .if t .sp .5 .. -.TH XScreenSaver 1 "13-Oct-99 (3.18)" "X Version 11" +.TH XScreenSaver 1 "30-Oct-99 (3.19)" "X Version 11" .SH NAME xscreensaver - graphics hack and screen locker, launched when the user is idle .SH SYNOPSIS diff --git a/hacks/Makefile.in b/hacks/Makefile.in index cd1921ac..c4a45bac 100644 --- a/hacks/Makefile.in +++ b/hacks/Makefile.in @@ -144,7 +144,8 @@ MEN = attraction.man blitspin.man bouboule.man braid.man \ xroger.man goop.man starfish.man munch.man rd-bomb.man \ xjack.man xlyap.man jigsaw.man epicycle.man bsod.man \ sonar.man t3d.man squiral.man spotlight.man critical.man \ - vidwhacker.man webcollage.man xsublim.man + vidwhacker.man webcollage.man xsublim.man distort.man \ + phosphor.man xmatrix.man STAR = * EXTRAS = README Makefile.in xlock_23.h .gdbinit \ images/$(STAR).xbm \ @@ -1674,7 +1675,9 @@ xmatrix.o: $(UTILS_SRC)/colors.h xmatrix.o: $(UTILS_SRC)/grabscreen.h xmatrix.o: $(UTILS_SRC)/visual.h xmatrix.o: $(srcdir)/images/matrix.xpm +xmatrix.o: $(srcdir)/images/matrix2.xpm xmatrix.o: $(srcdir)/images/matrix.xbm +xmatrix.o: $(srcdir)/images/matrix2.xbm petri.o: $(srcdir)/screenhack.h petri.o: ../config.h petri.o: $(UTILS_SRC)/yarandom.h @@ -1694,6 +1697,7 @@ shadebobs.o: $(UTILS_SRC)/hsv.h shadebobs.o: $(UTILS_SRC)/colors.h shadebobs.o: $(UTILS_SRC)/grabscreen.h shadebobs.o: $(UTILS_SRC)/visual.h +xsublim.o: $(UTILS_SRC)/yarandom.h xsublim.o: $(UTILS_SRC)/usleep.h xsublim.o: $(UTILS_SRC)/resources.h ccurve.o: $(srcdir)/screenhack.h diff --git a/hacks/bumps.c b/hacks/bumps.c index b1dda084..0b7e4e4e 100644 --- a/hacks/bumps.c +++ b/hacks/bumps.c @@ -76,7 +76,7 @@ void CreateSpotLight( SSpotLight *pSpotLight, uint16_ iWinWidth, uint16_ nColorC void CreateTables( SSpotLight *pSpotLight ) { - long double nUnit; + double nUnit; uint16_ iDegree; pSpotLight->nDegreeCount = get_integer_resource( "degrees", "Integer" ); @@ -88,10 +88,10 @@ void CreateTables( SSpotLight *pSpotLight ) pSpotLight->aSinTable = calloc( pSpotLight->nDegreeCount, sizeof(double) ); /* This funtion builds the Sine Lookup Tables. */ - nUnit = (long double)( PI * 2.0F ) / (long double)( pSpotLight->nDegreeCount ); + nUnit = (double)( PI * 2.0F ) / (double)( pSpotLight->nDegreeCount ); for( iDegree=0; iDegreenDegreeCount; iDegree++) - pSpotLight->aSinTable[ iDegree ] = sin( nUnit * (long double)iDegree ); + pSpotLight->aSinTable[ iDegree ] = sin( nUnit * (double)iDegree ); } @@ -228,11 +228,12 @@ void SetPalette( SBumps *pBumps, XWindowAttributes *pXWinAttribs ) void InitBumpMap( SBumps *pBumps, XWindowAttributes *pXWinAttribs ) { XImage *pScreenImage; - XColor aColors[ pBumps->iWinWidth ]; + XColor *aColors; uint8_ nSoften; uint16_ iWidth, iHeight; BOOL bInvert = (BOOL)get_boolean_resource( "invert", "Boolean" ); + aColors = (XColor*)calloc( pBumps->iWinWidth, sizeof(XColor) ); grab_screen_image( pXWinAttribs->screen, pBumps->Win ); pScreenImage = XGetImage( pBumps->pDisplay, pBumps->Win, 0, 0, pBumps->iWinWidth, pBumps->iWinHeight, ~0L, ZPixmap ); @@ -266,6 +267,7 @@ void InitBumpMap( SBumps *pBumps, XWindowAttributes *pXWinAttribs ) #endif while( nSoften-- ) SoftenBumpMap( pBumps ); + free( aColors ); } diff --git a/hacks/bumps.h b/hacks/bumps.h index 08d56a5c..219bffc6 100644 --- a/hacks/bumps.h +++ b/hacks/bumps.h @@ -34,7 +34,7 @@ #define PI 3.141592654 #define RANDOM() ((int) (random() & 0X7FFFFFFFL)) -typedef char int8_; +typedef signed char int8_; typedef unsigned char uint8_; typedef short int16_; typedef unsigned short uint16_; @@ -43,7 +43,7 @@ typedef unsigned long uint32_; typedef unsigned char BOOL; -// Globals: +/* Globals: */ char *progclass = "Bumps"; char *defaults [] = { diff --git a/hacks/ccurve.c b/hacks/ccurve.c index 6dbe0ac1..1555d88d 100644 --- a/hacks/ccurve.c +++ b/hacks/ccurve.c @@ -201,7 +201,7 @@ self_similar_normalized (Display* display, double x = 0.0; double y = 0.0; - replacement = (Position*)(alloca (segment_count * sizeof (Segment))); + replacement = (Position*)(malloc (segment_count * sizeof (Segment))); copy_points (segment_count, points, replacement); assert (fabs ((replacement [segment_count - 1].x) - 1.0) < EPSILON); assert (fabs (replacement [segment_count - 1].y) < EPSILON); @@ -222,6 +222,7 @@ self_similar_normalized (Display* display, x = next_x; y = next_y; } + free((void*)replacement); } } @@ -246,7 +247,7 @@ self_similar (Display* display, { Position* points = (Position*)NULL; - points = (Position*)(alloca (segment_count * sizeof (Position))); + points = (Position*)(malloc (segment_count * sizeof (Position))); normalized_plot (segment_count, segments, points); assert (fabs ((points [segment_count - 1].x) - 1.0) < EPSILON); assert (fabs (points [segment_count - 1].y) < EPSILON); @@ -256,6 +257,7 @@ self_similar (Display* display, maximum_x, maximum_y, minimum_x, minimum_y, segment_count, points); + free((void*)points); } static @@ -723,7 +725,7 @@ screenhack (Display* display, segment_count = lengths [random () % (sizeof (lengths) / sizeof (int))]; segments - = (Segment*)(alloca ((segment_count) * sizeof (Segment))); + = (Segment*)(malloc ((segment_count) * sizeof (Segment))); select_pattern (segment_count, segments); iterations = floor (log (maximum_lines) / log (((double)(segment_count)))); @@ -784,6 +786,7 @@ screenhack (Display* display, if (delay) sleep (delay); screenhack_handle_events (display); } + free((void*)segments); if (pause) sleep (pause); erase_full_window (display, window); } diff --git a/hacks/distort.man b/hacks/distort.man new file mode 100644 index 00000000..a4b3dcdb --- /dev/null +++ b/hacks/distort.man @@ -0,0 +1,103 @@ +.TH XScreenSaver 1 "17-Oct-99" "X Version 11" +.SH NAME +distort \- distort the content of the screen in interesting ways +.SH SYNOPSIS +.B distort +[\-root] [\-window] [\-mono] [\-install] [\-noinstall] [\-visual \fIvisual\fP] [\-window\-id \fIwindow\-id\fP] [\-delay \fIusecs\fP] [\-radius \fIpixels\fP] [\-speed \fIfloat\fP] [\-number \fIint\fP] [\-swamp] [\-bounce] [\-reflect] [\-vortex] [\-magnify] [\-blackhole] [\-slow] [\-shm] [\-no\-shm] +.SH DESCRIPTION +The \fIdistort\fP program lets circular zones of distortion wander +randomly around its window, apparently distorting what is under them +due to the window's pseudo-transparency. The mode of distortion and +the overall behaviour of the zones can be influenced in various ways. +.SH OPTIONS +.I distort +accepts the following options: +.TP 8 +.B \-root +Draw on the root window. +.TP 8 +.B \-window +Draw on a newly-created window. This is the default. +.TP 8 +.B \-mono +If on a color display, pretend we're on a monochrome display. +.TP 8 +.B \-install +Install a private colormap for the window. +.TP 8 +.B \-noinstall +Don't install a private colormap for the window. +.TP 8 +.B \-visual \fIvisual\fP +Specify which visual to use. Legal values are the name of a visual +class or the id number (decimal or hex) of a specific visual. +.TP 8 +.B \-window\-id \fIwindow\-id\fP +Specify which window id to use. +.TP 8 +.B \-delay \fIusecs\fP +Specify the delay between subsequent animation frames in microseconds. +.TP 8 +.B \-radius \fIpixels\fP +Specify the radius of the distortion zone in pixels. +.TP 8 +.B \-speed \fIfloat\fP +Specify the speed of the distortion zone, where 1.0 is kind of slow, +0.5 is twice as slow and 2.0 is twice as fast. +.TP 8 +.B \-number \fIint\fP +Specify the number of distortion zones. +.TP 8 +.B \-swamp +Instead of letting zones wander around, let small zones pop up like +bubbles in a swamp and leave permanent distortion. +.TP 8 +.B \-bounce +Let zones wander around and bounce off the window border. This is the +default. +.TP 8 +.B \-reflect +Mode of distortion that resembles reflection by a cylindrical mirror. +.TP 8 +.B \-vortex +Whirlpool-shaped distortion. Way cool. +.TP 8 +.B \-magnify +This mode of distortion looks like a magnifying glass. +.TP 8 +.B \-blackhole +Suck your pixels beyond the event horizon. Favourite mode of Dr +Stephen Hawking. +.TP 8 +.B \-slow +Make the zone wander slower. +.TP 8 +.B \-shm +Use shared memory extension. +.TP 8 +.B \-no\-shm +Don't use shared memory extension. +.SH ENVIRONMENT +.PP +.TP 8 +.B DISPLAY +to get the default host and display number +.TP 8 +.B XENVIRONMENT +to get the name of a resource file that overrides the global resources +stored in the RESOURCE_MANAGER property. +.SH SEE ALSO +.BR X (1), +.BR xscreensaver (1) +.SH COPYRIGHT +Copyright \(co 1998 by Jonas Munsin and Jamie Zawinski. Permission to use, +copy, modify, distribute, and sell this software and its documentation for +any purpose is hereby granted without fee, provided that the above +copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation. +No representations are made about the suitability of this software for +any purpose. It is provided "as is" without express or implied +warranty. +.SH AUTHORS +Jonas Munsin and Jamie Zawinski . +This manual page by Matthias Warkus , 17-Oct-1999. diff --git a/hacks/glx/Makefile.in b/hacks/glx/Makefile.in index 7d4e7860..8c1bae01 100644 --- a/hacks/glx/Makefile.in +++ b/hacks/glx/Makefile.in @@ -42,8 +42,10 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ # HACK_PRE = $(LIBS) $(X_LIBS) HACK_POST = $(X_PRE_LIBS) -lXt -lX11 -lXext $(X_EXTRA_LIBS) -lm -HACK_LIBS = $(HACK_PRE) @GL_LIBS@ @HACK_LIBS@ $(HACK_POST) -XPM_LIBS = $(HACK_PRE) @XPM_LIBS@ @GL_LIBS@ @HACK_LIBS@ $(HACK_POST) +HACK_POST2 = @GL_LIBS@ @HACK_LIBS@ $(HACK_POST) +HACK_LIBS = $(HACK_PRE) $(HACK_POST2) +XPM_LIBS = $(HACK_PRE) @XPM_LIBS@ $(HACK_POST2) +GLE_LIBS = $(HACK_PRE) @GLE_LIBS@ @XPM_LIBS@ $(HACK_POST2) HACK_SRC = $(srcdir)/.. HACK_BIN = .. @@ -66,18 +68,25 @@ SRCS = atlantis.c b_draw.c b_lockglue.c b_sphere.c bubble3d.c \ morph3d.c pipeobjs.c pipes.c rubik.c s1_1.c s1_2.c s1_3.c \ s1_4.c s1_5.c s1_6.c s1_b.c shark.c sproingies.c \ sproingiewrap.c stairs.c superquadrics.c swim.c whale.c \ - xlock-gl.c xpm-ximage.c glplanet.c pulsar.c + xlock-gl.c xpm-ximage.c glplanet.c pulsar.c \ + extrusion.c extrusion-helix2.c extrusion-helix3.c \ + extrusion-helix4.c extrusion-joinoffset.c extrusion-screw.c \ + extrusion-taper.c extrusion-twistoid.c OBJS = atlantis.o b_draw.o b_lockglue.o b_sphere.o bubble3d.o \ buildlwo.o cage.o dolphin.o gears.o lament.o moebius.o \ morph3d.o pipeobjs.o pipes.o rubik.o s1_1.o s1_2.o s1_3.o \ s1_4.o s1_5.o s1_6.o s1_b.o shark.o sproingies.o \ sproingiewrap.o stairs.o superquadrics.o swim.o whale.o \ - xlock-gl.o xpm-ximage.o glplanet.o pulsar.o + xlock-gl.o xpm-ximage.o glplanet.o pulsar.o \ + extrusion.o extrusion-helix2.o extrusion-helix3.o \ + extrusion-helix4.o extrusion-joinoffset.o extrusion-screw.o \ + extrusion-taper.o extrusion-twistoid.o GL_EXES = cage gears moebius pipes sproingies stairs superquadrics \ morph3d rubik atlantis lament bubble3d glplanet pulsar -EXES = @GL_EXES@ +GLE_EXES = extrusion +EXES = @GL_EXES@ @GLE_EXES@ HACK_OBJS = screenhack-gl.o xlock-gl.o $(HACK_BIN)/xlockmore.o \ $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \ @@ -258,6 +267,12 @@ glplanet: glplanet.o $(HACK_OBJS) xpm-ximage.o pulsar: pulsar.o $(HACK_OBJS) $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS) +EXTRUSION_OBJS=extrusion.o extrusion-helix2.o extrusion-helix3.o \ + extrusion-helix4.o extrusion-joinoffset.o extrusion-screw.o \ + extrusion-taper.o extrusion-twistoid.o +extrusion: $(EXTRUSION_OBJS) $(HACK_OBJS) + $(CC_HACK) -o $@ $(EXTRUSION_OBJS) $(HACK_OBJS) $(GLE_LIBS) + ############################################################################## # @@ -526,4 +541,16 @@ pulsar.o: $(UTILS_SRC)/colors.h pulsar.o: $(UTILS_SRC)/grabscreen.h pulsar.o: $(UTILS_SRC)/visual.h pulsar.o: $(UTILS_SRC)/xshm.h +extrusion.o: $(HACK_SRC)/xlockmore.h +extrusion.o: ../../config.h +extrusion.o: $(HACK_SRC)/xlockmoreI.h +extrusion.o: $(HACK_SRC)/screenhack.h +extrusion.o: $(UTILS_SRC)/yarandom.h +extrusion.o: $(UTILS_SRC)/usleep.h +extrusion.o: $(UTILS_SRC)/resources.h +extrusion.o: $(UTILS_SRC)/hsv.h +extrusion.o: $(UTILS_SRC)/colors.h +extrusion.o: $(UTILS_SRC)/grabscreen.h +extrusion.o: $(UTILS_SRC)/visual.h +extrusion.o: $(UTILS_SRC)/xshm.h diff --git a/hacks/glx/extrusion-helix2.c b/hacks/glx/extrusion-helix2.c new file mode 100644 index 00000000..2b2c41d4 --- /dev/null +++ b/hacks/glx/extrusion-helix2.c @@ -0,0 +1,56 @@ + +/* + * helicoid (gernalized torus) demo + * + * FUNCTION: + * This code provides a very simple example of the helicoid primitive. + * Most of this code is required to set up OpenGL and GLUT, and very + * very little to set up the helix drawer. Don't blink! + * + * =======> MOUSE HOOKED UP TO RADIUS, DELTA-RADIUS < ======== + * + * HISTORY: + * Written by Linas Vepstas, March 1995 + */ + +/* required include files */ +#include +#include +#include + +/* most recent mouse postion */ +extern float lastx; +extern float lasty; +extern float rot_x; +extern float rot_y; +extern float rot_z; + +void InitStuff_helix2 (void) +{ +} + +/* draw the helix shape */ +void DrawStuff_helix2 (void) +{ + glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glColor3f (0.6, 0.3, 0.8); + + /* set up some matrices so that the object spins with the mouse */ + glPushMatrix (); + glTranslatef (0.0, 0.0, -80.0); + glRotatef(rot_x, 1, 0, 0); + glRotatef(rot_y, 0, 1, 0); + glRotatef(rot_z, 0, 0, 1); +/* glRotatef (220.0, 0.0, 1.0, 0.0); */ +/* glRotatef (65.0, 1.0, 0.0, 0.0); */ + + /* Phew. FINALLY, Draw the helix -- */ + gleSetJoinStyle (TUBE_NORM_EDGE | TUBE_JN_ANGLE | TUBE_JN_CAP); + gleHelicoid (0.01*lastx, + 6.0, (0.01*lasty - 2.0), + -3.0, 4.0, 0x0, 0x0, 0.0, 1080.0); + + glPopMatrix (); + +} +/* ------------------------- end of file ----------------- */ diff --git a/hacks/glx/extrusion-helix3.c b/hacks/glx/extrusion-helix3.c new file mode 100644 index 00000000..79246639 --- /dev/null +++ b/hacks/glx/extrusion-helix3.c @@ -0,0 +1,55 @@ + +/* + * helicoid (gernalized torus) demo + * + * FUNCTION: + * This code provides a very simple example of the helicoid primitive. + * Most of this code is required to set up OpenGL and GLUT, and very + * very little to set up the helix drawer. Don't blink! + * + * =======> MOUSE HOOKED UP TO SWEEP, HEIGHT < ======== + * + * HISTORY: + * Written by Linas Vepstas, March 1995 + */ + +/* required include files */ +#include +#include +#include + +/* most recent mouse postion */ +extern float lastx; +extern float lasty; +extern float rot_x; +extern float rot_y; +extern float rot_z; + +void InitStuff_helix3 (void) +{ +} + +/* draw the helix shape */ +void DrawStuff_helix3 (void) +{ + glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glColor3f (0.8, 0.3, 0.6); + + /* set up some matrices so that the object spins with the mouse */ + glPushMatrix (); + glTranslatef (0.0, 0.0, -80.0); + glRotatef(rot_x, 1, 0, 0); + glRotatef(rot_y, 0, 1, 0); + glRotatef(rot_z, 0, 0, 1); +/* glRotatef (220.0, 0.0, 1.0, 0.0); */ +/* glRotatef (65.0, 1.0, 0.0, 0.0); */ + + /* Phew. FINALLY, Draw the helix -- */ + gleSetJoinStyle (TUBE_NORM_EDGE | TUBE_JN_ANGLE | TUBE_JN_CAP); + gleHelicoid (1.0, 6.0, -1.0, + 0.0, (0.02*lasty-2.0), 0x0, 0x0, 0.0, 6.0*lastx); + + glPopMatrix (); + +} +/* ------------------------- end of file ----------------- */ diff --git a/hacks/glx/extrusion-helix4.c b/hacks/glx/extrusion-helix4.c new file mode 100644 index 00000000..6c81607c --- /dev/null +++ b/hacks/glx/extrusion-helix4.c @@ -0,0 +1,72 @@ + +/* + * helicoid (gernalized torus) demo + * + * FUNCTION: + * This code provides a very simple example of the helicoid primitive. + * Most of this code is required to set up OpenGL and GLUT, and very + * very little to set up the helix drawer. Don't blink! + * + * =======> MOUSE HOOKED UP TO AFFINE < ======== + * + * HISTORY: + * Written by Linas Vepstas, March 1995 + */ + +/* required include files */ +#include +#include +#include + +/* most recent mouse postion */ +extern float lastx; +extern float lasty; +extern float rot_x; +extern float rot_y; +extern float rot_z; + +void InitStuff_helix4 (void) +{ +} + +/* draw the helix shape */ +void DrawStuff_helix4 (void) +{ + double affine[2][3]; + double delta_affine[2][3]; + + glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glColor3f (0.7, 0.5, 0.3); + + /* set up some matrices so that the object spins with the mouse */ + glPushMatrix (); + glTranslatef (0.0, 0.0, -80.0); + glRotatef(rot_x, 1, 0, 0); + glRotatef(rot_y, 0, 1, 0); + glRotatef(rot_z, 0, 0, 1); +/* glRotatef (220.0, 0.0, 1.0, 0.0); */ +/* glRotatef (65.0, 1.0, 0.0, 0.0); */ + + /* Phew. FINALLY, Draw the helix -- */ + affine [0][0] = 1.0/ (0.01*lastx); + affine [1][0] = 0.0; + affine [0][1] = 0.0; + affine [1][1] = 0.01*lastx; + affine [0][2] = 0.0; + affine [1][2] = 0.0; + + delta_affine [0][0] = 0.0; + delta_affine [1][0] = 0.03*lasty; + delta_affine [0][1] = -0.03*lasty; + delta_affine [1][1] = 0.0; + delta_affine [0][2] = 0.0; + delta_affine [1][2] = 0.0; + + gleSetJoinStyle (TUBE_NORM_EDGE | TUBE_JN_ANGLE | TUBE_JN_CAP); + gleHelicoid (1.0, 7.0, -1.0, + -4.0, 6.0, affine, delta_affine, 0.0, 980.0); + + glPopMatrix (); + +} +/* ------------------------- end of file ----------------- */ diff --git a/hacks/glx/extrusion-joinoffset.c b/hacks/glx/extrusion-joinoffset.c new file mode 100644 index 00000000..786d0c75 --- /dev/null +++ b/hacks/glx/extrusion-joinoffset.c @@ -0,0 +1,146 @@ + +/* cylinder drawing demo */ +/* this demo demonstrates the various join styles */ + +/* required include files */ +#include +#include +#include + +/* ------------------------------------------------------- */ + +/* the arrays in which we will store the polyline */ +#define NPTS 100 +double points [NPTS][3]; +float colors [NPTS][3]; +static int idx = 0; + +/* some utilities for filling that array */ +#define PSCALE 0.5 +#define PNT(x,y,z) { \ + points[idx][0] = PSCALE * x; \ + points[idx][1] = PSCALE * y; \ + points[idx][2] = PSCALE * z; \ + idx ++; \ +} + +#define COL(r,g,b) { \ + colors[idx][0] = r; \ + colors[idx][1] = g; \ + colors[idx][2] = b; \ +} + +/* the arrays in which we will store the contour */ +#define NCONTOUR 100 +double contour_points [NCONTOUR][2]; +int cidx = 0; + +/* some utilities for filling that array */ +#define C_PNT(x,y) { \ + contour_points[cidx][0] = x; \ + contour_points[cidx][1] = y; \ + cidx ++; \ +} + + +/* ------------------------------------------------------- */ +/* + * Initialize a bent shape with three segments. + * The data format is a polyline. + * + * NOTE that neither the first, nor the last segment are drawn. + * The first & last segment serve only to determine that angle + * at which the endcaps are drawn. + */ + +void InitStuff_joinoffset (void) +{ + COL (0.0, 0.0, 0.0); + PNT (16.0, 0.0, 0.0); + + COL (0.2, 0.8, 0.5); + PNT (0.0, -16.0, 0.0); + + COL (0.0, 0.8, 0.3); + PNT (-16.0, 0.0, 0.0); + + COL (0.8, 0.3, 0.0); + PNT (0.0, 16.0, 0.0); + + COL (0.2, 0.3, 0.9); + PNT (16.0, 0.0, 0.0); + + COL (0.2, 0.8, 0.5); + PNT (0.0, -16.0, 0.0); + + COL (0.0, 0.0, 0.0); + PNT (-16.0, 0.0, 0.0); + + C_PNT (-0.8, -0.5); + C_PNT (-1.8, 0.0); + C_PNT (-1.2, 0.3); + C_PNT (-0.7, 0.8); + C_PNT (-0.2, 1.3); + C_PNT (0.0, 1.6); + C_PNT (0.2, 1.3); + C_PNT (0.7, 0.8); + C_PNT (1.2, 0.3); + C_PNT (1.8, 0.0); + C_PNT (0.8, -0.5); + + gleSetJoinStyle (TUBE_JN_ANGLE | TUBE_CONTOUR_CLOSED | TUBE_JN_CAP); +} + +double up_vector[3] = {1.0, 0.0, 0.0}; + +extern float lastx; +extern float lasty; + +/* ------------------------------------------------------- */ +/* draw the extrusion */ + +void DrawStuff_joinoffset (void) +{ + double moved_contour [NCONTOUR][2]; + int style, save_style; + int i; + + for (i=0; i +#include +#include +#include +#include + +#ifndef NULL +#define NULL ((void *) 0x0) +#endif /* NULL */ + +/* =========================================================== */ + +#define SCALE 1.3 +#define CONTOUR(x,y) { \ + double ax, ay, alen; \ + contour[i][0] = SCALE * (x); \ + contour[i][1] = SCALE * (y); \ + if (i!=0) { \ + ax = contour[i][0] - contour[i-1][0]; \ + ay = contour[i][1] - contour[i-1][1]; \ + alen = 1.0 / sqrt (ax*ax + ay*ay); \ + ax *= alen; ay *= alen; \ + norms [i-1][0] = ay; \ + norms [i-1][1] = -ax; \ + } \ + i++; \ +} + +#define NUM_PTS (25) + +double contour [NUM_PTS][2]; +double norms [NUM_PTS][2]; + +static void init_contour (void) +{ + int i; + + /* outline of extrusion */ + i=0; + CONTOUR (1.0, 1.0); + CONTOUR (1.0, 2.9); + CONTOUR (0.9, 3.0); + CONTOUR (-0.9, 3.0); + CONTOUR (-1.0, 2.9); + + CONTOUR (-1.0, 1.0); + CONTOUR (-2.9, 1.0); + CONTOUR (-3.0, 0.9); + CONTOUR (-3.0, -0.9); + CONTOUR (-2.9, -1.0); + + CONTOUR (-1.0, -1.0); + CONTOUR (-1.0, -2.9); + CONTOUR (-0.9, -3.0); + CONTOUR (0.9, -3.0); + CONTOUR (1.0, -2.9); + + CONTOUR (1.0, -1.0); + CONTOUR (2.9, -1.0); + CONTOUR (3.0, -0.9); + CONTOUR (3.0, 0.9); + CONTOUR (2.9, 1.0); + + CONTOUR (1.0, 1.0); /* repeat so that last normal is computed */ +} + +/* =========================================================== */ + +extern float lastx; +extern float lasty; +extern float rot_x; +extern float rot_y; +extern float rot_z; + +void InitStuff_screw (void) +{ + int style; + + /* configure the pipeline */ + style = TUBE_JN_CAP; + style |= TUBE_CONTOUR_CLOSED; + style |= TUBE_NORM_FACET; + style |= TUBE_JN_ANGLE; + gleSetJoinStyle (style); + + init_contour(); +} + +/* =========================================================== */ + +void DrawStuff_screw (void) { + + glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glColor3f (0.5, 0.6, 0.6); + + /* set up some matrices so that the object spins with the mouse */ + glPushMatrix (); + glTranslatef (0.0, 0.0, -80.0); + glRotatef(rot_x, 1, 0, 0); + glRotatef(rot_y, 0, 1, 0); + glRotatef(rot_z, 0, 0, 1); +/* glRotatef (130.0, 0.0, 1.0, 0.0); */ +/* glRotatef (65.0, 1.0, 0.0, 0.0); */ + + /* draw the brand and the handle */ + gleScrew (20, contour, norms, + NULL, -6.0, 9.0, lasty); + + glPopMatrix (); +} + +/* ===================== END OF FILE ================== */ diff --git a/hacks/glx/extrusion-taper.c b/hacks/glx/extrusion-taper.c new file mode 100644 index 00000000..8cf51cae --- /dev/null +++ b/hacks/glx/extrusion-taper.c @@ -0,0 +1,226 @@ +/* + * taper.c + * + * FUNCTION: + * Draws a tapered screw shape. + * + * HISTORY: + * -- created by Linas Vepstas October 1991 + * -- heavily modified to draw more texas shapes, Feb 1993, Linas + * -- converted to use GLUT -- December 1995, Linas + * + */ + +/* required include files */ +#include +#include +#include +#include +#include + +#ifndef NULL +#define NULL ((void *) 0x0) +#endif /* NULL */ + +/* Some files do not define M_PI... */ +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* =========================================================== */ + +#define SCALE 3.33333 +#define CONTOUR(x,y) { \ + double ax, ay, alen; \ + contour[i][0] = SCALE * (x); \ + contour[i][1] = SCALE * (y); \ + if (i!=0) { \ + ax = contour[i][0] - contour[i-1][0]; \ + ay = contour[i][1] - contour[i-1][1]; \ + alen = 1.0 / sqrt (ax*ax + ay*ay); \ + ax *= alen; ay *= alen; \ + norms [i-1][0] = ay; \ + norms [i-1][1] = -ax; \ + } \ + i++; \ +} + +#define NUM_PTS (25) + +double contour [NUM_PTS][2]; +double norms [NUM_PTS][2]; + +static void init_contour (void) +{ + int i; + + /* outline of extrusion */ + i=0; + CONTOUR (1.0, 1.0); + CONTOUR (1.0, 2.9); + CONTOUR (0.9, 3.0); + CONTOUR (-0.9, 3.0); + CONTOUR (-1.0, 2.9); + + CONTOUR (-1.0, 1.0); + CONTOUR (-2.9, 1.0); + CONTOUR (-3.0, 0.9); + CONTOUR (-3.0, -0.9); + CONTOUR (-2.9, -1.0); + + CONTOUR (-1.0, -1.0); + CONTOUR (-1.0, -2.9); + CONTOUR (-0.9, -3.0); + CONTOUR (0.9, -3.0); + CONTOUR (1.0, -2.9); + + CONTOUR (1.0, -1.0); + CONTOUR (2.9, -1.0); + CONTOUR (3.0, -0.9); + CONTOUR (3.0, 0.9); + CONTOUR (2.9, 1.0); + + CONTOUR (1.0, 1.0); /* repeat so that last normal is computed */ +} + +/* =========================================================== */ + +#define PSIZE 40 +double path[PSIZE][3]; +double twist[PSIZE]; +double taper[PSIZE]; + +void init_taper (void) { + int j; + double z, deltaz; + double ang, dang; + + z = -10.0; + deltaz = 0.5; + + ang = 0.0; + dang = 20.0; + for (j=0; j<40; j++) { + path[j][0] = 0x0; + path[j][1] = 0x0; + path[j][2] = z; + + twist[j] = ang; + ang += dang; + + taper[j] = 0.1 * sqrt (9.51*9.51 - z*z); + + z += deltaz; + } + + taper[0] = taper[1]; + taper[39] = taper[38]; + +} + +/* =========================================================== */ + +extern float lastx; +extern float lasty; +extern float rot_x; +extern float rot_y; +extern float rot_z; + +void InitStuff_taper (void) +{ + int style; + + /* configure the pipeline */ + style = TUBE_JN_CAP; + style |= TUBE_CONTOUR_CLOSED; + style |= TUBE_NORM_FACET; + style |= TUBE_JN_ANGLE; + gleSetJoinStyle (style); + + init_contour(); + init_taper(); +} + +/* =========================================================== */ + +void gleTaper (int ncp, + gleDouble contour[][2], + gleDouble cont_normal[][2], + gleDouble up[3], + int npoints, + gleDouble point_array[][3], + float color_array[][3], + gleDouble taper[], + gleDouble twist[]) +{ + int j; + gleAffine *xforms; + double co, si, angle; + + /* malloc the extrusion array and the twist array */ + xforms = (gleAffine *) malloc (npoints * sizeof(gleAffine)); + + for (j=0; j +#include +#include +#include +#include + +/* Some files do not define M_PI... */ +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +extern float lastx; +extern float lasty; +extern float rot_x; +extern float rot_y; +extern float rot_z; + +#define OPENGL_10 +/* =========================================================== */ + +#define NUM_TOID1_PTS 5 +double toid1_points[NUM_TOID1_PTS][3]; +float toid1_colors [NUM_TOID1_PTS][3]; +double toid1_twists [NUM_TOID1_PTS]; + +#define TSCALE (6.0) + +#define TPTS(x,y) { \ + toid1_points[i][0] = TSCALE * (x); \ + toid1_points[i][1] = TSCALE * (y); \ + toid1_points[i][2] = TSCALE * (0.0); \ + i++; \ +} + +#define TCOLS(r,g,b) { \ + toid1_colors[i][0] = (r); \ + toid1_colors[i][1] = (g); \ + toid1_colors[i][2] = (b); \ + i++; \ +} + +#define TXZERO() { \ + toid1_twists[i] = 0.0; \ + i++; \ +} + +void init_toid1_line (void) +{ + int i; + + i=0; + TPTS (-1.1, 0.0); + TPTS (-1.0, 0.0); + TPTS (0.0, 0.0); + TPTS (1.0, 0.0); + TPTS (1.1, 0.0); + + i=0; + TCOLS (0.8, 0.8, 0.5); + TCOLS (0.8, 0.4, 0.5); + TCOLS (0.8, 0.8, 0.3); + TCOLS (0.4, 0.4, 0.5); + TCOLS (0.8, 0.8, 0.5); + + i=0; + TXZERO (); + TXZERO (); + TXZERO (); + TXZERO (); + TXZERO (); +} + +/* =========================================================== */ + +#define SCALE 0.6 +#define TWIST(x,y) { \ + double ax, ay, alen; \ + twistation[i][0] = SCALE * (x); \ + twistation[i][1] = SCALE * (y); \ + if (i!=0) { \ + ax = twistation[i][0] - twistation[i-1][0]; \ + ay = twistation[i][1] - twistation[i-1][1]; \ + alen = 1.0 / sqrt (ax*ax + ay*ay); \ + ax *= alen; ay *= alen; \ + twist_normal [i-1][0] = - ay; \ + twist_normal [i-1][1] = ax; \ + } \ + i++; \ +} + +#define NUM_TWIS_PTS (20) + +double twistation [NUM_TWIS_PTS][2]; +double twist_normal [NUM_TWIS_PTS][2]; + +void init_tripples (void) +{ + int i; + double angle; + double co, si; + + /* outline of extrusion */ + i=0; + /* first, draw a semi-curcular "hump" */ + while (i< 11) { + angle = M_PI * ((double) i) / 10.0; + co = cos (angle); + si = sin (angle); + TWIST ((-7.0 -3.0*co), 1.8*si); + } + + /* now, a zig-zag corrugation */ + while (i< NUM_TWIS_PTS) { + TWIST ((-10.0 +(double) i), 0.0); + TWIST ((-9.5 +(double) i), 1.0); + } +} + + +/* =========================================================== */ + +#define V3F(x,y,z) { \ + float vvv[3]; \ + vvv[0] = x; vvv[1] = y; vvv[2] = z; v3f (vvv); \ +} + +#define N3F(x,y,z) { \ + float nnn[3]; \ + nnn[0] = x; nnn[1] = y; nnn[2] = z; n3f (nnn); \ +} + +/* =========================================================== */ + +void DrawStuff_twistoid (void) { + int i; + + toid1_twists[2] = (lastx-121.0) / 8.0; + + i=3; +/* + TPTS (1.0, lasty /400.0); + TPTS (1.1, 1.1 * lasty / 400.0); +*/ + TPTS (1.0, -(lasty-121.0) /200.0); + TPTS (1.1, -1.1 * (lasty-121.0) / 200.0); + +#ifdef IBM_GL_32 + rotate (230, 'x'); + rotate (230, 'y'); + scale (1.8, 1.8, 1.8); + + if (mono_color) { + RGBcolor (178, 178, 204); + twist_extrusion (NUM_TWIS_PTS, twistation, twist_normal, + NULL, NUM_TOID1_PTS, toid1_points, NULL, toid1_twists); + } else { + twist_extrusion (NUM_TWIS_PTS, twistation, twist_normal, + NULL, NUM_TOID1_PTS, toid1_points, toid1_colors, toid1_twists); + } +#endif + +#ifdef OPENGL_10 + glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + /* set up some matrices so that the object spins with the mouse */ + glPushMatrix (); + glTranslatef (0.0, 0.0, -80.0); + glRotatef(rot_x, 1, 0, 0); + glRotatef(rot_y, 0, 1, 0); + glRotatef(rot_z, 0, 0, 1); +/* glRotated (43.0, 1.0, 0.0, 0.0); */ +/* glRotated (43.0, 0.0, 1.0, 0.0); */ + glScaled (1.8, 1.8, 1.8); + gleTwistExtrusion (NUM_TWIS_PTS, twistation, twist_normal, + NULL, NUM_TOID1_PTS, toid1_points, NULL, toid1_twists); + glPopMatrix (); +#endif + +} + +/* =========================================================== */ + +void InitStuff_twistoid (void) +{ + int js; + + init_toid1_line (); + init_tripples (); + +#ifdef IBM_GL_32 + js = getjoinstyle (); + js &= ~TUBE_CONTOUR_CLOSED; + setjoinstyle (js); +#endif + +#ifdef OPENGL_10 + js = gleGetJoinStyle (); + js &= ~TUBE_CONTOUR_CLOSED; + gleSetJoinStyle (js); +#endif + +} + +/* ------------------ end of file -------------------- */ diff --git a/hacks/glx/extrusion.c b/hacks/glx/extrusion.c new file mode 100644 index 00000000..c79d45c1 --- /dev/null +++ b/hacks/glx/extrusion.c @@ -0,0 +1,805 @@ +/* -*- Mode: C; tab-width: 4 -*- */ +/* extrusion --- extrusion module for xscreensaver */ +/*- + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation. + * + * This file is provided AS IS with no warranties of any kind. The author + * shall have no liability with respect to the infringement of copyrights, + * trade secrets or any patents by this file or any part thereof. In no + * event will the author be liable for any lost revenue or profits or + * other special, indirect and consequential damages. + + * Revision History: + * Tue Oct 19 22:24:47 PDT 1999 Initial creation by David Konerding + * + * Notes: + * This screensaver requires the GLE ("OpenGL Tubing and Extrusion Library") + * which can be obtained from http://www.linas.org/gle/index.html + */ + +/*- + * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock. + * otherwise caddr_t is not defined correctly + */ + +#include + + + +#ifdef STANDALONE +# define PROGCLASS "Screensaver" +# define HACK_INIT init_screensaver +# define HACK_DRAW draw_screensaver +# define screensaver_opts xlockmore_opts +#define DEFAULTS "*light: True \n" \ + "*wire: False \n" \ + "*texture: False \n" \ + "*image: BUILTIN \n" \ + "*name: RANDOM \n" \ + "*example: 0 \n" + +# include "xlockmore.h" /* from the xscreensaver distribution */ +#else /* !STANDALONE */ +# include "xlock.h" /* from the xlockmore distribution */ +#endif /* !STANDALONE */ + +#ifdef USE_GL /* whole file */ + +#ifdef HAVE_XPM +# include +# ifndef PIXEL_ALREADY_TYPEDEFED +# define PIXEL_ALREADY_TYPEDEFED /* Sigh, Xmu/Drawing.h needs this... */ +# endif +#endif + +#ifdef HAVE_XMU +# ifndef VMS +# include +#else /* VMS */ +# include +# endif /* VMS */ +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#undef countof +#define countof(x) (sizeof((x))/sizeof((*x))) + + +#define checkImageWidth 64 +#define checkImageHeight 64 + + +extern void InitStuff_helix2(void); +extern void DrawStuff_helix2(void); +extern void InitStuff_helix3(void); +extern void DrawStuff_helix3(void); +extern void InitStuff_helix4(void); +extern void DrawStuff_helix4(void); +extern void InitStuff_joinoffset(void); +extern void DrawStuff_joinoffset(void); +extern void InitStuff_screw(void); +extern void DrawStuff_screw(void); +extern void InitStuff_taper(void); +extern void DrawStuff_taper(void); +extern void InitStuff_twistoid(void); +extern void DrawStuff_twistoid(void); + + + +#define WIDTH 640 +#define HEIGHT 480 + +#define DEF_LIGHT "True" +#define DEF_WIRE "False" +#define DEF_TEXTURE "False" +#define DEF_TEXTURE_QUALITY "False" +#define DEF_MIPMAP "False" +#define DEF_NAME "RANDOM" +#define DEF_IMAGE "BUILTIN" + +static int do_light; +static int do_wire; +static int do_texture; +static int do_texture_quality; +static int do_mipmap; +static char *which_name; +static char *which_image; + +static XrmOptionDescRec opts[] = { + {"-light", ".extrusion.light", XrmoptionNoArg, (caddr_t) "true" }, + {"+light", ".extrusion.light", XrmoptionNoArg, (caddr_t) "false" }, + {"-wire", ".extrusion.wire", XrmoptionNoArg, (caddr_t) "true" }, + {"+wire", ".extrusion.wire", XrmoptionNoArg, (caddr_t) "false" }, + {"-texture", ".extrusion.texture", XrmoptionNoArg, (caddr_t) "true" }, + {"+texture", ".extrusion.texture", XrmoptionNoArg, (caddr_t) "false" }, + {"-texture", ".extrusion.texture", XrmoptionNoArg, (caddr_t) "true" }, + {"+texture_quality", ".extrusion.texture", XrmoptionNoArg, (caddr_t) "false" }, + {"-texture_quality", ".extrusion.texture", XrmoptionNoArg, (caddr_t) "true" }, + {"+mipmap", ".extrusion.mipmap", XrmoptionNoArg, (caddr_t) "false" }, + {"-mipmap", ".extrusion.mipmap", XrmoptionNoArg, (caddr_t) "true" }, + {"-name", ".extrusion.name", XrmoptionSepArg, (caddr_t) NULL }, + {"-image", ".extrusion.image", XrmoptionSepArg, (caddr_t) NULL }, +}; + + +static argtype vars[] = { + {(caddr_t *) &do_light, "light", "Light", DEF_LIGHT, t_Bool}, + {(caddr_t *) &do_wire, "wire", "Wire", DEF_WIRE, t_Bool}, + {(caddr_t *) &do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool}, + {(caddr_t *) &do_texture_quality, "texture_quality", "Texture_Quality", DEF_TEXTURE_QUALITY, t_Bool}, + {(caddr_t *) &do_mipmap, "mipmap", "Mipmap", DEF_MIPMAP, t_Bool}, + {(caddr_t *) &which_name, "name", "Name", DEF_NAME, t_String}, + {(caddr_t *) &which_image, "image", "Image", DEF_IMAGE, t_String}, +}; + + +static OptionStruct desc[] = +{ + {"-name num", "example 'name' to draw (helix2, helix3, helix4, joinoffset, screw, taper, twistoid)"}, + {"-/+ light", "whether to do enable lighting (slower)"}, + {"-/+ wire", "whether to do use wireframe instead of filled (faster)"}, + {"-/+ texture", "whether to apply a texture (slower)"}, + {"-image ", "texture image to load (PPM or PPM4)"}, + {"-/+ texture_quality", "whether to use texture smoothing (slower)"}, + {"-/+ mipmap", "whether to use texture mipmap (slower)"}, +}; + +ModeSpecOpt screensaver_opts = {countof(opts), opts, countof(vars), vars, desc}; + +#ifdef USE_MODULES +ModStruct screensaver_description = +{"screensaver", "init_screensaver", "draw_screensaver", "release_screensaver", + "draw_screensaver", "init_screensaver", NULL, &screensaver_opts, + 1000, 1, 2, 1, 4, 1.0, "", + "OpenGL screensaver", 0, NULL}; +#endif + + +/* structure for holding the screensaver data */ +typedef struct { + int screen_width, screen_height; + GLXContext *glx_context; + Window window; + XColor fg, bg; +} screensaverstruct; +static screensaverstruct *Screensaver = NULL; + + + + +/* convenient access to the screen width */ +static int global_width=640, global_height=480; + +/* set up a light */ +static GLfloat lightOnePosition[] = {40.0, 40, 100.0, 0.0}; +static GLfloat lightOneColor[] = {0.99, 0.99, 0.99, 1.0}; + +static GLfloat lightTwoPosition[] = {-40.0, 40, 100.0, 0.0}; +static GLfloat lightTwoColor[] = {0.99, 0.99, 0.99, 1.0}; + +float rot_x=0, rot_y=0, rot_z=0; +static float dx=0, dy=0, dz=0; +static float ddx=0, ddy=0, ddz=0; +static float d_max = 0; +static int screensaver_number; + +static float max_lastx=300, max_lasty=400; +static float min_lastx=-400, min_lasty=-400; +static float d_lastx=0, d_lasty=0; +static float dd_lastx=0, dd_lasty=0; +static float max_dlastx=0, max_dlasty=0; +float lastx=0, lasty=0; + +static int errCode; +static GLubyte * errString; + +struct functions { + void (*InitStuff)(void); + void (*DrawStuff)(void); + char *name; +}; + +/* currently joinoffset and twistoid look funny- + like we're looking at them from the back or something +*/ + +struct functions funcs_ptr[] = { + {InitStuff_helix2, DrawStuff_helix2, "helix2"}, + {InitStuff_helix3, DrawStuff_helix3, "helix3"}, + {InitStuff_helix4, DrawStuff_helix4, "helix4"}, + {InitStuff_joinoffset, DrawStuff_joinoffset, "joinoffset"}, + {InitStuff_screw, DrawStuff_screw, "screw"}, + {InitStuff_taper, DrawStuff_taper, "taper"}, + {InitStuff_twistoid, DrawStuff_twistoid, "twistoid"}, +}; + +static int num_screensavers = countof(funcs_ptr); + + +/* BEGINNING OF FUNCTIONS */ + + +/* check for errors, bail if any. useful for debugging */ +int checkError(int line, char *file) +{ + if((errCode = glGetError()) != GL_NO_ERROR) { + errString = (GLubyte *)gluErrorString(errCode); + fprintf(stderr, "%s: OpenGL error: %s detected at line %d in file %s\n", + progname, errString, line, file); + exit(1); + } + return 0; +} + + +/* generate a checkered image for texturing */ +GLubyte *Generate_Image(int *width, int *height, int *format) +{ + GLubyte *result; + int i, j, c; + int counter=0; + + *width = checkImageWidth; + *height = checkImageHeight; + result = (GLubyte *)malloc(4 * *width * *height); + + counter = 0; + for (i = 0; i < checkImageWidth; i++) { + for (j = 0; j < checkImageHeight; j++) { + c = (((((i&0x8)==0))^(((j&0x8))==0)))*255; + result[counter++] = (GLubyte) c; + result[counter++] = (GLubyte) c; + result[counter++] = (GLubyte) c; + result[counter++] = (GLubyte) 255; + } + } + + *format = GL_RGBA; + return result; +} +/* Load a modified version of PPM format with an extra byte for alpha */ +GLubyte *LoadPPM4(const char *filename, int *width, int *height, int *format) +{ + char buff[1024]; + GLubyte *data; + int sizeX, sizeY; + FILE *fp; + int maxval; + + fp = fopen(filename, "rb"); + if (!fp) + { + fprintf(stderr, "%s: unable to open file '%s'\n", progname, filename); + return Generate_Image(width, height, format); + } + + if (!fgets(buff, sizeof(buff), fp)) + { + perror("Unable to read header filename\n"); + return Generate_Image(width, height, format); + } + + if (buff[0] != '6' || buff[1] != 'P') + { + fprintf(stderr, "%s: Invalid image format (must be `6P')\n", progname); + return Generate_Image(width, height, format); + } + + do + { + fgets(buff, sizeof(buff), fp); + } + while (buff[0] == '#'); + + if (sscanf(buff, "%d %d", &sizeX, &sizeY) != 2) + { + fprintf(stderr, "%s: error loading image `%s'\n", progname, filename); + return Generate_Image(width, height, format); + } + + if (fscanf(fp, "%d", &maxval) != 1) + { + fprintf(stderr, "%s: error loading image `%s'\n", progname, filename); + return Generate_Image(width, height, format); + } + + while (fgetc(fp) != '\n') + ; + + data = (GLubyte *)malloc(4 * sizeX * sizeY); + if (data == NULL) + { + fprintf(stderr, "%s: unable to allocate memory\n", progname); + exit(1); + } + + if (fread(data, 4 * sizeX, sizeY, fp) != sizeY) + { + fprintf(stderr, "%s: error loading image `%s'\n", progname, filename); + return Generate_Image(width, height, format); + } + + fclose(fp); + + *width = sizeX; + *height = sizeY; + *format = GL_RGBA; + return data; +} + +/* Load a plain PPM image */ +GLubyte *LoadPPM(const char *filename, int *width, int *height, int *format) +{ + char buff[1024]; + GLubyte *data; + GLint sizeX, sizeY; + FILE *fp; + int maxval; + + fp = fopen(filename, "rb"); + if (!fp) + { + fprintf(stderr, "%s: unable to open file '%s'\n", progname, filename); + return Generate_Image(width, height, format); + exit(1); + } + if (!fgets(buff, sizeof(buff), fp)) + { + perror(filename); + return Generate_Image(width, height, format); + } + + if (buff[0] != 'P' || buff[1] != '6') + { + fprintf(stderr, "%s: invalid image format (must be `P6')\n", progname); + return Generate_Image(width, height, format); + } + + do + { + fgets(buff, sizeof(buff), fp); + } + while (buff[0] == '#'); + + if (sscanf(buff, "%d %d", &sizeX, &sizeY) != 2) + { + fprintf(stderr, "%s: error loading image `%s'\n", progname, filename); + return Generate_Image(width, height, format); + } + + if (fscanf(fp, "%d", &maxval) != 1) + { + fprintf(stderr, "%s: error loading image `%s'\n", progname, filename); + return Generate_Image(width, height, format); + } + + while (fgetc(fp) != '\n') + ; + + data = (GLubyte *)malloc(3 * sizeX * sizeY); + if (data == NULL) + { + fprintf(stderr, "%s: unable to allocate memory\n", progname); + exit(1); + } + + if (fread(data, 3 * sizeX, sizeY, fp) != sizeY) + { + fprintf(stderr, "%s: error loading image `%s'\n", progname, filename); + return Generate_Image(width, height, format); + } + + fclose(fp); + + *width = sizeX; + *height = sizeY; + *format = GL_RGB; + return data; +} + +/* create a texture to be applied to the surface + this function loads a file using a loader depending on + that extension of the file. there is very little error + checking. +*/ + +void Create_Texture(char *filename, int do_mipmap, int do_texture_quality) +{ + int height, width; + GLubyte *image; + int format; + + if ( !strncmp(filename, "BUILTIN", 7)) + image = Generate_Image(&width, &height, &format); + else if ( !strncmp((filename+strlen(filename)-3), "ppm", 3)) + image = LoadPPM(filename, &width, &height, &format); + else if ( !strncmp((filename+strlen(filename)-4), "ppm4", 4)) + image = LoadPPM4(filename, &width, &height, &format); + else { + fprintf(stderr, "%s: unknown file format extension: '%s'\n", + progname, filename); + exit(1); + } + + /* GL_MODULATE or GL_DECAL depending on what you want */ + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + + /* default is to do it quick and dirty */ + /* if you have mipmaps turned on, but not texture quality, nothing will happen! */ + if (do_texture_quality) { + /* with texture_quality, the min and mag filters look *much* nice but are *much* slower */ + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + } else { + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + } + + if (do_mipmap) { + gluBuild2DMipmaps(GL_TEXTURE_2D, format, width, height, + format, GL_UNSIGNED_BYTE, image); + } + else { + glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0, + format, GL_UNSIGNED_BYTE, image); + } + free(image); +} + + +/* mostly lifted from lament.c */ +static void +rotate (float *pos, float *v, float *dv, float max_v) +{ + double ppos = *pos; + + /* tick position */ + if (ppos < 0) + ppos = -(ppos + *v); + else + ppos += *v; + + if (ppos > 360) + ppos -= 360; + else if (ppos < 0) + ppos += 360; + + if (ppos < 0) abort(); + if (ppos > 360) abort(); + *pos = (*pos > 0 ? ppos : -ppos); + + /* accelerate */ + *v += *dv; + + /* clamp velocity */ + if (*v > max_v || *v < -max_v) + { + *dv = -*dv; + } + /* If it stops, start it going in the other direction. */ + else if (*v < 0) + { + if (random() % 4) + { + *v = 0; + + /* keep going in the same direction */ + if (random() % 2) + *dv = 0; + else if (*dv < 0) + *dv = -*dv; + } + else + { + /* reverse gears */ + *v = -*v; + *dv = -*dv; + *pos = -*pos; + } + } + + /* Alter direction of rotational acceleration randomly. */ + if (! (random() % 120)) + *dv = -*dv; + + /* Change acceleration very occasionally. */ + if (! (random() % 200)) + { + if (*dv == 0) + *dv = 0.00001; + else if (random() & 1) + *dv *= 1.2; + else + *dv *= 0.8; + } +} + + +static void +bounce (float *pos, float *v, float *dv, float max_v) +{ + *pos += *v; + + if (*pos > 1.0) + *pos = 1.0, *v = -*v, *dv = -*dv; + else if (*pos < 0) + *pos = 0, *v = -*v, *dv = -*dv; + + if (*pos < 0.0) abort(); + if (*pos > 1.0) abort(); + + /* accelerate */ + *v += *dv; + + /* clamp velocity */ + if (*v > max_v || *v < -max_v) + { + *dv = -*dv; + } + + /* Alter direction of rotational acceleration randomly. */ + if (! (random() % 120)) + *dv = -*dv; + + /* Change acceleration very occasionally. */ + if (! (random() % 200)) + { + if (*dv == 0) + *dv = 0.00001; + else if (random() & 1) + *dv *= 1.2; + else + *dv *= 0.8; + } +} + + +static void +init_rotation (void) +{ + rot_x = (float) (random() % (360 * 2)) - 360; /* -360 - 360 */ + rot_y = (float) (random() % (360 * 2)) - 360; + rot_z = (float) (random() % (360 * 2)) - 360; + + /* bell curve from 0-1.5 degrees, avg 0.75 */ + dx = (frand(1) + frand(1) + frand(1)) / 2.0; + dy = (frand(1) + frand(1) + frand(1)) / 2.0; + dz = (frand(1) + frand(1) + frand(1)) / 2.0; + + d_max = dx * 2; + + ddx = 0.004; + ddy = 0.004; + ddz = 0.004; + + lastx = (random() % (int) (max_lastx - min_lastx)) + min_lastx; + lasty = (random() % (int) (max_lasty - min_lasty)) + min_lasty; + d_lastx = (frand(1) + frand(1) + frand(1)); + d_lasty = (frand(1) + frand(1) + frand(1)); + max_dlastx = d_lastx * 2; + max_dlasty = d_lasty * 2; + dd_lastx = 0.004; + dd_lasty = 0.004; +} + + +/* draw the screensaver once */ +void draw_screensaver(ModeInfo * mi) +{ + screensaverstruct *gp = &Screensaver[MI_SCREEN(mi)]; + Display *display = MI_DISPLAY(mi); + Window window = MI_WINDOW(mi); + + Window root, child; + int rootx, rooty, winx, winy; + unsigned int mask; + XEvent event; + + if (!gp->glx_context) + return; + + glXMakeCurrent(display, window, *(gp->glx_context)); + + funcs_ptr[screensaver_number].DrawStuff(); + + rotate(&rot_x, &dx, &ddx, d_max); + rotate(&rot_y, &dy, &ddy, d_max); + rotate(&rot_z, &dz, &ddz, d_max); + + /* swallow any ButtonPress events */ + while (XCheckMaskEvent (MI_DISPLAY(mi), ButtonPressMask, &event)) + ; + /* check the pointer position and button state. */ + XQueryPointer (MI_DISPLAY(mi), MI_WINDOW(mi), + &root, &child, &rootx, &rooty, &winx, &winy, &mask); + + /* track the mouse only if a button is down. */ + if (mask & (Button1Mask|Button2Mask|Button3Mask|Button4Mask|Button5Mask)) + { + lastx = winx; + lasty = winy; + } + else + { + float scale = (max_lastx - min_lastx); + lastx -= min_lastx; + lasty -= min_lasty; + lastx /= scale; + lasty /= scale; + d_lastx /= scale; + d_lasty /= scale; + dd_lastx /= scale; + dd_lasty /= scale; + bounce(&lastx, &d_lastx, &dd_lastx, max_dlastx); + bounce(&lasty, &d_lasty, &dd_lasty, max_dlasty); + lastx *= scale; + lasty *= scale; + lastx += min_lastx; + lasty += min_lasty; + d_lastx *= scale; + d_lasty *= scale; + dd_lastx *= scale; + dd_lasty *= scale; + } + + glXSwapBuffers(display, window); +} + + +/* set up lighting conditions */ +void SetupLight(void) +{ + glLightfv (GL_LIGHT0, GL_POSITION, lightOnePosition); + glLightfv (GL_LIGHT0, GL_DIFFUSE, lightOneColor); + glLightfv (GL_LIGHT1, GL_POSITION, lightTwoPosition); + glLightfv (GL_LIGHT1, GL_DIFFUSE, lightTwoColor); + + glEnable (GL_LIGHT0); + glEnable (GL_LIGHT1); + glEnable (GL_LIGHTING); + + glColorMaterial (GL_FRONT, GL_DIFFUSE); + glEnable (GL_COLOR_MATERIAL); +} + +/* reset the projection matrix */ +void resetProjection(void) { + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum (-9, 9, -9, 9, 50, 150.0); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); +} + +/* Standard reshape function */ +static void +reshape(int width, int height) +{ + glViewport( 0, 0, global_width, global_height ); + resetProjection(); +} + + +/* decide which screensaver example to run */ +void chooseScreensaverExample(void) { + int i; + /* call the extrusion init routine */ + + if (!strncmp(which_name, "RANDOM", strlen(which_name))) { + screensaver_number = random() % num_screensavers; + } + else { + screensaver_number=-1; + for (i=0; i < num_screensavers; i++) { + if (!strncmp(which_name, funcs_ptr[i].name, strlen(which_name))) { + screensaver_number = i; + } + } + } + + if (screensaver_number < 0 || screensaver_number >= num_screensavers) { + fprintf(stderr, "%s: invalid screensaver example number!\n", progname); + fprintf(stderr, "%s: known screensavers:\n", progname); + for (i=0; i < num_screensavers; i++) + fprintf(stderr,"\t%s\n", funcs_ptr[i].name); + exit(1); + } + init_rotation(); + funcs_ptr[screensaver_number].InitStuff(); +} + +/* main OpenGL initialization routine */ +void initializeGL(GLsizei width, GLsizei height) +{ + int style; + int mode; + + global_width=width; + global_height=height; + + glViewport( 0, 0, width, height ); + + glEnable(GL_DEPTH_TEST); + glClearColor(0,0,0,0); + glCullFace(GL_BACK); + glEnable(GL_CULL_FACE); + glShadeModel(GL_SMOOTH); + + if (do_light) + SetupLight(); + if (do_wire) + glPolygonMode(GL_FRONT,GL_LINE); + if (do_texture) { + Create_Texture(which_image, do_mipmap, do_texture_quality); + glEnable(GL_TEXTURE_2D); + + /* configure the pipeline */ + style = TUBE_JN_CAP; + style |= TUBE_CONTOUR_CLOSED; + style |= TUBE_NORM_FACET; + style |= TUBE_JN_ANGLE; + gleSetJoinStyle (style); + + if (do_texture) { + mode = GLE_TEXTURE_ENABLE | GLE_TEXTURE_VERTEX_MODEL_FLAT; + glMatrixMode (GL_TEXTURE); glLoadIdentity (); + glScalef (0.25, 0.1, 1); glMatrixMode (GL_MODELVIEW); + gleTextureMode (mode); + } + } + +} + +/* xscreensaver initialization routine */ +void init_screensaver(ModeInfo * mi) +{ + int screen = MI_SCREEN(mi); + screensaverstruct *gp; + + if (Screensaver == NULL) { + if ((Screensaver = (screensaverstruct *) calloc(MI_NUM_SCREENS(mi), sizeof (screensaverstruct))) == NULL) + return; + } + gp = &Screensaver[screen]; + + gp->window = MI_WINDOW(mi); + if ((gp->glx_context = init_GL(mi)) != NULL) { + reshape(MI_WIDTH(mi), MI_HEIGHT(mi)); + initializeGL(MI_WIDTH(mi), MI_HEIGHT(mi)); + chooseScreensaverExample(); + } else { + MI_CLEARWINDOW(mi); + } + +} + +/* all sorts of nice cleanup code should go here! */ +void release_screensaver(ModeInfo * mi) +{ + int screen; + if (Screensaver != NULL) { + for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) { + /* screensaverstruct *gp = &Screensaver[screen];*/ + } + (void) free((void *) Screensaver); + Screensaver = NULL; + } + FreeAllGL(mi); +} +#endif + diff --git a/hacks/images/matrix.xbm b/hacks/images/matrix.xbm index 9d297513..25d64009 100644 --- a/hacks/images/matrix.xbm +++ b/hacks/images/matrix.xbm @@ -1,394 +1,516 @@ -#define matrix_width 56 -#define matrix_height 837 +#define matrix_width 77 +#define matrix_height 768 static char matrix_bits[] = { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xf7,0xff,0xff,0x7b,0xff, - 0xff,0xaf,0xc8,0xff,0xff,0x4d,0xfd,0xff,0x0f,0x22,0xff,0x7f,0x75,0xfb,0xff, - 0x17,0x89,0xff,0xff,0xda,0xf5,0xff,0x47,0x25,0xfe,0xff,0xfd,0xfb,0xff,0x0b, - 0x1f,0xff,0x7f,0xfa,0xf2,0xff,0x85,0x17,0xfe,0xbf,0xfd,0xf5,0xff,0x45,0x9d, - 0xfe,0x7f,0xf5,0xf7,0xff,0x52,0x17,0xfd,0xaf,0xfd,0xe9,0xff,0x81,0x1f,0xfe, - 0xbf,0xfe,0xf7,0xff,0x4a,0x2d,0xfa,0xbf,0xfa,0xe9,0xff,0xa1,0x1f,0xfd,0xbf, - 0xfd,0xf7,0xff,0x92,0x2e,0xfc,0xdf,0xda,0xe9,0xff,0x85,0x9b,0xfe,0x7f,0xfd, - 0xf7,0xff,0x52,0x0f,0xfe,0xdf,0xfa,0xf2,0xff,0x85,0x3d,0xfe,0xff,0xfa,0xfb, - 0xff,0x47,0x8f,0xfe,0x7f,0xf9,0xea,0xff,0x0b,0x15,0xfe,0xff,0xdd,0xf5,0xff, - 0x87,0x0b,0xff,0x7f,0x75,0xfb,0xff,0x17,0xad,0xfe,0xff,0xff,0xfe,0xff,0x5f, - 0xa1,0xff,0xff,0x4b,0xff,0xff,0x5f,0xd4,0xff,0xff,0xff,0xff,0xff,0x77,0xeb, - 0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff, - 0xff,0xff,0xf4,0xff,0xff,0x57,0xff,0xff,0x3f,0x90,0xff,0xff,0x4b,0xfd,0xff, - 0x7f,0x48,0xff,0xff,0xa7,0xff,0xff,0x7f,0xe8,0xff,0xff,0xcf,0xff,0xff,0x3f, - 0xe8,0xff,0xff,0xa7,0xff,0xff,0x7f,0xf8,0xff,0xff,0xcb,0xff,0xff,0x3f,0xfc, - 0xff,0xff,0xcf,0xff,0xff,0x7f,0xf8,0xff,0xff,0xc7,0xff,0xff,0x3f,0xfa,0xff, - 0xff,0xeb,0xff,0xff,0x7f,0xf8,0xff,0xff,0xa7,0xff,0xff,0x3f,0xfc,0xff,0xff, - 0xcf,0xff,0xff,0x7f,0xf8,0xff,0xff,0xe7,0xff,0xff,0x3f,0xfa,0xff,0xff,0xcb, - 0xff,0xff,0x7f,0xf8,0xff,0xff,0xcf,0xff,0xff,0x3f,0xfc,0xff,0xff,0xc7,0xff, - 0xff,0x7f,0xf8,0xff,0xff,0xd7,0xff,0xff,0x3f,0xfc,0xff,0xff,0xcb,0xff,0xff, - 0x7f,0xf8,0xff,0xff,0xcf,0xff,0xff,0x3f,0xf8,0xff,0xff,0xe7,0xff,0xff,0x5f, - 0xfa,0xff,0xff,0xad,0xff,0xff,0x3f,0xe8,0xff,0xff,0xd7,0xff,0xff,0x57,0xf5, - 0xff,0xff,0xff,0xff,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0x7f,0xfb,0xff,0xff,0xed,0xff,0xff,0x4f,0xad,0xff,0xff,0xb5,0xfa,0xff, - 0x0f,0x12,0xff,0x7f,0x79,0xfb,0xff,0x07,0x09,0xff,0xff,0xea,0xf5,0xff,0x97, - 0x2a,0xff,0x7f,0xfd,0xff,0xff,0x87,0x5e,0xff,0xff,0xf4,0xf5,0xff,0x4b,0x2b, - 0xff,0xff,0xfa,0xff,0xff,0x05,0xbf,0xff,0xff,0xfa,0xff,0xff,0x8b,0xfd,0xff, - 0xff,0xfa,0xff,0xff,0x47,0xf7,0xff,0xff,0xda,0xff,0xff,0x8f,0xfe,0xff,0xff, - 0xf5,0xff,0xff,0x27,0xfa,0xff,0xff,0xdb,0xff,0xff,0x1f,0xfd,0xff,0xff,0xee, - 0xff,0xff,0xaf,0xea,0xff,0xff,0x57,0xff,0xff,0x5f,0xf4,0xff,0xff,0xef,0xff, - 0xff,0x77,0xd1,0xff,0xff,0xbb,0xfe,0xff,0xaf,0xd4,0xff,0xbf,0x5f,0xfd,0xff, - 0xbb,0x42,0xff,0xff,0x75,0xfb,0xff,0x4f,0x29,0xff,0x7f,0xdf,0xfa,0xff,0x25, - 0x05,0xff,0xff,0x55,0xfb,0xff,0x97,0x40,0xff,0x7f,0xab,0xfa,0xff,0x2f,0x12, - 0xff,0xff,0x75,0xfd,0xff,0x8b,0x44,0xff,0xff,0xdf,0xff,0xff,0x7f,0xb5,0xff, - 0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xf5,0xff,0xff,0x55,0xff,0xff, - 0x8f,0xd2,0xff,0xff,0x7a,0xfd,0xff,0x17,0x44,0xff,0x7f,0x55,0xff,0xff,0x07, - 0xa3,0xff,0xff,0xf9,0xfb,0xff,0x4f,0xa9,0xff,0xff,0xfc,0xfe,0xff,0x05,0x57, - 0xff,0xff,0xda,0xff,0xff,0x8b,0xad,0xff,0x7f,0xf5,0xff,0xff,0x47,0xfa,0xff, - 0xff,0xba,0xff,0xff,0x0f,0xfd,0xff,0xff,0xea,0xff,0xff,0x0f,0xf5,0xff,0xff, - 0xd5,0xff,0xff,0x47,0xfc,0xff,0x7f,0xf5,0xff,0xff,0x17,0xf5,0xff,0xff,0xaa, - 0xff,0xff,0x05,0xfa,0xff,0xbf,0xfd,0xff,0xff,0x4b,0xfd,0xff,0xff,0xf6,0xff, - 0xff,0x25,0xfb,0xff,0x5f,0xfd,0xff,0xff,0x91,0xff,0xff,0xbf,0xfb,0xff,0xff, - 0xc5,0xb6,0xff,0x7f,0xdd,0xfb,0xff,0x15,0x5b,0xff,0xff,0xfd,0xfa,0xff,0xc7, - 0x0d,0xff,0xff,0x76,0xfb,0xff,0x95,0x26,0xff,0xff,0xdd,0xff,0xff,0x5f,0x91, - 0xff,0xff,0x77,0xfd,0xff,0xaf,0xd4,0xff,0xff,0xdf,0xff,0xff,0x5f,0xd5,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0x5f,0xfd,0xff,0xff,0xd7,0xff,0xff,0x7f,0xfc,0xff,0xff,0xe5,0xff,0xff,0x17, - 0xf8,0xff,0xff,0xab,0xff,0xff,0xaf,0xf4,0xff,0xff,0xd7,0xff,0xff,0x2f,0xe8, - 0xff,0xff,0x55,0xff,0xff,0x9f,0xe4,0xff,0x7f,0xaf,0xfe,0xff,0x57,0xd0,0xff, - 0xff,0x55,0xff,0xff,0x2f,0xa2,0xff,0xff,0xaf,0xfa,0xff,0x5f,0x11,0xff,0xff, - 0x6a,0xfb,0xff,0x2f,0x44,0xff,0xff,0xad,0xf5,0xff,0x97,0x22,0xfe,0xff,0xd6, - 0xfa,0xff,0x2b,0x14,0xfd,0xff,0x55,0xeb,0xff,0x8f,0x48,0xfe,0xff,0x6a,0xf5, - 0xff,0x05,0x02,0xfa,0x7f,0x91,0xed,0xff,0x17,0x50,0xfd,0xff,0x4a,0xf5,0xff, - 0x03,0x08,0xfd,0x7f,0xeb,0xff,0xff,0x4d,0xd2,0xfe,0xff,0xb5,0xfe,0xff,0x2f, - 0xfa,0xff,0xff,0xef,0xff,0xff,0x57,0xed,0xff,0xff,0xfb,0xff,0xff,0xaf,0xfc, - 0xff,0xff,0xff,0xff,0xff,0x5f,0xff,0xff,0xff,0xef,0xff,0xff,0x7f,0xfd,0xff, - 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff, - 0xaf,0xf6,0xff,0xff,0x55,0xff,0xff,0x5f,0xc1,0xff,0xff,0x5f,0xfd,0xff,0x97, - 0xa8,0xff,0xff,0xaa,0xfe,0xff,0x17,0x81,0xff,0xff,0x5f,0xfd,0xff,0x6f,0x62, - 0xff,0xff,0xf7,0xfe,0xff,0xbf,0x95,0xff,0xff,0x5f,0xfb,0xff,0xdf,0xa2,0xff, - 0xff,0xfe,0xfe,0xff,0xbf,0x4a,0xff,0xff,0x2b,0xfd,0xff,0xaf,0xa0,0xff,0xff, - 0xab,0xfe,0xff,0x17,0x80,0xff,0x7f,0x55,0xfb,0xff,0x4f,0xd5,0xff,0xff,0xfa, - 0xff,0xff,0x05,0xd2,0xff,0xff,0x6d,0xff,0xff,0x4b,0xf5,0xff,0x5f,0xf9,0xff, - 0xff,0x85,0xfe,0xff,0x7f,0xfd,0xff,0xff,0x13,0xf7,0xff,0xdf,0xf6,0xff,0xff, - 0xc5,0xfd,0xff,0xbf,0xfd,0xff,0xff,0x51,0xff,0xff,0xff,0xbe,0xff,0xff,0x8f, - 0xa5,0xff,0xff,0xf5,0xfa,0xff,0x4b,0x2b,0xff,0xff,0xfe,0xff,0xff,0x97,0x95, - 0xff,0xff,0xb7,0xfa,0xff,0xaf,0x4a,0xff,0xff,0xdf,0xff,0xff,0x5f,0xe5,0xff, - 0xff,0x7b,0xff,0xff,0x7f,0xd2,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xfe,0xff,0xff,0xeb,0xff,0xff, - 0x3f,0xfd,0xff,0xff,0xff,0xff,0xff,0xaf,0xfa,0xff,0xff,0xad,0xff,0xff,0x7f, - 0xe9,0xff,0xff,0xff,0xfe,0xff,0xbf,0xd2,0xff,0xff,0x2f,0xff,0xff,0xff,0xc2, - 0xff,0xff,0xff,0xfa,0xff,0x7f,0x2b,0xff,0xff,0xbf,0xfb,0xff,0xff,0x15,0xff, - 0xff,0xff,0xf5,0xff,0x7f,0x8b,0xfe,0xff,0x5b,0xf5,0xff,0x4f,0x11,0xfe,0x7f, - 0x6d,0xf1,0xff,0x97,0x04,0xff,0xff,0xa9,0xf4,0xff,0x0f,0x01,0xfe,0x7f,0xdd, - 0xf2,0xff,0x45,0x14,0xfe,0xff,0xf5,0xf5,0xff,0x0b,0x8b,0xfe,0xbf,0xfe,0xf5, - 0xff,0xc2,0x1d,0xff,0xdf,0xba,0xf7,0xff,0x2b,0x17,0xfe,0x7f,0xfd,0xf2,0xff, - 0x81,0x9d,0xfe,0xbf,0xff,0xfb,0xff,0x55,0x17,0xfe,0xff,0xfa,0xf5,0xff,0xa5, - 0x1b,0xff,0x7f,0xfb,0xf5,0xff,0x4b,0x8d,0xfe,0xff,0xbd,0xfa,0xff,0x0f,0x27, - 0xff,0x7f,0xf5,0xf7,0xff,0xcb,0x92,0xfe,0xff,0x7f,0xfd,0xff,0xaf,0xaa,0xff, - 0xff,0xd7,0xff,0xff,0x5f,0xd5,0xff,0xff,0x7f,0xff,0xff,0x7f,0xf5,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0x5f,0xf5,0xff,0xff,0xdb,0xff,0xff,0xef,0x96,0xff,0xff,0x7e,0xfd,0xff,0x1f, - 0x55,0xff,0xff,0xa9,0xf7,0xff,0x87,0x90,0xfe,0xff,0x74,0xf9,0xff,0x0f,0x0a, - 0xfd,0xff,0xd2,0xee,0xff,0x07,0x49,0xfe,0xff,0xfa,0xfb,0xff,0x17,0x55,0xff, - 0xff,0xad,0xff,0xff,0x4f,0xfa,0xff,0xff,0xfb,0xff,0xff,0x17,0xbd,0xff,0xff, - 0xee,0xff,0xff,0xaf,0xfa,0xff,0xff,0xd7,0xff,0xff,0x5f,0xfa,0xff,0xff,0xef, - 0xff,0xff,0x7f,0xfa,0xff,0xff,0xb7,0xff,0xff,0xbf,0xf8,0xff,0xff,0xef,0xff, - 0xff,0x7f,0xed,0xff,0xff,0xbf,0xff,0xff,0xbf,0xf4,0xff,0xff,0xef,0xff,0xff, - 0xff,0xea,0xff,0xff,0xbf,0xfe,0xff,0xff,0xe5,0xff,0xff,0x7f,0xff,0xff,0xff, - 0xe7,0xff,0xff,0x7f,0xff,0xff,0xff,0xd3,0xff,0xff,0xff,0xfd,0xff,0xff,0xa5, - 0xff,0xff,0xbf,0xfe,0xff,0xff,0xa7,0xff,0xff,0xff,0xfb,0xff,0xff,0x57,0xff, - 0xff,0xff,0xff,0xff,0xff,0x2f,0xff,0xff,0xff,0xfb,0xff,0xff,0xbf,0xff,0xff, - 0xff,0xff,0xff,0xff,0x5f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0xff,0xff,0x6f,0xff,0xff,0xbf,0xd4, - 0xff,0xff,0xfb,0xff,0xff,0xaf,0x56,0xff,0xff,0xb6,0xfa,0xff,0x5f,0x29,0xff, - 0xff,0xfb,0xf5,0xff,0x87,0x8e,0xfe,0x7f,0xd9,0xf5,0xff,0x8f,0x12,0xfe,0xff, - 0xfd,0xf5,0xff,0x0f,0x1b,0xff,0xff,0x74,0xf3,0xff,0x07,0x15,0xfe,0xff,0xda, - 0xfa,0xff,0x97,0x8a,0xfe,0xff,0x6b,0xf5,0xff,0x0f,0x01,0xfe,0xff,0x15,0xf2, - 0xff,0x5f,0x20,0xff,0xff,0x56,0xf9,0xff,0x17,0x04,0xfe,0xff,0xab,0xea,0xff, - 0x4f,0x10,0xfd,0x7f,0xa5,0xf5,0xff,0x17,0x82,0xfe,0xff,0xda,0xf5,0xff,0x4f, - 0x28,0xfe,0xff,0xe9,0xf6,0xff,0x0f,0x16,0xfd,0xff,0xfd,0xeb,0xff,0x87,0x55, - 0xfd,0xff,0xb4,0xff,0xff,0x97,0x2e,0xfa,0xff,0xfb,0xea,0xff,0x0f,0x9b,0xfe, - 0x7f,0xf9,0xf3,0xff,0x47,0x1d,0xfd,0xff,0xfd,0xeb,0xff,0x97,0x16,0xfe,0xff, - 0xd7,0xfd,0xff,0x4f,0xab,0xfe,0xff,0x7d,0xf7,0xff,0x7f,0x55,0xff,0xff,0xff, - 0xff,0xff,0xbf,0xaa,0xff,0xff,0xb7,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe8, - 0xff,0xff,0x5f,0xff,0xff,0xbf,0xd6,0xff,0xff,0xf7,0xfd,0xff,0xaf,0x52,0xff, - 0xff,0xdd,0xf7,0xff,0x5f,0x2d,0xff,0xff,0xf5,0xfa,0xff,0x07,0x15,0xfe,0xff, - 0xfa,0xeb,0xff,0x97,0xae,0xfe,0xff,0xdd,0xfd,0xff,0x4f,0x1b,0xfa,0xff,0xfa, - 0xf7,0xff,0x8f,0xae,0xfd,0xff,0xfd,0xdb,0xff,0x47,0x5b,0xfc,0xff,0xf4,0xf6, - 0xff,0x0f,0x2f,0xfb,0xff,0xda,0xf7,0xff,0x8f,0x9a,0xfc,0xff,0xfa,0xea,0xff, - 0x87,0x2a,0xfe,0xff,0x55,0xfb,0xff,0x17,0x04,0xfd,0xff,0x50,0xe9,0xff,0x0f, - 0x81,0xfe,0xff,0xad,0xfa,0xff,0x07,0x14,0xff,0xff,0xd6,0xff,0xff,0x5f,0x50, - 0xff,0xff,0xeb,0xff,0xff,0x97,0xfc,0xff,0xff,0x57,0xff,0xff,0x3f,0xea,0xff, - 0xff,0xef,0xff,0xff,0xbf,0xe8,0xff,0xff,0xaf,0xfe,0xff,0x7f,0xe4,0xff,0xff, - 0x77,0xff,0xff,0xff,0xd2,0xff,0xff,0xbf,0xff,0xff,0x7f,0xd5,0xff,0xff,0xff, - 0xfd,0xff,0xff,0x57,0xff,0xff,0x7f,0xff,0xff,0xff,0xab,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0x7f,0xff,0xff,0xff,0xe2,0xff,0xff, - 0x5f,0xff,0xff,0xff,0xe5,0xff,0xff,0xbf,0xfe,0xff,0xff,0xd3,0xff,0xff,0x7f, - 0xff,0xff,0xff,0xe1,0xff,0xff,0xbf,0xfe,0xff,0xff,0xc7,0xff,0xff,0x7f,0xff, - 0xff,0xff,0xe1,0xff,0xff,0xbf,0xfd,0xff,0xff,0x97,0xff,0xff,0xff,0xfe,0xff, - 0xff,0x53,0xff,0xff,0xff,0xfb,0xff,0x7f,0xab,0xff,0xff,0x7f,0xff,0xff,0xdf, - 0x16,0xff,0xff,0xed,0xf5,0xff,0x5f,0xad,0xfe,0xff,0xff,0xfb,0xff,0xa7,0x3f, - 0xff,0xff,0xfa,0xfb,0xff,0x5b,0x8d,0xfe,0x7f,0xff,0xf7,0xff,0xa5,0x3f,0xff, - 0xbf,0xed,0xfa,0xff,0x92,0x8a,0xfc,0xaf,0xbe,0xa5,0xff,0xc9,0x0a,0xe2,0xbf, - 0xd6,0x52,0xff,0x20,0x02,0xd0,0x9f,0xbd,0xaa,0xff,0xa1,0x55,0xe8,0xff,0xff, - 0xff,0xfe,0xf5,0x56,0xf7,0xbf,0xff,0xff,0xff,0xf5,0xff,0xfd,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xfd,0xff, + 0xff,0xff,0xff,0xff,0xf7,0xfe,0xff,0x17,0xf0,0xff,0xff,0xff,0xff,0xff,0x9b, + 0xfa,0xff,0x07,0xc0,0xff,0xff,0xff,0xff,0xff,0x6b,0xfb,0xff,0x83,0xe0,0xff, + 0xff,0xff,0xff,0xff,0xf5,0xf6,0xff,0x83,0x86,0xff,0xff,0xff,0xff,0xff,0xfb, + 0xf5,0xff,0x82,0xc3,0xff,0xff,0xff,0xff,0xff,0xea,0xe7,0xff,0xc1,0x86,0xff, + 0xff,0xff,0xff,0xff,0xfb,0xf7,0xff,0xa0,0x07,0xff,0xff,0xff,0xff,0xbf,0xfa, + 0xf7,0xff,0xc0,0x85,0xff,0xff,0xff,0xff,0xff,0xf6,0xeb,0xff,0x40,0x07,0xff, + 0xff,0xff,0xff,0xff,0xfa,0xeb,0xff,0xc0,0x87,0xfe,0xff,0xff,0xff,0x7f,0xed, + 0xef,0xff,0x60,0x03,0xff,0xff,0xff,0xff,0xff,0xbb,0xf3,0xff,0x80,0x87,0xff, + 0xff,0xff,0xff,0xff,0xfa,0xed,0xff,0xc1,0x85,0xff,0xff,0xff,0xff,0xff,0xf5, + 0xf7,0xff,0x40,0x87,0xff,0xff,0xff,0xff,0xff,0xfb,0xeb,0xff,0xa3,0x85,0xff, + 0xff,0xff,0xff,0xff,0xe9,0xf5,0xff,0x82,0xc3,0xff,0xff,0xff,0xff,0xff,0xb7, + 0xf7,0xff,0x43,0x85,0xff,0xff,0xff,0xff,0xff,0x7b,0xfd,0xff,0x8f,0xe0,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xfe,0xff,0x2f,0xf8,0xff,0xff,0xff,0xff,0xff,0xf7, + 0xff,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xff,0xff,0xff,0x9f, + 0xfe,0xff,0x3f,0xe8,0xff,0xff,0xff,0xff,0xff,0x4f,0xfb,0xff,0x1f,0xd0,0xff, + 0xff,0xff,0xff,0xff,0x97,0xfe,0xff,0x1f,0xf4,0xff,0xff,0xff,0xff,0xff,0x9f, + 0xff,0xff,0x3f,0xf8,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0x1f,0xfc,0xff, + 0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0x4f, + 0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0x1f,0xfc,0xff, + 0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xd7, + 0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0x1f,0xfe,0xff, + 0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0xaf, + 0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0x97,0xff,0xff,0x1f,0xfe,0xff, + 0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0xcf, + 0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0x4f,0xff,0xff,0x1f,0xfc,0xff, + 0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0xaf, + 0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0x5b,0xff,0xff,0x17,0xfa,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x47,0xe9,0xff, + 0xff,0xff,0xff,0xff,0x53,0xf5,0xff,0x83,0xc2,0xff,0xff,0xff,0xff,0xff,0xf5, + 0xf7,0xff,0x03,0xc0,0xff,0xff,0xff,0xff,0xff,0xab,0xfa,0xff,0x83,0x86,0xff, + 0xff,0xff,0xff,0xff,0xfb,0xf7,0xff,0x83,0xc5,0xff,0xff,0xff,0xff,0xff,0xf2, + 0xff,0xff,0x81,0xef,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc3,0xf6,0xff, + 0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0x82,0xff,0xff,0xff,0xff,0xff,0xff,0xf5, + 0xff,0xff,0x83,0xfe,0xff,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0x87,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0x07,0xfd,0xff,0xff,0xff,0xff,0xff,0x6d, + 0xff,0xff,0x17,0xfd,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x1f,0xfa,0xff, + 0xff,0xff,0xff,0xff,0x57,0xfd,0xff,0x37,0xf4,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x5d,0xf0,0xff,0xff,0xff,0xff,0xff,0xaf,0xfa,0xff,0x57,0xd1,0xff, + 0xff,0xff,0xff,0xff,0x7b,0xf5,0xff,0xaa,0xc0,0xff,0xff,0xff,0xff,0xff,0xad, + 0xfa,0xff,0x05,0xc0,0xff,0xff,0xff,0xff,0xff,0xd7,0xf6,0xff,0x03,0xc0,0xff, + 0xff,0xff,0xff,0xff,0x5b,0xfb,0xff,0x07,0xc0,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xbf,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xab,0xfe,0xff,0x47,0xf1,0xff,0xff,0xff,0xff,0xff,0x75, + 0xfb,0xff,0x83,0xd0,0xff,0xff,0xff,0xff,0xff,0xab,0xfd,0xff,0x03,0xe0,0xff, + 0xff,0xff,0xff,0xff,0xf5,0xfe,0xff,0x83,0xeb,0xff,0xff,0xff,0xff,0xff,0xf3, + 0xfb,0xff,0x83,0xda,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x81,0xeb,0xff, + 0xff,0xff,0xff,0xff,0x6b,0xff,0xff,0x03,0xfd,0xff,0xff,0xff,0xff,0xff,0xd5, + 0xff,0xff,0x87,0xfe,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0x03,0xfd,0xff, + 0xff,0xff,0xff,0xff,0x55,0xff,0xff,0x05,0xfe,0xff,0xff,0xff,0xff,0xff,0xeb, + 0xff,0xff,0x03,0xfc,0xff,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0x41,0xff,0xff, + 0xff,0xff,0xff,0xff,0xfa,0xff,0x7f,0x81,0xfd,0xff,0xff,0xff,0xff,0xff,0xfa, + 0xff,0xff,0xc0,0xff,0xff,0xff,0xff,0xff,0x7f,0xef,0xff,0xff,0xa1,0xee,0xff, + 0xff,0xff,0xff,0xff,0xf9,0xfb,0xff,0xc1,0xc5,0xff,0xff,0xff,0xff,0xff,0xf7, + 0xf6,0xff,0x42,0xc3,0xff,0xff,0xff,0xff,0xff,0xbb,0xfb,0xff,0x87,0xc5,0xff, + 0xff,0xff,0xff,0xff,0xef,0xf6,0xff,0x6b,0xd2,0xff,0xff,0xff,0xff,0xff,0x7b, + 0xff,0xff,0x2f,0xe8,0xff,0xff,0xff,0xff,0xff,0xdf,0xfd,0xff,0xdf,0xfa,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x5f,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0x1f,0xfd,0xff, + 0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x0b,0xfe,0xff,0xff,0xff,0xff,0xff,0x97, + 0xff,0xff,0x17,0xfc,0xff,0xff,0xff,0xff,0xff,0xdb,0xfe,0xff,0x0f,0xf8,0xff, + 0xff,0xff,0xff,0xff,0xaf,0xfe,0xff,0x17,0xf0,0xff,0xff,0xff,0xff,0xff,0x57, + 0xfb,0xff,0x0b,0xe8,0xff,0xff,0xff,0xff,0xff,0x5b,0xfd,0xff,0x17,0xc0,0xff, + 0xff,0xff,0xff,0xff,0xaf,0xf5,0xff,0x17,0xc0,0xff,0xff,0xff,0xff,0xff,0xb7, + 0xf6,0xff,0x0b,0x80,0xff,0xff,0xff,0xff,0xff,0xd5,0xf5,0xff,0x07,0x40,0xff, + 0xff,0xff,0xff,0xff,0x2b,0xeb,0xff,0x05,0x80,0xff,0xff,0xff,0xff,0xff,0xcb, + 0xf5,0xff,0x03,0x80,0xfe,0xff,0xff,0xff,0xff,0x55,0xea,0xff,0x01,0x40,0xff, + 0xff,0xff,0xff,0xff,0x23,0xf7,0xff,0x02,0x00,0xff,0xff,0xff,0xff,0xff,0xdd, + 0xfd,0xff,0x07,0xf4,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x2b,0xff,0xff, + 0xff,0xff,0xff,0xff,0xdb,0xff,0xff,0x5f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x57,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x5f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xaf,0xfa,0xff,0xff,0xff,0xff,0xff,0xaf,0xfe,0xff,0x97,0xf0,0xff, + 0xff,0xff,0xff,0xff,0xf5,0xfa,0xff,0x0b,0xe8,0xff,0xff,0xff,0xff,0xff,0x1b, + 0xfd,0xff,0x07,0xe0,0xff,0xff,0xff,0xff,0xff,0xef,0xfa,0xff,0xaf,0xd0,0xff, + 0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xbb,0xe8,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfb,0xff,0x6f,0xe3,0xff,0xff,0xff,0xff,0xff,0xb7,0xfc,0xff,0xbf,0xd8,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xf6,0xff,0x0b,0xe0,0xff,0xff,0xff,0xff,0xff,0x2b, + 0xfd,0xff,0x0f,0xe0,0xff,0xff,0xff,0xff,0xff,0xd7,0xfa,0xff,0x03,0xf0,0xff, + 0xff,0xff,0xff,0xff,0xb9,0xff,0xff,0x82,0xfa,0xff,0xff,0xff,0xff,0x7f,0xeb, + 0xff,0xff,0x41,0xff,0xff,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0x81,0xfd,0xff, + 0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xed, + 0xff,0xff,0xa1,0xfd,0xff,0xff,0xff,0xff,0x7f,0xbb,0xff,0xff,0xa5,0xeb,0xff, + 0xff,0xff,0xff,0xff,0xfd,0xfa,0xff,0x83,0xc5,0xff,0xff,0xff,0xff,0xff,0xf7, + 0xf7,0xff,0xc7,0xe2,0xff,0xff,0xff,0xff,0xff,0xdf,0xfe,0xff,0x57,0xd1,0xff, + 0xff,0xff,0xff,0xff,0xbb,0xfd,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x57,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0x8f,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x37,0xfd,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xff,0xff,0x5f,0xfa,0xff,0xff,0xff,0xff,0xff,0xb7,0xfd,0xff,0x7f,0xf1,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xbf,0xf8,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xf5,0xff,0xef,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xbf,0x82,0xff, + 0xff,0xff,0xff,0xff,0xaf,0xf2,0xff,0x57,0xc1,0xff,0xff,0xff,0xff,0xff,0x75, + 0xe9,0xff,0x07,0x80,0xff,0xff,0xff,0xff,0xff,0x53,0xe5,0xff,0x03,0x80,0xff, + 0xff,0xff,0xff,0xff,0xbb,0xf3,0xff,0x43,0x81,0xff,0xff,0xff,0xff,0xff,0xed, + 0xf5,0xff,0x81,0x82,0xff,0xff,0xff,0xff,0xff,0xf6,0xf7,0xff,0xa0,0xc7,0xff, + 0xff,0xff,0xff,0x7f,0xfb,0xeb,0xff,0xc1,0x82,0xff,0xff,0xff,0xff,0xff,0x7a, + 0xf7,0xff,0xa0,0x87,0xff,0xff,0xff,0xff,0xff,0xfd,0xf5,0xff,0xa0,0xc5,0xff, + 0xff,0xff,0xff,0xff,0xeb,0xf7,0xff,0x81,0x83,0xff,0xff,0xff,0xff,0xff,0xfb, + 0xf5,0xff,0xc7,0xc2,0xff,0xff,0xff,0xff,0xff,0xed,0xf6,0xff,0x43,0x85,0xff, + 0xff,0xff,0xff,0xff,0x7b,0xff,0xff,0xaf,0xf2,0xff,0xff,0xff,0xff,0xff,0xdf, + 0xfd,0xff,0xb7,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfa,0xff, + 0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xe8,0xff,0xff,0xff,0xff,0xff,0xab, + 0xfa,0xff,0x87,0xd6,0xff,0xff,0xff,0xff,0xff,0xeb,0xf7,0xff,0x03,0x80,0xff, + 0xff,0xff,0xff,0xff,0x53,0xf5,0xff,0x03,0x41,0xff,0xff,0xff,0xff,0xff,0x69, + 0xf7,0xff,0x03,0x80,0xff,0xff,0xff,0xff,0xff,0xd7,0xfd,0xff,0x87,0xd6,0xff, + 0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x83,0xfa,0xff,0xff,0xff,0xff,0xff,0xab, + 0xff,0xff,0x07,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xfd,0xff, + 0xff,0xff,0xff,0xff,0x97,0xff,0xff,0x2f,0xfe,0xff,0xff,0xff,0xff,0xff,0xdf, + 0xff,0xff,0x3f,0xfa,0xff,0xff,0xff,0xff,0xff,0xef,0xfe,0xff,0x3f,0xfc,0xff, + 0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x5f,0xfd,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfe,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff, + 0xff,0xff,0xff,0xff,0xbf,0xfc,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xea,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xe9,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xcb,0xff,0xff,0xff,0xff,0xff,0xff,0xf6,0xff,0xff,0xe7,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xff,0xff,0x5f,0xf5,0xff,0xff,0xff,0xff,0xff,0xd7,0xfb,0xff,0x4f,0xc5,0xff, + 0xff,0xff,0xff,0xff,0xfb,0xf5,0xff,0x83,0x82,0xff,0xff,0xff,0xff,0xff,0x6b, + 0xf7,0xff,0x87,0xc5,0xff,0xff,0xff,0xff,0xff,0xf3,0xeb,0xff,0x43,0x85,0xff, + 0xff,0xff,0xff,0xff,0xdb,0xf5,0xff,0x43,0x83,0xff,0xff,0xff,0xff,0xff,0x75, + 0xeb,0xff,0x87,0xc2,0xff,0xff,0xff,0xff,0xff,0x57,0xf5,0xff,0x03,0x80,0xff, + 0xff,0xff,0xff,0xff,0x2b,0xf1,0xff,0x0f,0x80,0xff,0xff,0xff,0xff,0xff,0xaf, + 0xf4,0xff,0x07,0x80,0xff,0xff,0xff,0xff,0xff,0x53,0xeb,0xff,0x03,0x80,0xff, + 0xff,0xff,0xff,0xff,0x4b,0xf5,0xff,0x07,0x80,0xff,0xff,0xff,0xff,0xff,0xb7, + 0xeb,0xff,0x03,0x40,0xff,0xff,0xff,0xff,0xff,0xeb,0xf6,0xff,0x87,0x86,0xff, + 0xff,0xff,0xff,0xff,0xf5,0xef,0xff,0x83,0x8b,0xfe,0xff,0xff,0xff,0xff,0xf3, + 0xf7,0xff,0x87,0x46,0xff,0xff,0xff,0xff,0xff,0xbb,0xeb,0xff,0x43,0x87,0xff, + 0xff,0xff,0xff,0xff,0xeb,0xeb,0xff,0x87,0x05,0xff,0xff,0xff,0xff,0xff,0xff, + 0xf7,0xff,0x4b,0xc5,0xff,0xff,0xff,0xff,0xff,0xdb,0xfe,0xff,0x6f,0xd5,0xff, + 0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x5f,0xf5,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xf9,0xff,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0x3f,0xf5,0xff, + 0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x57,0xd5,0xff,0xff,0xff,0xff,0xff,0xbb, + 0xf5,0xff,0x4f,0xc5,0xff,0xff,0xff,0xff,0xff,0xeb,0xf7,0xff,0x03,0x83,0xff, + 0xff,0xff,0xff,0xff,0xf7,0xf7,0xff,0xc7,0x46,0xff,0xff,0xff,0xff,0xff,0x7b, + 0xeb,0xff,0x03,0x87,0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xc7,0x8b,0xfe, + 0xff,0xff,0xff,0xff,0xfb,0xeb,0xff,0x83,0x46,0xff,0xff,0xff,0xff,0xff,0xeb, + 0xf7,0xff,0x87,0x8b,0xfe,0xff,0xff,0xff,0xff,0xf3,0xd6,0xff,0x83,0x84,0xff, + 0xff,0xff,0xff,0xff,0x95,0xf5,0xff,0x03,0x42,0xff,0xff,0xff,0xff,0xff,0x6b, + 0xf5,0xff,0x07,0x80,0xff,0xff,0xff,0xff,0xff,0x45,0xf5,0xff,0x03,0xc0,0xff, + 0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0x07,0xd0,0xff,0xff,0xff,0xff,0xff,0xd7, + 0xfe,0xff,0x0f,0xfc,0xff,0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x17,0xfc,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xfe,0xff,0x5f,0xf4,0xff,0xff,0xff,0xff,0xff,0x6f, + 0xff,0xff,0x3f,0xf8,0xff,0xff,0xff,0xff,0xff,0xbf,0xfd,0xff,0x5f,0xf1,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdd,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfa,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xf9,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0xbf, + 0xfe,0xff,0x7f,0xf1,0xff,0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0xf8,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xfd,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xe9,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xe3,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfe,0xff,0xff,0xda,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xaf,0xc5,0xff, + 0xff,0xff,0xff,0xff,0xdb,0xf7,0xff,0x57,0x87,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfb,0xff,0xa9,0xcd,0xff,0xff,0xff,0xff,0xff,0xf5,0xf7,0xff,0xca,0xc7,0xff, + 0xff,0xff,0xff,0xff,0xde,0xed,0xff,0x60,0x05,0xff,0xff,0xff,0xff,0xbf,0x7a, + 0xab,0xff,0x90,0x02,0xf8,0xff,0xff,0xff,0x7f,0xdd,0x52,0x7f,0xa0,0x00,0xf4, + 0xff,0xff,0xff,0xff,0xb6,0xad,0xff,0x50,0x01,0xf8,0xff,0xff,0xff,0xff,0xfe, + 0xf7,0xff,0xd8,0xab,0xfe,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xfd,0xff,0xfb, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x57,0xfe,0xff,0xff,0xff,0xff,0xff,0xeb, + 0xff,0xff,0x0f,0xfe,0xff,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0x0f,0xfd,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0x77,0xfa,0xff,0xff,0xff,0xff,0xff,0xaf, + 0xfd,0xff,0x5f,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xbf,0xf1,0xff, + 0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0x86,0xff,0xff,0xff,0xff,0xff,0xff, + 0xf5,0xff,0xff,0xc3,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0x87,0xff, + 0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0x87,0xff,0xff,0xff,0xff,0xff,0xff, + 0xf7,0xff,0xff,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xc2,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xbf, + 0xfe,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xfa,0xff, + 0xff,0xff,0xff,0xff,0x57,0xff,0xff,0x3f,0xfd,0xff,0xff,0xff,0xff,0xff,0xdf, + 0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x8f,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xdf,0xfa,0xff,0xff,0xff,0xff,0xff,0x6f,0xfd,0xff,0xaf,0xe8,0xff, + 0xff,0xff,0xff,0xff,0xfb,0xfe,0xff,0x57,0xd1,0xff,0xff,0xff,0xff,0xff,0xbf, + 0xf5,0xff,0xd2,0x50,0xff,0xff,0xff,0xff,0xff,0xfa,0xfa,0xff,0xd5,0xa1,0xfe, + 0xff,0xff,0xff,0xff,0x7f,0xdd,0xff,0xe8,0x90,0xfe,0xff,0xff,0xff,0x7f,0xfd, + 0xed,0xff,0xb4,0xa9,0xfe,0xff,0xff,0xff,0x7f,0xbf,0xbc,0xff,0xf8,0x70,0xfa, + 0xff,0xff,0xff,0xff,0x7e,0xff,0x7f,0xf4,0x91,0xfa,0xff,0xff,0xff,0xff,0xfe, + 0xd5,0xfe,0xf8,0xaa,0xf5,0xff,0xff,0xff,0xbf,0xfe,0x7f,0x7f,0xf4,0x47,0xf1, + 0xff,0xff,0xff,0xff,0xfe,0xeb,0xfd,0xd8,0x85,0xf2,0xff,0xff,0xff,0xff,0xfe, + 0x77,0x7f,0xf0,0x47,0xf5,0xff,0xff,0xff,0x7f,0xfd,0xd7,0xff,0xf8,0x07,0xf5, + 0xff,0xff,0xff,0xff,0xef,0xff,0xfe,0x55,0x17,0xfa,0xff,0xff,0xff,0xff,0x7f, + 0xaf,0xff,0x6f,0x5f,0xfc,0xff,0xff,0xff,0xff,0xf7,0xdf,0xff,0x97,0x3d,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x55,0xfd,0xff, + 0xff,0xff,0xff,0xdf,0x56,0xff,0xff,0x2a,0xea,0xff,0xff,0xff,0xff,0xff,0xad, + 0xfb,0x3f,0x09,0xd4,0xff,0xff,0xff,0xff,0xbf,0xd7,0xfe,0xff,0x15,0xe8,0xff, + 0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xbf, + 0xff,0xbf,0x2a,0xfc,0xff,0xff,0xff,0xff,0xdf,0x4b,0xff,0x7f,0x1f,0xd4,0xff, + 0xff,0xff,0xff,0x6f,0xdf,0xfd,0x1f,0x12,0xfa,0xff,0xff,0xff,0xff,0xff,0x4d, + 0xff,0x7f,0x17,0xac,0xff,0xff,0xff,0xff,0xdf,0xaf,0xfb,0xbf,0x15,0xf4,0xff, + 0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x1e,0xba,0xff,0xff,0xff,0xff,0xff,0xad, + 0xff,0xff,0x17,0xfc,0xff,0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x1d,0xf6,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0x5f, + 0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0x3f,0xfc,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xaf, + 0xff,0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x1f,0xfe,0xff, + 0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xdf, + 0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xdf, + 0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xd7, + 0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xdf, + 0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xbf, + 0xff,0xff,0x3f,0xfd,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x7f,0xfc,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0x7f,0xfb,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfe,0xff,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xf3,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0xaa,0xff, + 0xff,0xff,0xff,0xff,0x57,0xf5,0xff,0x2b,0xa5,0xfe,0xff,0xff,0xff,0xff,0xfb, + 0xdf,0xff,0x47,0x55,0xfe,0xff,0xff,0xff,0xff,0x6b,0xb7,0xff,0x47,0x15,0xfe, + 0xff,0xff,0xff,0xff,0xf7,0xdd,0xff,0x03,0x2b,0xfc,0xff,0xff,0xff,0xff,0xab, + 0xaf,0xff,0x87,0x14,0xfe,0xff,0xff,0xff,0xff,0xdb,0xd4,0xff,0x03,0x01,0xfc, + 0xff,0xff,0xff,0xff,0x6b,0x57,0xff,0x06,0x00,0xfc,0xff,0xff,0xff,0xff,0x5a, + 0xd5,0xff,0x01,0x00,0xfc,0xff,0xff,0xff,0xff,0xad,0xb5,0xff,0x00,0x00,0xfa, + 0xff,0xff,0xff,0xbf,0x6a,0xd5,0xff,0x00,0x00,0xfd,0xff,0xff,0xff,0xff,0xdf, + 0xb6,0xff,0x22,0x81,0xfe,0xff,0xff,0xff,0xff,0x6b,0xe3,0xff,0x0b,0x01,0xfd, + 0xff,0xff,0xff,0xff,0xf7,0xf5,0xff,0xa7,0x82,0xff,0xff,0xff,0xff,0xff,0x5b, + 0xdf,0xff,0x47,0x85,0xfe,0xff,0xff,0xff,0xff,0xf5,0xf5,0xff,0x83,0xaa,0xfe, + 0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x47,0x6d,0xff,0xff,0xff,0xff,0xff,0xaf, + 0xff,0xff,0x87,0xfa,0xff,0xff,0xff,0xff,0xff,0xf7,0xfd,0xff,0xaf,0xfa,0xff, + 0xff,0xff,0xff,0xff,0x5f,0xff,0xff,0x17,0xfc,0xff,0xff,0xff,0xff,0xff,0xd7, + 0xff,0xff,0x3f,0xfa,0xff,0xff,0xff,0xff,0xff,0xaf,0xfe,0xff,0x1f,0xf8,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xeb,0xff, + 0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xd5,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xfd,0xff,0xff,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xf6,0xff,0x5b,0xc9,0xff, + 0xff,0xff,0xff,0xff,0xaa,0xfb,0xff,0xa0,0x82,0xff,0xff,0xff,0xff,0x7f,0x75, + 0xf5,0xff,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xab,0xeb,0xff,0x00,0x80,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xfe,0xff,0x07,0xad,0xfe,0xff,0xff,0xff,0xff,0xab, + 0xef,0xff,0x0b,0x52,0xff,0xff,0xff,0xff,0xff,0xdf,0xfb,0xff,0x17,0xac,0xfe, + 0xff,0xff,0xff,0xff,0x57,0xbf,0xff,0x3f,0xbe,0xfe,0xff,0xff,0xff,0xff,0xdf, + 0xff,0xff,0x1f,0xfc,0xfe,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x7f,0xba,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xfa,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfe,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xef,0xf9,0xff, + 0xff,0xff,0xff,0xff,0x7b,0xff,0xff,0xaf,0xf9,0xff,0xff,0xff,0xff,0xff,0xf7, + 0xfd,0xff,0xc7,0xf0,0xff,0xff,0xff,0xff,0xff,0x7b,0xfe,0xff,0x43,0xf9,0xff, + 0xff,0xff,0xff,0xff,0x6b,0xfd,0xff,0x87,0xf0,0xff,0xff,0xff,0xff,0xff,0xfb, + 0xfa,0xff,0x43,0xe9,0xff,0xff,0xff,0xff,0xff,0xab,0xfe,0xff,0xa7,0xf0,0xff, + 0xff,0xff,0xff,0xff,0xbb,0xfa,0xbf,0x82,0xa8,0xff,0xff,0xff,0xff,0xbf,0x69, + 0xfa,0x7f,0x01,0x50,0xff,0xff,0xff,0xff,0xdf,0xaa,0xd4,0x3f,0x00,0xa0,0xfe, + 0xff,0xff,0xff,0xf7,0xb5,0xfa,0xbf,0x02,0x40,0xff,0xff,0xff,0xff,0xff,0x77, + 0xfd,0xff,0xc3,0xb0,0xff,0xff,0xff,0xff,0xff,0xeb,0xf6,0xff,0x03,0xe9,0xff, + 0xff,0xff,0xff,0xff,0xbb,0xfd,0xff,0xc7,0xd1,0xff,0xff,0xff,0xff,0xff,0xfb, + 0xf7,0xff,0xa3,0xca,0xff,0xff,0xff,0xff,0xff,0xf7,0xfd,0xff,0x87,0xc7,0xff, + 0xff,0xff,0xff,0xff,0xfb,0xf7,0xff,0xc7,0xa5,0xff,0xff,0xff,0xff,0xff,0xf7, + 0xfb,0xff,0xa7,0xcf,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xc7,0x87,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xff,0xff,0xfb, + 0xff,0xff,0xcf,0x6f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x5f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0x3f,0xfc,0xff, + 0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xaf, + 0xff,0xff,0x2f,0xfa,0xff,0xff,0xff,0xff,0xff,0xde,0xfe,0xff,0x10,0xd4,0xff, + 0xff,0xff,0xff,0xbf,0x8a,0xf5,0xff,0x08,0x84,0xff,0xff,0xff,0xff,0xff,0x56, + 0xeb,0x7f,0x00,0x40,0xff,0xff,0xff,0xff,0x7f,0xad,0xff,0xff,0x18,0x04,0xff, + 0xff,0xff,0xff,0xbf,0xae,0xeb,0xff,0x28,0xa4,0xff,0xff,0xff,0xff,0xff,0xd6, + 0xf6,0x7f,0x10,0x84,0xfe,0xff,0xff,0xff,0x7f,0x4d,0xeb,0xff,0x00,0x40,0xff, + 0xff,0xff,0xff,0x7f,0x55,0xf7,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x9e, + 0xed,0xff,0x18,0x84,0xff,0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x15,0xea,0xff, + 0xff,0xff,0xff,0xff,0xd6,0xf7,0xff,0x3d,0x5c,0xff,0xff,0xff,0xff,0xff,0x5f, + 0xff,0xff,0x1f,0xf6,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfc,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xef, + 0xff,0xff,0x5f,0xfe,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0xd1,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfa,0xff,0xff,0x69,0xff,0xff,0xff,0xff,0xff,0xff,0xee,0xff,0xff,0xa1,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc2,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xf5,0xff,0xff,0x83,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xc2,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xf5,0xff,0xff,0x81,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfa,0xff,0x7f,0xc0,0xff,0xff,0xff,0xff,0xff,0xbf,0xea,0xff,0xff,0x40,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0x7f,0xa1,0xff,0xff,0xff,0xff,0xff,0xff, + 0xf5,0xff,0xff,0xa1,0xfe,0xff,0xff,0xff,0xff,0xbf,0xec,0xff,0xbf,0x41,0xff, + 0xff,0xff,0xff,0xff,0xff,0xd6,0xff,0xff,0x82,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xf5,0xff,0xff,0x81,0xfe,0xff,0xff,0xff,0xff,0xbf,0xda,0xff,0x57,0x00,0xff, + 0xff,0xff,0xff,0xff,0x6b,0xf7,0xff,0x2a,0x80,0xff,0xff,0xff,0xff,0xff,0xae, + 0xfa,0xff,0x05,0xc0,0xff,0xff,0xff,0xff,0xff,0xf7,0xef,0xff,0x94,0x5a,0xff, + 0xff,0xff,0xff,0xbf,0xdd,0xff,0xff,0x6b,0xdf,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xf6,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, - 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xef,0xff,0xff,0xaf,0xfc,0xff,0xff, - 0xf5,0xff,0xff,0x2f,0xfd,0xff,0xff,0xdb,0xff,0xff,0x5f,0xfa,0xff,0xff,0xb7, - 0xff,0xff,0x7f,0xe9,0xff,0xff,0xdf,0xfe,0xff,0xbf,0xe4,0xff,0xff,0x7f,0xff, - 0xff,0xff,0xd2,0xff,0xff,0xdf,0xfd,0xff,0xff,0x4b,0xff,0xff,0x7f,0xf7,0xff, - 0xff,0x2d,0xff,0xff,0xff,0xfb,0xff,0xff,0x17,0xfe,0xff,0xff,0xf5,0xff,0xff, - 0x5f,0xff,0xff,0xff,0xf5,0xff,0xff,0x1f,0xfd,0xff,0xff,0xf7,0xff,0xff,0x17, - 0xfe,0xff,0x7f,0xfb,0xff,0xff,0xad,0xff,0xff,0xff,0xff,0xff,0xff,0x53,0xff, - 0xff,0xbf,0xfe,0xff,0xff,0xe5,0xff,0xff,0xdf,0xff,0xff,0x7f,0xea,0xff,0xff, - 0x6b,0xff,0xff,0xbf,0xf4,0xff,0xff,0xef,0xff,0xff,0x7f,0xfa,0xff,0xff,0xef, - 0xff,0xff,0x2f,0xfc,0xff,0xff,0xfb,0xff,0xff,0x9f,0xff,0xff,0xff,0xfd,0xff, - 0xff,0x57,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0x7f,0xe5,0xff,0xff,0xb7,0xfe,0xff,0x5f,0xa9,0xff,0xff,0x7d, - 0xff,0xff,0x57,0x45,0xff,0xbf,0xbf,0xfa,0xff,0x55,0x53,0xfd,0xff,0x76,0xed, - 0xff,0xab,0x83,0xfa,0xbf,0xbf,0xf6,0xff,0xd1,0x51,0xfa,0x6f,0x7f,0xbf,0xff, - 0x6a,0xc7,0xfa,0xbf,0x7f,0xed,0xff,0xf1,0xa1,0xea,0xbf,0x7f,0xbf,0xff,0xf4, - 0xd7,0xea,0xdf,0xbe,0xf5,0xfe,0xd2,0x4b,0xd5,0xbf,0xff,0xdf,0x7d,0xf9,0xa5, - 0xca,0xaf,0xff,0xf5,0xfe,0xe2,0x1f,0xa6,0x7f,0xff,0xbb,0xff,0xb9,0x57,0xd5, - 0xaf,0xff,0xed,0xfd,0xe0,0x2f,0xca,0x7f,0xfb,0x77,0xff,0xf5,0x9f,0xea,0xbf, - 0xef,0xdb,0xff,0x97,0x3e,0xe9,0xff,0xfe,0x6f,0xff,0x6d,0xdb,0xf4,0xff,0xfb, - 0xbf,0xff,0x5f,0x7d,0xf9,0xff,0xef,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0x7f,0x6d,0xfd,0xff,0xdf,0xab,0xff,0xbf,0x55,0xaa,0xff,0xbf,0xd6, - 0xfa,0xff,0x24,0x50,0xff,0xf7,0xd7,0xff,0x7f,0x5b,0xda,0xff,0xff,0xd7,0xff, - 0xff,0x57,0xe8,0xff,0xff,0xdb,0xff,0xff,0xbf,0xfc,0xff,0xbf,0xcf,0xff,0xbf, - 0x5a,0xb4,0xff,0xf7,0x6b,0xff,0xbf,0x5e,0xd8,0xff,0x7b,0xd7,0xfd,0x5f,0x25, - 0xea,0xfe,0xef,0xcb,0xff,0x3f,0x5d,0xb4,0xff,0xff,0x6f,0xff,0x7f,0x2b,0xd4, - 0xfe,0xff,0xd5,0xfb,0xff,0xbf,0xe8,0xff,0xdf,0xd7,0xff,0x7f,0x2b,0x7a,0xff, - 0xff,0xd7,0xff,0xff,0x7f,0xf8,0xff,0xff,0xef,0xff,0xff,0xbf,0xfc,0xff,0xff, - 0xd7,0xff,0xff,0x7f,0xfa,0xff,0xff,0xef,0xff,0xff,0x7f,0xfc,0xff,0xff,0xd7, - 0xff,0xff,0x7f,0xfa,0xff,0xff,0xef,0xff,0xff,0x7f,0xfc,0xff,0xff,0xd7,0xff, - 0xff,0xbf,0xf8,0xff,0xff,0xdf,0xff,0xff,0x7f,0xfa,0xff,0xff,0xe7,0xff,0xff, - 0x7f,0xf4,0xff,0xff,0xdf,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff, - 0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xef,0xff,0xff,0xff,0xfe,0xff,0xff,0xef, - 0xff,0xff,0x7f,0xfc,0xff,0xff,0xef,0xff,0xff,0x7f,0xfc,0xff,0xff,0xef,0xff, - 0xff,0x7f,0xfd,0xff,0xff,0xef,0xff,0xff,0x7f,0xfc,0xff,0xff,0xef,0xff,0xff, - 0x7f,0xfd,0xff,0xff,0xef,0xff,0xff,0x7f,0xfc,0xff,0xff,0xeb,0xff,0xff,0xbf, - 0xfc,0xff,0xff,0xdf,0xff,0xff,0x7f,0xfc,0xff,0xff,0xef,0xff,0xff,0xbf,0xfc, - 0xff,0xff,0xef,0xff,0xff,0x7f,0xfc,0xff,0xff,0xd7,0xff,0xff,0x7f,0xfd,0xff, - 0xff,0xef,0xff,0xff,0x7f,0xfa,0xff,0xff,0xef,0xff,0xff,0x7f,0xfc,0xff,0xff, - 0xdf,0xff,0xff,0xbf,0xfa,0xff,0xff,0xef,0xff,0xff,0xff,0xf4,0xff,0xff,0x7f, - 0xff,0xff,0xff,0xea,0xff,0xff,0x7f,0xff,0xff,0xff,0xe3,0xff,0xff,0xbf,0xff, - 0xff,0xff,0xd5,0xff,0xff,0xff,0xfe,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff, - 0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xaf,0xaa,0xfe,0xff,0x55,0xf5,0xff,0x5f,0x95,0xfa,0xff,0xff,0xdf, - 0xff,0x2f,0x52,0xf9,0x7f,0xd9,0xb6,0xff,0x8f,0xad,0xfa,0xff,0xf6,0xdf,0xff, - 0x97,0xb6,0xf0,0xff,0xfb,0xab,0xff,0x0f,0x55,0xfa,0xff,0xac,0xde,0xff,0xa7, - 0x54,0xf1,0xff,0xd7,0xaa,0xff,0x17,0x02,0xf8,0xff,0xb4,0xaa,0xff,0x8d,0x54, - 0xf2,0x7f,0xab,0xd5,0xff,0x43,0x82,0xe8,0xbf,0xdd,0x6a,0xff,0x29,0x11,0xf4, - 0xaf,0xb6,0xda,0xff,0x05,0x8a,0xea,0x7f,0x6b,0xeb,0xff,0xaa,0x24,0xfa,0xff, - 0xbd,0xb1,0xff,0x57,0x09,0xfa,0xff,0xd6,0xed,0xff,0x8f,0x14,0xfd,0xff,0x7b, - 0xf5,0xff,0x2f,0x25,0xfa,0x7f,0xed,0xdb,0xff,0x8f,0x9a,0xfa,0xff,0xfa,0xff, - 0xff,0x4f,0xab,0xfa,0xff,0xdd,0xee,0xff,0x17,0xed,0xfe,0xff,0xf7,0xff,0xff, - 0x4f,0xb5,0xff,0xff,0x5a,0xff,0xff,0xaf,0xea,0xff,0xff,0xef,0xff,0xff,0x3f, - 0xf4,0xff,0xff,0xb7,0xff,0xff,0x5f,0xe9,0xff,0xff,0xcf,0xff,0xff,0x7f,0xf4, - 0xff,0xff,0x7f,0xff,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0xff,0xfa,0xff, - 0xff,0x4b,0xff,0xff,0x7f,0xff,0xff,0xff,0xa5,0xff,0xff,0xdf,0xfa,0xff,0xbf, - 0x25,0xff,0x7f,0x75,0xfb,0xff,0x41,0x95,0xfe,0x5f,0xad,0xf5,0xff,0x01,0x08, - 0xff,0xbf,0xd5,0xfa,0xff,0x4a,0x25,0xfe,0xff,0x7a,0xf7,0xff,0x15,0x92,0xfe, - 0xff,0xcf,0xfb,0xff,0x97,0xa8,0xfa,0xff,0xea,0xde,0xff,0x4f,0x56,0xfd,0xff, - 0xaf,0xf7,0xff,0x3f,0xb8,0xfa,0xff,0xeb,0xdf,0xff,0xff,0xec,0xfa,0xff,0xdf, - 0xff,0xff,0x3f,0xfa,0xfb,0xff,0xef,0xff,0xff,0x7f,0xe9,0xfd,0xff,0x7f,0xff, - 0xff,0xff,0xed,0xff,0xff,0xbf,0xff,0xff,0x7f,0xe5,0xff,0xff,0xff,0xfe,0xff, - 0xff,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xab,0xff,0xff,0xff,0xfd,0xff,0xff, - 0xef,0xff,0xff,0xff,0xff,0xff,0xff,0x5b,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff, - 0xff,0xff,0xe7,0xff,0xff,0xbd,0xff,0xff,0x9f,0xf3,0xff,0xff,0xff,0xfe,0xff, - 0xaf,0xc5,0xff,0xff,0x5a,0xff,0xff,0x97,0xe2,0xff,0xff,0xbd,0xfe,0xff,0x4f, - 0xd3,0xff,0xff,0xba,0xfe,0xff,0x0f,0xc5,0xff,0xff,0x7b,0xff,0xff,0xa7,0xd1, - 0xff,0xff,0x5c,0xfd,0xff,0x8f,0x42,0xff,0xff,0x55,0xfe,0xff,0x8a,0x64,0xff, - 0x57,0xba,0xfa,0x3f,0x05,0x41,0xfd,0xef,0x29,0xd5,0xbf,0x44,0x80,0xfa,0x7b, - 0xb5,0xfe,0xbf,0x0a,0x45,0xfd,0xef,0xba,0xfa,0x7f,0x47,0xa1,0xfe,0xff,0x6d, - 0xff,0xff,0x17,0xa5,0xff,0x7f,0x7d,0xfd,0xff,0x8f,0x53,0xff,0xff,0xbb,0xf7, - 0xff,0xaf,0x4a,0xff,0xff,0xfd,0xfd,0xff,0x8f,0x55,0xff,0x7f,0x75,0xfb,0xff, - 0x4f,0x2b,0xff,0xff,0xfd,0xff,0xff,0x97,0x9f,0xfe,0xff,0xff,0xf5,0xff,0x4f, - 0x5f,0xff,0xff,0xfa,0xfb,0xff,0x97,0x2f,0xfe,0xff,0xfd,0xff,0xff,0xdf,0xff, - 0xff,0xff,0xff,0xff,0xff,0xaf,0xff,0xfa,0xff,0xff,0xdf,0xff,0xdf,0xff,0xfd, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xfe,0xff,0xff,0xef,0xff,0xff,0x7f,0xfd,0xff,0xff,0xf7,0xff,0xff, - 0x7f,0xfc,0xff,0xff,0xdf,0xff,0xff,0x7f,0xfa,0xff,0xff,0xe7,0xff,0xff,0xbf, - 0xf8,0xff,0xff,0xdb,0xff,0xff,0x5b,0xfc,0xff,0x7f,0xa7,0xff,0xff,0x2a,0x48, - 0xff,0x9f,0xad,0xf5,0xff,0xa1,0x24,0xfe,0xaf,0xc6,0xf6,0xff,0x10,0x10,0xfd, - 0x5f,0x6b,0xeb,0x7f,0x41,0x4a,0xfd,0x5f,0xd7,0xfd,0xff,0x34,0x28,0xfd,0xbf, - 0xcf,0xeb,0xff,0xa9,0x2c,0xfd,0x5f,0xe5,0xfe,0xff,0x20,0x94,0xfc,0x2f,0x57, - 0xeb,0xff,0x51,0x28,0xfe,0xbf,0xa5,0xf5,0xff,0x01,0x80,0xfa,0xdf,0xae,0xeb, - 0xff,0x6a,0x2a,0xfe,0xbf,0xd7,0xfe,0xff,0x35,0xb8,0xff,0xff,0xef,0xff,0xff, - 0xbb,0x5c,0xfd,0xff,0xd7,0xff,0xff,0x7f,0xf4,0xff,0xff,0xef,0xff,0xff,0xbf, - 0xfc,0xff,0xff,0xd7,0xff,0xff,0x7f,0xfa,0xff,0xff,0xef,0xff,0xff,0xbf,0xfc, - 0xff,0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0xef,0xff,0xff,0xff,0xfe,0xff, - 0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xef,0xff,0xff,0x7f,0xff,0xff,0xff,0xd7,0xff,0xff,0xff,0xfd,0xff,0xff, - 0x53,0xff,0xff,0xbf,0xfe,0xff,0xff,0x45,0xfd,0xff,0x7f,0xf5,0xff,0xff,0x53, - 0xff,0xff,0x7f,0xff,0xff,0xff,0x85,0xfe,0xff,0xff,0xf2,0xff,0xff,0x2b,0xff, - 0xff,0xff,0xfb,0xff,0xff,0x97,0xfe,0xff,0x5f,0xf5,0xff,0xff,0x01,0xfe,0xff, - 0x7f,0xfd,0xff,0x7f,0x55,0xff,0xff,0x5f,0xf5,0xff,0xff,0x02,0xfd,0xff,0x7f, - 0xfb,0xff,0xff,0xa5,0xfe,0xff,0x5f,0xed,0xff,0xff,0x43,0xfd,0xff,0x7f,0xfd, - 0xff,0xff,0x92,0xfe,0xff,0xbf,0xea,0xff,0xff,0x45,0xfa,0xff,0x7f,0xdb,0xff, - 0xff,0x13,0xfa,0xff,0xff,0xed,0xff,0xff,0x85,0xfa,0xff,0x2f,0xf5,0xff,0x2f, - 0x25,0xfd,0xbf,0xf5,0xda,0xff,0xb5,0x10,0xfd,0x7f,0x97,0xfd,0xff,0x0a,0x8a, - 0xfe,0xff,0xfd,0xf7,0xff,0x6b,0x69,0xfd,0xdf,0xef,0xff,0xff,0xaa,0xbe,0xff, - 0x7f,0xff,0xdf,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xfd,0xff,0xff,0xef,0xff,0xff,0xbf,0xfe,0xff,0xff,0xff,0xff,0xff,0x7f, - 0xf9,0xff,0xff,0xcf,0xff,0xff,0x7f,0xfc,0xff,0xff,0xeb,0xff,0xff,0x7f,0xf4, - 0xff,0xff,0xaf,0xff,0xff,0x2b,0xd8,0xff,0xaf,0xa2,0xfd,0xff,0x21,0xa2,0xfe, - 0x3f,0x8b,0xf6,0xff,0x08,0x28,0xfd,0x9f,0x6a,0xfb,0xff,0x50,0x80,0xfe,0xbf, - 0xd7,0xee,0xff,0xa2,0xd4,0xfe,0xaf,0xbe,0xff,0xff,0x51,0x52,0xff,0xbf,0x6f, - 0xfd,0xff,0x68,0xd5,0xff,0x5f,0xbf,0xff,0xff,0xb3,0xa2,0xff,0xbf,0xfb,0xfe, - 0xff,0xd0,0xd3,0xff,0x7f,0x5f,0xff,0xff,0x6b,0xe5,0xff,0xdf,0x7d,0xfd,0xff, - 0xa9,0xa2,0xff,0x7f,0xb7,0xff,0xff,0x55,0xd5,0xff,0xff,0xfd,0xfe,0xff,0x0b, - 0xd5,0xff,0xff,0xd5,0xfb,0xff,0xa7,0xaa,0xfe,0xff,0xfa,0xff,0xff,0x17,0x3d, - 0xff,0xff,0xed,0xeb,0xff,0x8f,0x5e,0xfd,0xff,0xff,0xff,0xff,0x5f,0x7f,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xbf,0xff,0xff,0xff,0x51,0x9f, - 0xfe,0xdf,0xfe,0xf5,0xff,0xea,0x5b,0xfe,0xbf,0xff,0xfb,0xff,0xb1,0x5f,0xfd, - 0xdf,0xfe,0xef,0xff,0xea,0x3e,0xfd,0xbf,0xff,0xf7,0xff,0xd1,0x57,0xfd,0x7f, - 0xff,0xdd,0xff,0x6a,0xaf,0xfa,0xaf,0xfb,0xf7,0xff,0xe9,0x3f,0xfd,0x7f,0xff, - 0xfb,0xff,0xb1,0x5b,0xfd,0xbf,0xff,0xdf,0xff,0xea,0x2f,0xfa,0xdf,0xfe,0xf5, - 0xff,0x69,0xbf,0xfd,0xbf,0xf7,0xef,0xff,0xe1,0x57,0xfc,0x5f,0xdf,0xf5,0xff, - 0xb5,0x2e,0xfb,0xbf,0xff,0xdb,0xff,0xa1,0x15,0xfd,0x7f,0x75,0xf5,0xff,0x54, - 0x95,0xfc,0x5f,0xdf,0xf7,0xff,0x43,0x15,0xfd,0xff,0xfd,0xed,0xff,0xb4,0x5b, - 0xfd,0xbf,0xff,0xfb,0xff,0xeb,0x5f,0xfe,0xdf,0xff,0xff,0xff,0xf2,0x7f,0xfb, - 0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xdb,0xfe,0xff,0x7f,0xed,0xff,0xff,0x55,0x53, - 0xfd,0xbf,0xb6,0xea,0xff,0x02,0x09,0xfa,0x5f,0x59,0xb5,0xff,0x41,0xa2,0xf4, - 0xff,0xb6,0xfe,0xff,0x17,0x91,0xfa,0xff,0x5b,0xf7,0xff,0x57,0x64,0xff,0xff, - 0xb7,0xfe,0xff,0x5f,0xd1,0xff,0xff,0x6f,0xff,0xff,0xaf,0xc2,0xff,0xff,0x5f, - 0xfd,0xff,0xff,0x65,0xff,0xff,0x7f,0xff,0xff,0xff,0xd2,0xff,0xff,0xbf,0xfe, - 0xff,0xff,0xe3,0xff,0xff,0x7f,0xff,0xff,0xff,0xd3,0xff,0xff,0xff,0xff,0xff, - 0xff,0xe5,0xff,0xff,0xbf,0xfe,0xff,0xff,0xd7,0xff,0xff,0xff,0xff,0xff,0xff, - 0xd3,0xff,0xff,0xff,0xfe,0xff,0xff,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xb7, - 0xff,0xff,0xff,0xfb,0xff,0xff,0xbf,0xfe,0xff,0xff,0xff,0xff,0xff,0x5f,0xff, - 0xff,0xff,0xfb,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf, - 0x9c,0xfe,0xff,0xd7,0xf5,0xff,0x7f,0x5a,0xfe,0xff,0xef,0xf7,0xff,0xbf,0x2c, - 0xfd,0xff,0xdb,0xed,0xff,0x7f,0x3a,0xfd,0xff,0xef,0xfb,0xff,0x5f,0x98,0xfa, - 0xff,0xab,0xd7,0xff,0x77,0x4c,0xfc,0xff,0xd7,0xea,0xff,0x1f,0x28,0xf2,0xff, - 0x4a,0xab,0xff,0xa5,0x08,0xf9,0xff,0xd7,0xd5,0xff,0x17,0x52,0xe8,0xff,0x6b, - 0xbb,0xff,0x5f,0x14,0xfa,0xff,0xd7,0xed,0xff,0x7f,0xa8,0xfa,0xff,0xdf,0xf7, - 0xff,0xbf,0x2c,0xfd,0xff,0xe7,0xdb,0xff,0x7f,0xaa,0xfa,0xff,0xdf,0xf6,0xff, - 0x7f,0x38,0xfd,0xff,0xeb,0xdb,0xff,0xbf,0x4c,0xfa,0xff,0xcf,0xff,0xff,0x7f, - 0x3a,0xfd,0xff,0xef,0xeb,0xff,0x7f,0x94,0xfa,0xff,0xd7,0xf6,0xff,0x7f,0x5a, - 0xfd,0xff,0xef,0xdb,0xff,0x7f,0x14,0xfd,0xff,0xaf,0xf6,0xff,0x7f,0x54,0xfc, - 0xff,0xd7,0xf5,0xff,0x7f,0x08,0xfe,0xff,0xef,0xfb,0xff,0xbf,0xaa,0xfd,0xff, - 0xff,0xef,0xff,0xff,0xbe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb, - 0xff,0xff,0x7f,0xff,0xff,0xff,0xa5,0xff,0xff,0xaf,0xfd,0xff,0xff,0xa9,0xeb, - 0xff,0xbf,0x77,0xff,0xff,0x52,0x95,0xfe,0xff,0xde,0xe9,0xff,0xab,0x2a,0xf2, - 0xff,0x6b,0x55,0xff,0x56,0x00,0xd4,0x7f,0xaf,0xeb,0xff,0x2b,0x15,0xf1,0xff, - 0xf5,0xb5,0xff,0xaf,0xac,0xfc,0xff,0xdf,0xff,0xff,0x57,0x2a,0xf6,0xff,0xea, - 0xd6,0xff,0x17,0xbd,0xfa,0xff,0xf5,0xff,0xff,0x4f,0xdd,0xfa,0xbf,0xde,0xbf, - 0xff,0x25,0xfa,0xfa,0xff,0xf5,0xef,0xff,0x4b,0xfd,0xf9,0x5f,0xff,0xbf,0xff, - 0x29,0xdd,0xf4,0x7f,0xd7,0xdf,0xff,0xe1,0xfa,0xfa,0xaf,0xff,0xbf,0xff,0x74, - 0x7e,0xf1,0xff,0xd7,0xdf,0xff,0xb7,0xfa,0xf9,0xff,0xef,0xaf,0xff,0x7d,0xfc, - 0xf8,0xff,0xb7,0xdf,0xff,0xbf,0x6c,0xf5,0xff,0xdf,0xf5,0xff,0xff,0x92,0xf8, - 0xff,0x6f,0xad,0xff,0xbf,0x08,0xfd,0xff,0xbf,0xf5,0xff,0x7f,0x25,0xfc,0xff, - 0xff,0xfe,0xff,0xff,0x95,0xff,0xff,0xff,0xfb,0xff,0xff,0x77,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff, - 0xff,0xff,0xfd,0xff,0xff,0xdf,0xfe,0xff,0xff,0xf7,0xff,0xff,0xaf,0xfe,0xfa, - 0xff,0xff,0xdf,0xff,0x5f,0x5a,0xf9,0xff,0xd7,0xaf,0xff,0x2f,0xbd,0xf4,0xff, - 0xed,0xfb,0xff,0x7f,0x5a,0xfa,0xff,0xd7,0xed,0xff,0x5f,0x2c,0xfd,0xff,0xef, - 0xf7,0xff,0xbf,0xb8,0xfa,0xff,0xaf,0xfa,0xff,0x7f,0x0a,0xff,0xff,0xd7,0xff, - 0xff,0xbf,0xd0,0xfe,0xff,0x3f,0xf5,0xff,0xff,0x44,0xff,0xff,0xaf,0xfe,0xff, - 0x3f,0xa1,0xff,0xff,0xb7,0xfe,0xff,0xff,0xc4,0xff,0xff,0x2f,0xfd,0xff,0x5f, - 0x50,0xff,0xff,0xbb,0xfe,0xff,0x7f,0xa1,0xff,0xff,0xd6,0xf5,0xff,0x05,0x8a, - 0xfe,0xbf,0xea,0xfa,0xff,0x8b,0x14,0xfe,0xff,0xfa,0xf7,0xff,0x05,0x55,0xff, - 0xbf,0xef,0xfd,0xff,0xd5,0x5e,0xfd,0xff,0xfe,0xf7,0xff,0xd5,0xff,0xfb,0xdf, - 0xff,0xff,0xff,0xfb,0x7f,0xfd,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xe9,0xff,0xff, - 0x57,0xff,0xff,0xbf,0xd2,0xff,0xff,0xbf,0xfd,0xff,0xbf,0xc8,0xff,0xff,0xdf, - 0xfe,0xff,0xff,0xa2,0xff,0xff,0x7f,0xff,0xff,0xff,0x95,0xff,0xff,0xdf,0xfd, - 0xff,0xff,0xa3,0xff,0xff,0xff,0xfa,0xff,0xff,0x4a,0xff,0xfa,0x7f,0xfd,0xdf, - 0xff,0x87,0xff,0xfa,0x7f,0xf9,0xef,0xff,0x0b,0x3f,0xf9,0xff,0xfd,0xfb,0xff, - 0x8f,0x5d,0xfd,0xff,0xf6,0xef,0xff,0xa7,0xbe,0xfe,0xff,0xfb,0xfb,0xff,0x9f, - 0x2a,0xff,0xff,0xd6,0xff,0xff,0x4f,0xbe,0xff,0xff,0xef,0xff,0xff,0x7f,0xf8, - 0xff,0xff,0xab,0xff,0xff,0x3f,0xfc,0xff,0xff,0xef,0xff,0xff,0xff,0xea,0xff, - 0xff,0xbf,0xfe,0xff,0x7f,0xe9,0xff,0xff,0xff,0xff,0xff,0xff,0xd5,0xff,0xff, - 0xff,0xfe,0xff,0xff,0xd7,0xff,0xff,0xbf,0xff,0xff,0xff,0x55,0xff,0xff,0xff, - 0xfb,0xff,0xff,0x2f,0xff,0xff,0xff,0xfd,0xff,0xff,0x5f,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; + 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0x97,0xff,0xff,0x1f,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0x4f, + 0xff,0xff,0x09,0xf4,0xff,0xff,0xff,0xff,0x7f,0x55,0xfd,0xff,0x10,0xa8,0xff, + 0xff,0xff,0xff,0x7f,0x8d,0xf6,0x7f,0x00,0x40,0xff,0xff,0xff,0xff,0xff,0x76, + 0xfb,0xff,0x10,0xd0,0xff,0xff,0xff,0xff,0x7f,0xbe,0xfd,0xff,0xb0,0xec,0xff, + 0xff,0xff,0xff,0xff,0xdd,0xfe,0xff,0x58,0xd2,0xff,0xff,0xff,0xff,0x7f,0x7e, + 0xfb,0xff,0xa8,0xf9,0xff,0xff,0xff,0xff,0xff,0xfb,0xfe,0xff,0xf0,0xf0,0xff, + 0xff,0xff,0xff,0xbf,0xbe,0xfd,0xff,0x58,0xf9,0xff,0xff,0xff,0xff,0xff,0xfb, + 0xfe,0xff,0x54,0xe9,0xff,0xff,0xff,0xff,0xff,0xae,0xfd,0xff,0x52,0xf1,0xff, + 0xff,0xff,0xff,0xff,0x7b,0xff,0xff,0x45,0xf5,0xff,0xff,0xff,0xff,0xff,0xef, + 0xfb,0xff,0x83,0xaa,0xff,0xff,0xff,0xff,0xff,0xf3,0xf7,0xff,0x07,0xcf,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0x6f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff, + 0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xd4,0xab,0xff,0xff,0xff,0xff,0xff,0xfe, + 0xf7,0xff,0xf4,0x8f,0xff,0xff,0xff,0xff,0xbf,0xfd,0xff,0xff,0x58,0x47,0xff, + 0xff,0xff,0xff,0xff,0xfe,0xeb,0xff,0xf0,0x4f,0xff,0xff,0xff,0xff,0x7f,0xfb, + 0xff,0xff,0xb4,0x4b,0xff,0xff,0xff,0xff,0xff,0xfe,0xd7,0xff,0xf0,0x8f,0xfe, + 0xff,0xff,0xff,0x7f,0xdf,0xff,0xff,0xd8,0x56,0xff,0xff,0xff,0xff,0xff,0xfd, + 0xeb,0xff,0xf4,0x4b,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xd4,0x8f,0xfe, + 0xff,0xff,0xff,0xbf,0xfe,0xdf,0xff,0xf0,0x4b,0xff,0xff,0xff,0xff,0xff,0xfe, + 0xf7,0xff,0x58,0x47,0xff,0xff,0xff,0xff,0x7f,0xdb,0xea,0xff,0xa8,0x85,0xfe, + 0xff,0xff,0xff,0xff,0xf6,0xf7,0xff,0x40,0x42,0xff,0xff,0xff,0xff,0xff,0x5d, + 0xdb,0xff,0xb0,0x02,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xd0,0x8b,0xff, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xfc,0xcf,0xfe,0xff,0xff,0xff,0xff,0xfe, + 0xef,0xff,0xf5,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xb6,0xfd,0xff,0xff,0xff,0xff,0xff,0xb5, + 0xfb,0xff,0x51,0x55,0xff,0xff,0xff,0xff,0xff,0xee,0xd6,0xff,0x40,0x01,0xfe, + 0xff,0xff,0xff,0xbf,0x52,0xb5,0xff,0x00,0x00,0xfd,0xff,0xff,0xff,0xff,0xbd, + 0xfe,0xff,0x03,0x68,0xff,0xff,0xff,0xff,0xff,0xd7,0xfa,0xff,0x17,0xf0,0xff, + 0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0x6f,0xf1,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xfd,0xff,0xff,0xd8,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xbf,0xf1,0xff, + 0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xfd,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfa,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfd,0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xf5,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff, + 0xf7,0xff,0xff,0xa7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xef,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xf7,0xff,0x3f,0x05,0xff,0xff,0xff,0xff,0xff,0xdf, + 0xef,0xff,0x1f,0xce,0xff,0xff,0xff,0xff,0xff,0x5f,0xf7,0xff,0x3f,0x84,0xfe, + 0xff,0xff,0xff,0xff,0xd7,0xed,0xff,0x17,0x46,0xff,0xff,0xff,0xff,0xff,0xaf, + 0xdb,0xff,0x1f,0x8a,0xfe,0xff,0xff,0xff,0xff,0x5f,0xef,0xff,0x0b,0x00,0xfe, + 0xff,0xff,0xff,0xff,0xa5,0xaa,0xff,0x0b,0x04,0xfa,0xff,0xff,0xff,0xff,0x9f, + 0xd5,0xff,0x0a,0x00,0xfc,0xff,0xff,0xff,0xff,0xd7,0xb7,0xff,0x17,0x04,0xff, + 0xff,0xff,0xff,0xff,0x5f,0xef,0xff,0x1f,0x8a,0xfe,0xff,0xff,0xff,0xff,0xd7, + 0xf5,0xff,0x3f,0xa4,0xfe,0xff,0xff,0xff,0xff,0xaf,0xdf,0xff,0x1f,0x4c,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xf7,0xff,0x3f,0x86,0xfe,0xff,0xff,0xff,0xff,0x5f, + 0xdb,0xff,0x1f,0x4a,0xff,0xff,0xff,0xff,0xff,0xdf,0xf7,0xff,0x3f,0x8c,0xfe, + 0xff,0xff,0xff,0xff,0xaf,0xef,0xff,0x1f,0x46,0xff,0xff,0xff,0xff,0xff,0x5f, + 0xf7,0xff,0x3f,0x44,0xff,0xff,0xff,0xff,0xff,0xdf,0xdb,0xff,0x3f,0x00,0xff, + 0xff,0xff,0xff,0xff,0x57,0xf5,0xff,0x1f,0x40,0xff,0xff,0xff,0xff,0xff,0xdf, + 0xf7,0xff,0x7f,0x8e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xeb,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xfe, + 0xff,0xff,0xe5,0xff,0xff,0xff,0xff,0xff,0x7f,0xfb,0xff,0x7f,0xb0,0xfb,0xff, + 0xff,0xff,0xff,0xff,0xbd,0xfd,0xff,0xa8,0xaa,0xff,0xff,0xff,0xff,0xff,0xef, + 0xd6,0xff,0x55,0x01,0xfc,0xff,0xff,0xff,0x7f,0x5b,0x6b,0xff,0x15,0x00,0xf4, + 0xff,0xff,0xff,0xff,0xdf,0xd5,0xff,0x17,0x02,0xfe,0xff,0xff,0xff,0xff,0xeb, + 0xff,0xff,0x0b,0x8d,0xff,0xff,0xff,0xff,0xff,0xb7,0xd7,0xff,0x27,0x6e,0xfd, + 0xff,0xff,0xff,0xff,0xdb,0xff,0xff,0x85,0xad,0xfe,0xff,0xff,0xff,0xff,0xed, + 0xdf,0xff,0x03,0x7e,0xfe,0xff,0xff,0xff,0x7f,0xb7,0xff,0xff,0x24,0x3b,0xff, + 0xff,0xff,0xff,0xff,0xfd,0xaf,0xff,0xa9,0x5e,0xfc,0xff,0xff,0xff,0xff,0xd6, + 0xdf,0xff,0xb0,0x3e,0xfe,0xff,0xff,0xff,0xbf,0xfe,0xbf,0xff,0x58,0x3e,0xfc, + 0xff,0xff,0xff,0xff,0xaf,0xdf,0xff,0x5d,0x5e,0xfe,0xff,0xff,0xff,0xff,0xdf, + 0xbf,0xff,0x3f,0x3d,0xfc,0xff,0xff,0xff,0xff,0x7f,0xdf,0xff,0x3f,0x16,0xfe, + 0xff,0xff,0xff,0xff,0xdf,0xea,0xff,0x5f,0x00,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xf5,0xff,0x7f,0x80,0xfe,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xcb,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff, + 0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x97,0xbe,0xfe,0xff,0xff,0xff,0xff,0xaf,0xaf,0xff,0x97,0x56,0xfe, + 0xff,0xff,0xff,0xff,0xfb,0xdf,0xff,0x2f,0x1e,0xfc,0xff,0xff,0xff,0xff,0xaf, + 0xf7,0xff,0x1f,0x05,0xff,0xff,0xff,0xff,0xff,0xdf,0xdf,0xff,0x3f,0x8e,0xfe, + 0xff,0xff,0xff,0xff,0xaf,0xf5,0xff,0x1f,0x44,0xff,0xff,0xff,0xff,0xff,0x5f, + 0xf7,0xff,0x3f,0xca,0xff,0xff,0xff,0xff,0xff,0xb7,0xfd,0xff,0x1f,0xa8,0xff, + 0xff,0xff,0xff,0xff,0xbf,0xf6,0xff,0x3f,0xe0,0xff,0xff,0xff,0xff,0xff,0xaf, + 0xfc,0xff,0x5f,0xf0,0xff,0xff,0xff,0xff,0xff,0xbf,0xfa,0xff,0x3f,0xd0,0xff, + 0xff,0xff,0xff,0xff,0x5f,0xfd,0xff,0x57,0xe0,0xff,0xff,0xff,0xff,0xff,0xeb, + 0xf6,0xff,0x05,0x80,0xff,0xff,0xff,0xff,0xff,0xb5,0xeb,0xff,0x02,0xc6,0xff, + 0xff,0xff,0xff,0xff,0xd5,0xf7,0xff,0x01,0x85,0xff,0xff,0xff,0xff,0xff,0xfe, + 0xff,0xff,0xc4,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0xbf,0xfe, + 0xff,0xff,0xff,0xbf,0xfd,0xdf,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xef,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xf0,0xff,0xff, + 0xff,0xff,0xff,0xff,0xfd,0xff,0x5f,0xd4,0xff,0xff,0xff,0xff,0xff,0xbf,0xfa, + 0xff,0xff,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc1,0xff,0xff, + 0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xf5, + 0xff,0xff,0x82,0xbf,0xfe,0xff,0xff,0xff,0xff,0xfb,0xdf,0xff,0xc3,0x5f,0xfe, + 0xff,0xff,0xff,0xff,0xf5,0xff,0xff,0x83,0x2f,0xfe,0xff,0xff,0xff,0xff,0xf7, + 0xd7,0xff,0xc5,0x56,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x43,0xaf,0xff, + 0xff,0xff,0xff,0xff,0xd7,0xf7,0xff,0x87,0xc6,0xff,0xff,0xff,0xff,0xff,0xdb, + 0xff,0xff,0x2f,0xfe,0xff,0xff,0xff,0xff,0xff,0x6f,0xff,0xff,0x1f,0xda,0xff, + 0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x3f,0xf8,0xff,0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0xfb,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf2,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfb,0xff,0xff,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xc7,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff + }; diff --git a/hacks/images/matrix.xpm b/hacks/images/matrix.xpm index 0aab685b..6fe3bc80 100644 --- a/hacks/images/matrix.xpm +++ b/hacks/images/matrix.xpm @@ -1,904 +1,905 @@ /* XPM */ -static char * matrix[] = { -"56 837 64 1", +static char * matrix_xpm[] = { +"84 837 65 1", +" c None", ". c #000000", "+ c #020E04", "@ c #021804", "# c #062604", "$ c #0B3008", "% c #021E04", -"& c #114410", -"* c #0C360E", -"= c #0D3E0E", -"- c #0E4E0C", -"; c #1F561E", -"> c #145417", -", c #136314", -"' c #1D5E1D", -") c #1C4E1C", -"! c #127410", -"~ c #269624", -"{ c #1AA614", -"] c #169614", -"^ c #26B529", -"/ c #178618", -"( c #246624", -"_ c #2F832F", -": c #2B7729", -"< c #368B34", -"[ c #3B9439", -"} c #298B27", -"| c #3AC237", -"1 c #42D73C", -"2 c #62DA61", -"3 c #32D634", -"4 c #88E688", -"5 c #1E751C", -"6 c #4CB34A", -"7 c #44AB42", -"8 c #42A244", -"9 c #26C227", -"0 c #FFFFFF", -"a c #40CC44", -"b c #52BB54", -"c c #3E9C3C", -"d c #5AC254", -"e c #286E26", -"f c #32CB34", -"g c #5ACA5C", -"h c #5ED05C", -"i c #2AA62C", -"j c #166E14", -"k c #62DE64", -"l c #3EDE3C", -"m c #36B634", -"n c #D9F9D8", -"o c #26CB24", -"p c #2E9A34", -"q c #66E561", -"r c #9DD89F", -"s c #7AF67C", -"t c #E8FEEA", -"u c #92F294", -"v c #D8F3D8", -"w c #76EE74", +"& c #0C360E", +"* c #114410", +"= c #1F561E", +"- c #145417", +"; c #136314", +"> c #1D5E1D", +", c #0E4E0C", +"' c #1C4E1C", +") c #246624", +"! c #2F832F", +"~ c #2B7729", +"{ c #368B34", +"] c #3B9439", +"^ c #298B27", +"/ c #4CB34A", +"( c #44AB42", +"_ c #42A244", +": c #0D3E0E", +"< c #26C227", +"[ c #52BB54", +"} c #3E9C3C", +"| c #127410", +"1 c #40CC44", +"2 c #5AC254", +"3 c #286E26", +"4 c #178618", +"5 c #269624", +"6 c #62DA61", +"7 c #5ACA5C", +"8 c #5ED05C", +"9 c #2AA62C", +"0 c #3AC237", +"a c #FFFFFF", +"b c #166E14", +"c c #62DE64", +"d c #1E751C", +"e c #26B529", +"f c #88E688", +"g c #42D73C", +"h c #36B634", +"i c #2E9A34", +"j c #66E561", +"k c #7AF67C", +"l c #92F294", +"m c #76EE74", +"n c #1AA614", +"o c #169614", +"p c #32D634", +"q c #32CB34", +"r c #3EDE3C", +"s c #D9F9D8", +"t c #26CB24", +"u c #9DD89F", +"v c #E8FEEA", +"w c #D8F3D8", "x c #73E774", "y c #66E264", "z c #D7F2D8", -"........................................................", -"...........++++++......................++++++...........", -"........++++@++++++.................+@+@#@@@@++.........", -".......+@@@###$#%@@++..............+@@#$$$&$#%@@+.......", -"......+@####*#**$%%@+.............@@$$$=-=--&$#@@.......", -".....+@$&;>>>,,'-)&$#++..........@%-!~{]]{{^]/!-$@+.....", -"....+@#)(__:::<[_('&*@+.........+#$}|123|4442|{5-@+.....", -"...+%%$([678[8668<:(=#@+.......+#%=90000000004a^,$%+....", -"...+##-:[b8[<>>>_8h6:=#++....++#,i|0000f]]]]1000a,$@+...", -"..+@&(:cbg[j----:7k6:&##+.....@#5^|00009////|000a!=$@...", -".+%#;:*$@....+%=~a400049////f0002]-=@...", -".+@$;_[887_j---&:[g7_'&#@+...+%=i10000l9///!|0002i5&#+..", -".+%$(<8777_'=&-&e[d6_()*@+...@%&^400001^!!/!|0002^/-%+..", -".+@$(<888c_,--==:[b6<(;*%+...+#&m400003^//!!f0004^~-#+..", -".+@*e[688c_>=&&=e8d6[('=@+...+%-|000003{!!!!|0000|i,#+..", -".@@$([78cc:,--&&:[d6[e;=@+...@#&m000n0o{//!!|0000|~,#+..", -".@@*;$@...", -".++#&;e[6g85->>>:8d6:&$#@....+@$!i|000qo/]]]f0003!-$%...", -"..+@*-;cdk7:>>'(_7g8:=#++.....+#-/iq0003]]^^2000a,$@+...", -"..+@$*)_dh75>,,e<7h6:$#@+.....+@=,/2000o]^^94000|-$@+...", -"...+#*&e8bc_j::_<[8:'$@+.......@$-!a00n199o12002i=#@....", -"...+@%$':<<_}_<[<:e'&@@+.......+@$=ia44214q041ri!%@+....", -"....+%#='e_=#+.....", -"....++@*&;;(ee::()=#@++.........+@@>!~im|||am/,=#++.....", -".....++@$*&&))))=*#@+............++#=-!!}}/}!-$@%.......", -".......+@@@##%%#%@+@...............+@#%$$$$$#%@%........", -"........+++@@%+@@++.................++%@%#@@%++.........", -"........................................................", -"............+.+.........................+.+.............", -"..........++@@+@++....................+@#%@@@+..........", -".........+@%#$#%@++..................+%%$&=#%@+.........", -"........+@#*=$*$#%++................+#$-,--=$#@+........", -".......+@@)e20t01,-$#%........", -"......+@$$=#%+............+%,}m40002|],=%+.......", -".....++=;e<[7[_e;&$@+............+@,i|20002|i5&#+.......", -"......+$=);(:(;)=$@@..............+=,}ima|p_,=#@........", -".......+%$*=&==$$@+................@$=),5,,=&#+.........", -"........++@+@++@+...................+@@@@@@@+...........", -".........++++++......................+++@++.............", -"...........+++++.......................+++++............", -"........+++@%++@++..................++@%#%%@@+..........", -".......+@%#$*$#$#@++...............+##$=-=&=$%@+........", -".....++@#$$=====$$%++............+@#$--,,,,,-=#@+.......", -".....+@#&&))&)--&=*#@+...........+@=,!//////!,-=%+......", -"....+%#;:<_ee(((((:'=+..........+#$~a429|9^^9|ai>@......", -"...++#$e[d8[____<[[_)#+........+@$-|000011212002}$+.....", -"...+%$=_bhdc<_<<[8b[;#+........+#=,2000044240000i$+.....", -"...+#=)_bh6[:e(e_[7<;#+........+=,/40004ff9|2004p$@.....", -"...+$)([bhc_,,>;(--&;:[_)@+.......+%,~|0000f]//!ia02}#+.....", -"..++$)([bh85--&&);(;$@+.......+@>/m00009//j!/imp>%+.....", -"..+@$&;[6h8:--&*&&&&#+........+@-5i0000f//!,!55,$+......", -"...+*&;[bh85--&=*$#@++.........@-5i0000o]/!,-=$#%+......", -"...@$*)_8dc}j>-=$$#%+..........@=-/200039{/,-*$%%.......", -"...+@$*:[78<_j'*=$#@++.........+%-,|000439{,,=$#++......", -"..+@%$$(<[88c_,&=##@@+........+%#=-^400003{!,=$#@+......", -"...+@#$>e_)=##++.........+#$-]91q4n3o{/,=$@+......", -"...@@#$-'e_[7[}:,-*$@+.........@#$-/i910n0lo^/-=#@......", -"...+%#*&->5~ccp[:'=##@+........+%=-!/]fl0n4qo{,=$@+.....", -"..+@$$=->'e~[ccc_(>&$@+.......+%=-!/]{flqnnn19]!-%@.....", -"...+$&;',!___~p8c}_(&#@........@&!]{^o331lqnn43^!$%.....", -"...@=)'ee_555}c77c[:;#%+.......%,}^|93fool00n001~=%+....", -"...@*;'5__}__~c7878};$++.......%>~if14l13l000004~=%+....", -"...+$&;:$++.......@=5~|40qq0n000004~=@+....", -"...+$*):<878776768c_;#@........+&,}a000000000002~=%.....", -"...+#*=(<8888c88c[[e)#+........+$-!m40000000000a/$@.....", -"....+#$);(eee:ee((()*@+.........@$=/pm||mf|||mm}>%+.....", -".....+@#$*=*&=&==**$@+...........@#$-),,!,!,,--*%+......", -"......++@@######@@+++.............+@@%$$$$$$%%@%+.......", -"........++.@++@+@++.................+++@@@@%%++.........", -"..........++@+++......................++@+++............", -"........+@@@###@++..................@%##$$$%%+..........", -"......+@%#$*=$$*$%++..............+@#$&-,---*#@+........", -".....++@$$=&&&&&$$@++............+%#=-,!!!!!-=%@+.......", -"....++%=;';;;'';)=*#+...........+%%,]ii~iiii/,-$@.......", -"....+%#;_c<:e::<:(;&#+..........+#=p2n4afa14am~5=+......", -"...+@#*:7g6c_<[8[_:;=+.........+@$-a0000140002fp)@......", -"...+@$&@......", -"..+@=)([6g[e>';;(((;*+........+%,}^0000f]iiimmm~-+......", -"..++*&)<7g7<(j';))&*#+........+@-!~4000499{~/}5>$+......", -"..+@#$)_7g7[}:;&=$$%+.........+@$-/200001fi!j-=$+.......", -"..+@#$&_8gbc<_;&$$@++.........+#=-!100004fi!-=%@+.......", -"..+%$=)<8g67[_(&=$@@+.........+%=,/1000n01^!,=%%+.......", -"..+@$&><8d67p_(;=#++..........%#-!~40000q19~,=@+........", -"..+%=-;<7g68[_e;&*%++.........+#,/i4000002|~!-#%+.......", -".+@@)(:[86c<:('-=$%@+........+@%/^o000n2f9i/,=#@+.......", -"..+#;:<[cc<:,>)=$##+++........%$p|400043^]/,-*$@@+......", -"..@#;-==*#$%@+........%$i40nnq3^]/!,-==#@+......", -"..+#;:';)$+........+$~a000039////]ii/-@......", -"..+@)e_<88_(>'>'e_<:)@+.......@#/|200019]{{{910a/#+.....", -"..+%=;e[c6>,e_8b['#+.......+#,i|40019]{^|2000i$+.....", -"...+=&;:<8<:,ee__j_86g7c_j-#%@+..........@#=]910000019/=#@+......", -"....@#$;(_[6b68c_'*$@+..........%$=~^10000003{-=#@......", -"....+##;e}[7bb78<(-=$@+.........@$=~f1q0000049/,=%+.....", -"...+%%*,:}p77777c_5;*#@+.......+#$-{fl4n000n01f],$#+....", -"...+%#*>:}pc77787p_:-$@+.......+#=-{olqnnn00n44f/=%@....", -"...+%$=':~[i77i6ccc_'*#@+......+%=,iflq0n0n00n02i,$%+...", -"...+#$-j_[88m7c8c87[e>*%+......+$-/91qnn0nn0nn0q|],$+...", -"...+#=-([8i66i8}876c_'&$@......%=,/9qnn00nnl00003i!=%...", -"..+@$&,5p766678}p6d8<()*@+....+%&!{f4n000nnl40004^/-#+..", -"..++=>'<8b|ggmi87878_(>$%.....+@,~^4n00000nnn00029~-%...", -"...@='e8bhghhb6i66mc_e;*@......@,i|n0000000n00002|p>%...", -"..+@=;:cbghghg6m88c[_e;=%.....+#,ian00000000n0002|~,#...", -"...+=-'_8mbmbi[}__ee;)=#+......%-/{1n0000nq1l3|9i/,=+...", -"...@#$&e_ccc8}_,'>>-=$#@+......@$-!|10nn0lf^{]]/,-=@+...", -"...+@##>(__<[5'&**$##%@+.......+#$=]91144f^!,>==$#%+....", -"....@%$-(5___(-$*##%@+..........@$=/^fa149/--==%%+......", -"....+@%=;(j::'&$#%%+++..........+@%'pm9a|i!=$##@++......", -".....+@=);((e;=@@@+..............@#,/imm|~,#%@+.........", -".....++$*&&))=$@++...............+@&>55//,=%++..........", -".......+#$#$##++...................@$===&$++............", -".........@+++........................@+++...............", -"........................................................", -"........................................................", -"........++@+@+@+++..................++@@@@@@++..........", -"......+@##$$*$*$#@+...............+#$&=-----=%@.........", -".....++$=&)))>))=*%@+............+@=,5//}~//,-#%+.......", -".....@#*);''';'()&$@+............@$>}~i^iiim}5&#@.......", -"....+%$);ee__<<<_()&#+..........@$&/iaaa14401m/,$+......", -"....@#=':<<<<87b[_;)$+..........@=,i|444000002i/-+......", -"....%$=(_[c8cbghb[:;*@..........#=,m20n0000000ap>%......", -"....+$*)(:_<_[6b7<:;&@+.........@=-~m|14100004ai,#+.....", -"....@%$&;'j55}[7[<:'=@+.........%$&!]^9ool4001|i,@+.....", -"...+@#$*&->',5_[<_e;&++........+@$=,!/]{{o1qq1ai!@+.....", -"...++##&>'j5:[p7c_:'=%+........+%$=!]^9o3lq001ai,#+.....", -"...+@#*>j__[~87b7<:;=++........+%$-]9334q00004ai,@+.....", -"...+##*;:<876bgg6[:;=%+........@#=-ia400000000ap,#+.....", -"..+@$*-:[8887876[_()$+........+@=,/o400nn00001^/-@......", -"..++$)'}8d7c_<<<:')=#+........+%-/i400004144a^/,$+......", -"..@%&'e8bg7~55(';)$$@+........@#!{f0000lf99^~_-&%+......", -"..+#&e_86g8_j,'>&=#@++........+$5|2000039^{]!,=#@+......", -"..@#>:<867>-=*$%++........@$~|4000qf{]]/,-=#@+......", -"..+%;_cc[8_,-&&=$##%@.........%$p2n0003^/!!,-=$%%.......", -"..+#;:,,((;(;*+........+@5i|30039]{{^^im~>+......", -"..@@*&;_[c_(>'e:___e&+........%@>!ia0029]{|a222|5@......", -"...+$=-e<8_(>(:<<_[:&@.........%=,/|40l9]9o4440a5@......", -"...+@$*;e_:5je_<:_e;*+.........+#=,{|2af9a2422|i>+......", -"....@@#&>(e::__<:(;&$+..........@#$!~^|aa222ami5=+......", -"....++%$&>(:__:_:;&*@+..........+@%-!]^a2a22|p5)#+......", -".....+@#$=&);;(;)&$#@............+%$=,5]~iii}5=$@.......", -"......++@#$$==**$$@...............+@#$=-,,)>==#+........", -"........++@@+@@@+++.................+@@@%%##@++.........", -"..........+++++++.....................+++++++...........", -"........................................................", -".......++###$%+@++.................+@$=$=$@@++..........", -".......$=&);;)=#@++................=,5}pi/,&#@+.........", -"......+=;e::_()=$#@++.............+,p|fa2m/,=$%++.......", -"......+&;e:_<:(-&$@@+.............@,i|a24|^/!-##+.......", -".....++*);(::__:(>*#@+...........++>_~ma2123^]-=%+......", -".....++%*&;(:_c8<,&*#@+..........+@$-!i^f1004^!-$#+.....", -".....+%#$*;;(<86c:>&*@+..........+%$=-]i92000f]!-%@.....", -".....@@#$=->,:}8[<<(-$%+.........%#$-,/]^fl00449/=#@....", -"....+@@$$=->,(_~[c7_(*%@........+@#=-,/]{93lqn04^-#@....", -"....++##$*->>jj_p7b8(=#@+.......+%$=-,/]]991q000|,=#+...", -"....@%$)(e555}}c7dh6:=$@+.......@#=/^9oooll00000f,=%+...", -"...+@#=(<8c[[c77bgxb_-##+......+#=,m4000q0n000003/=$@...", -"..++#$&_8g67876bgywg<-$#@.....++$-!30000n00000t04/=$@...", -"..+@*)'<767p/[pcmgyb_-$#++....+%-/^2000qlqqn00003/-$@+..", -"..+@&(e[76[_j55_[7h6_=*#@+....+#5^a00001^of340001!-$@+..", -"..@#;:[[78>,:8d85&*#++....%$~a000019{{{{30009!-&%+..", -"..+#;:c[88_,>>>,/cd8_=$#++....+$ia00001^]]]{3000a!=$@+..", -"..+#;_[c[c_j->>>:cg75&$%@.....@$p2000n39/]]]f000o!-%@...", -"..+#;_c[[[e,>---_pg8:=$@+.....@$i20000f^]/]/3000|,=#@...", -"..+#)e<[[[_,->>,_8d85=#%+.....+$}a4400o^/]{{3000o,=#+...", -"..++=;e,,(_8d8e*#%+.....+@,~|4n049]{^91000|-$#+...", -"..+@$*):8b[e>,::[8b['$%+......+@=,/a004o{^fa4000^-%@....", -"...+#*&e[8<:>e5__[8<'#@+.......@$-5|004f{9f12004i&@+....", -"...+@$$)e_e5ee___:e;=%@+.......+%=-}|1a9|f122a|p,%%+....", -"....+@#*)'(:::__e;&*#++.........+@$,/imaaaa2|i!-$@+.....", -"....+++$=&'(::e:;)#@@++.........+@@*,!ima|aai!=##++.....", -".....++@#*=&))))=$%@+............++#=-,!}//_,=#@+.......", -".......+@@#$##$##@++...............+@#$=====$@@+........", -".........+++@+@+++...................++@@@@@%+..........", -"...........+++.+.......................+++.+............", -"........................................................", -"......+@#$#$$$*$#$##@+............+%$*&-----&==$%+......", -".....+@$=);;;));)))=#@+..........+#-,/}~~}/~///,=%+.....", -"....+@$&;'(eee(e'(;;=$@+........+#&5i^^|9|9|mmi~,&#+....", -"....@#*;:<:__::_e_e()=#+........@$-pa422aaaaaaam},$@....", -"....+#=:8d7[<<<<<[[<()=#........@$,a000044444004m/,$....", -"....#$&$....", -"....@@*([6c[_jj>);;&&*$+........%%-m00n0399]]~~5(>=@....", -"....@@$'<8<__e'&==**$$#+........%#=i404419{!,,,--=$@....", -"....+@@)(:$#++.....+@$-|000nnn000000f/-$@+..", -"...+@$*;:[7mbghhhgg7:-&#%+.....+#=-ia0n000000000o/,=#+..", -"...+@#$;_<6dhghhhgb7/&*$@+.....+#$-if0000000000n3/-=#+..", -"...+%#*e_776gbb66bg8_>*#%+.....+%=-94n00000000003],=%@..", -"...+%$$:cb|bdm7i7mg8_>&$@@.....+#=-fn00000nnn00n3],=%@..", -"...+%#=5cb6|b7p}c6b7_'&$@+.....+#=,f00000nqln0001{!-%+..", -"...+%$*:8g7cp}_5}p7c_,-*@+.....+#=,f0000ql3o14001^/-#+..", -"...+@%=:7g7}55j!:}8p_(;*#+.....+%$,a00nloo993l0019],$@..", -"...+%#=_6g8_>>,>5}[<_(,=%@.....+#$,20003{{{{o3441|i,#@..", -"...+%#$:8hc5j>,>5<68_(;*@+.....+%=-|000o^{{]fq002^]>%+..", -"....@%$:8g8_,',>5cd6_;)*++......@#-a0003^{{]o0002i/>@+..", -"....@@$:8d8:,>>-:cg6<'&$@.......%#=|00no^{]/f0004i5=%...", -"....++%;:[_:jj,,:<8<(&$@+.......+@#~a02a99^^f204m5-#+...", -"....++@=;(ee:ee(:::e)$#@........++#,pm9|o|9|faa|}-$@....", -"......+#$*;(e:::e(;)*@@+..........+$-,~m|a|a|mi/-#@+....", -"......++%#=)';;;;&)*#@+...........+%%=,/i~pi~55>$@+.....", -".......+@@#$=****$##.+.............+%#$&,>>--==$++......", -"...........@+@+@++++..................+@@#@#@@++........", -"............++++++......................++++++..........", -"..........++@@@@+++...................++@@@%+++.........", -"........++++@@@@@+++................++%@#####%@+........", -".......++@$=)&))&*$#++.............+@#=,55//!-=$@+......", -"......+@%#&;(((('&=*%@+...........@@#$!~9mmmi5,-$@+.....", -".....+@@$$)e::::e'-=*@++.........+@#=-/9aaaa|{/,-#@+....", -"....+@%=;(ee:::eee:()*%@........+%#,~9||afa9faa^/-$@....", -"....+@#)_[__:e((:<[<'=$@+.......+%=~1441ff99|404^,=#+...", -"...+@%*([68<55,,_868e)*#+......+%%-m0004f9^^1n00a/-=@...", -"...+@#*ec6[_e(,'e<7[_>&$@+.....+@=-f00039^{{f400a~!=@+..", -"...+%$*:cb[5,,>>j$@+.....+#=-an00f^{]]9404a^~-#+..", -"...+@$*e8b[5>>>>(:<[:(;=%+.....%#=,f004o]]]]^f041|i,%@..", -"..+@#*&_8gc5>,>-j_[[_e'=%@....+@$-!a000o{{]]91041|i,#@..", -"...@%#=_7gc/>,>>j_8[_e'=#+.....@$=j100q3]{{]91n019i,$+..", -"..+@$$=}6g8:>,',5_8c_e;=@+....+@==!100n3{{{{o1002|i,#@..", -"...@%$&_6h6~5!5j_c6c_()$%+.....%$-j2000looo910001^/-#+..", -"...@##=}bhdmc[~[c7b8:;&$@+.....@$=!10000nqlq0000ai!=@+..", -"...+%$=_bkhb7667bbg8_)*%+......+#=,10000000000001/-$+...", -"...+@#=:7ggdb66c877[(=$@+......+%=,a000000000000m,&#+...", -"...+@##(<87bb7[___:()$@@.......+%$=^40000n03a2a|/-%@....", -"....@#$>5>;)&$#++........@$=]f4n0003{]]/!&$%+....", -"....++#&'5[8bp_'>=*$#@@+........+@$5if40041{]!,==#@+....", -".....@@*&>_~8[_5(-*$#+++.........@#-!~1q00lf^/,*$@++....", -".....+@#$*(<78c<5>*#%%+..........+@$-,m40004f]-=##+.....", -"......+@##;:c[[[_'=$@++...........+@$={a0000a{,=#%+.....", -".......@@#=;e:_<:';&$@.............%#$(~|a24a^]5=@......", -"........+%$$=;(::ee;$+..............+%=-,~^aa||p-@......", -".........++@%=;e(:e;&@...............+%%$,p||a|i,@......", -"..........+@@$=))))=#+................+@#='}_}_,$+......", -"...........+++@##$#@+..................++@#$*=$#+.......", -"..............+++.+.......................@++++.........", -"........................................................", -"........................................................", -"........................................................", -"........................................................", -".............++++........................++@+...........", -"...........++@$$#+.....................+@%&=$@..........", -"..........@#*&;e>&++..................@=-5i|~,@+........", -"..........#*)(_[:)@+..................$>/m20a}%@........", -".........+$=):[6<'#@+................+&,}a004i$%@.......", -".........+#*)ecd[;$%@................+$)5|000i=#@.......", -".........+@#*e[d[e$#%+...............+%=>r000|-$#@......", -"........+@@#$(cg[e=#%@..............%%#$&|000|,*#@......", -"........++%#*([6[e>=#@+.............+@#=-m000f],=@@.....", -"......++%%#$$;_8<:()*%@...........++#%$=-{202a^/,#@.....", -"......+@@##**'e[__e'=%++..........+%%$=--ia042|i,%@+....", -".....+@$$&&));e::_:e)#@+.........@@&-!!//{|aa12|/$@+....", -"....@@@=;';''';(:_[:>#@++.......@%%,~i{{i{i^f20a~&#@+...", -"...+@%#)(:e(e,>-e_8_'*#@+......+##=/^1f9|^]/9102i-$@+...", -"..+@#=&;:_5(;>>&(_8<(=#@++....+@=,!iaa|^{]]/^204^,$#@+..", -".++%=;(e:_:,>>--j:8<'=$#@+...+%%,~^|a1f^]]//9104^,=$%@..", -".+%#)e:___('---)(_8<(=*#%@+..+%$/||1129{////^104^!-=#%+.", -".+@$;_[[<}:,'>>,_[6c}(;-=$#..+#-i20041f^{{{^300019~/,-$.", -".+$=:cb8[__:(5__[6db8c>;('e:::::e(')*+.@$,m2029~i]~i^m||aaaa|mi}>@", -".@#$)e:;>*$$$*$*==&=&&&&&=$+.%$=~||i/,--->--(,5,55555,&+", -".+@#=;'&*$$##$#%##$#$#$**$@..+#$'pi5-==$$=$$$=&$=*=>>=#.", -"..+@$*=$#@@%@+@%@%@@@%@@@@@...+#&>,-$###%@#%#%%#%##%##@.", -"....+@%+@@++++++++@+++@+........+#%%@@++++++++@+%+@+....", -".......................+...........................+....", -"........................................................", -"........................................................", -"..........+@@++.......................@@#@+.............", -"........+@#$=$@+....................+@$-,=#+............", -".......++%*&;=#++..................+@#>5~,=@+...........", -".......@*=);()=@++.................#-,/im}>@@+..........", -"......+$)'e:_(&#@++...............+-}i|12^!$%@+.........", -"......+)e_<[[:>##%++..............+5|v200a]=$#@+........", -"......+*(:<[[:()=$@++.............+,m2400am/,=%@+.......", -"......+*&;e:<<_:,&$%++............+>5p|a4411^!=#@+......", -".......+#*;e:$@%.....", -".......+@$)(__:_()*#%++............@#=}m2222|/-$#@+.....", -".......%$*(}ma00ap-$#%+........", -"......+=(_:ee;=@@++...............+,m2ar|~,#%++.........", -".....++):[:;**$@+................++}a01p,>=%%...........", -".......=;:;&*#+++..................,i|p5>$@++...........", -".......#*)$$@%+....................$>}-=%#+.............", -"........++++++......................+@++++..............", -"..........+...........................+.................", -"........................................................", -"........................................................", -"........................................................", -".........+++@+@+@+...................++@@@@@@+..........", -".......++@+%@%#%@+@++..............+@@@###$##@@@+.......", -".....++%#**=&&&&&*$#@+...........++#&--,!!!!!,&$%+......", -".....+@$=;;;'((e(;&*$+++........++@-,~~ii^9r^~!,&@++....", -"...+@@#=;(ee:_<<_e')=%++.......+@#$,~|||a2442|i/,$@+....", -"..++#$&;(eeee_-:[b7[__:e(&#@+..+%$~a221|^]/f000041aam5$#+.", -"++@$'_[_:e'>-:cd6c____e)*#+.++#&i202f9i]/f00001111a}-$@.", -".@$*(<[_'>>&=e[bc_jee::'&*$+.%=,m401^]]j!f00019f|a9i!,=+", -"+#$&e[[_;==&&j[bc_',:_:('&$%+$=!|00ai!!!!94001{^f219~5-#", -"+#$&:[8e>===&(<8[:,je::e(;=@%$-5a00|],,,,9400f{9ffa|mi,%", -"@$=)ec7_>=*==>:[<_:_:ee::e)#@=,_f00a],,,,{a441aaf9|aa|}$", -".$&;_[8e,*=**-(e__[_5ee_[<;#+&!p200f{>,,-/^a14q1f992q4p&", -"@$&):c7:'=*=$->':_c[5,(_[<'*@=5~a001{,-,-/]^f4nqf^9z04i-", -".%$):[7_>&=$=*->er004^/!---,!92002f9a2a}$", -".@+$([8_e>&=*$*=;<88<_e::e&#.%@=m002|]!!---,i4004aaaa|5$", -".++#)(_ee('>>&==>e__<<_e()*+.+@$}ma||^{~]!,,]|22442|^~>@", -"..++$&);(e('(>&$&;':_c>->'(((>-&&&*#@+.....+=!}~~]]]]{^9^]/!!!-=%+.....", -"@=;((:ee(5_[[_ee''')=#@+....@,~m|aa|9f1404a|^ii/,=%+....", -"@&(:__<<__c7d7c:_:e(&$#+....#5m|22242100000aaaam5&$@....", -"+*);(e(eje[7d8_(('')=$%@....@>}{^99f^f400019^ii},=#@....", -"@$$&->,,',_8bc_'>>-&$#@+....%=-5/]{{^^100n1{]]/!-=#+....", -"+##$$*&--,_7bc5-&=**$#@++...@$$=-,!//{3n00o]!,,-=$#@+...", -"#$)>>>->',}8g8:>>-&=$$$@+...$-/]]]/]{^10003]]/!,-==@+...", -"*)ee(>>,'j}6di},>,--=**@+...-}|a^{{{^9300nl^{{]/!,-#+...", -"*('>-&$$@...>|2039^999n00039^{{]/!-=%...", -"$;:_ee''(!c6h7)&*#+...=pa2|9{^99q00049^{{]/!,$@...", -"$&;e'''(je[6g7}(,'-;-&*#+...&5i|ii{^99n0003^^i]~/5>$+...", -"@*&))->',e<6g8_,,;>)&&*#+...#)5}/]~{^940001^^]]/5!-$+...", -"+#$=&)->;,<8g8_'>>&&=*$++...+$-'!//]i{40003{]]5!,-&%+...", -".@@#$**=->_8d[:&&=$$##@+.....@#$&>,,/]3000|!!,-=$$%+....", -"..++@@#$$*:[b['=*##@++........+@#%$--,a000^,-=$#@+......", -"....@@%#$$ecb['$*##@+...........@%%$=-|004^--$$@@.......", -".....+@##*e[6<,*##+@+............+%$=-|004^-=$@%+.......", -".....+.###e[6<'*##@+.............++%$=9004i-=$@+........", -"......+@#$([b<'*$%++..............+#$=m001^-=#%+........", -"......++@#([d[e=$#@+..............+@%$m0009,-$%+........", -".......+%#([d[:)=#+................+#$m000f},$+.........", -".......++@'[d[:)=#+................+@#i000|},=+.........", -"........+@);_()*$@+.................+@5i2m},=@+.........", -".........+$*=*$#@+...................+=)(,=$#+..........", -"...........@+@++......................+@@@@+............", -"............++.+........................++.+............", -"........................................................", -"...........++..........................+%...............", -"........+@$*=$+.....................@%=>,&@.............", -".......@#$&);&#....................%$>5_i,$.............", -".......+$*)(e;$....................@&)}m|p).............", -".......@#$;:[(*+...................@$=pa0i,+............", -".......+@$;_8:&+...................+%&p2015+............", -".......++$;[6:)++..................+@&i00a}@+...........", -".......+%@;<6_)@+..................+##p402}@+...........", -".......+%$;[6:)++..................+%&i00a}@@...........", -".......@+#;<6_;%++.................@%$p002~#++..........", -".......@@#;[6:;@@+.................@#$i002p#@+..........", -".......@@$(_b_)#++.................@#=i402}$@+..........", -".......@@$;[6_;#@+.................@#=i002~$#+..........", -".......+@$;[6<;#%+.................@#&i004~$%@..........", -".......@@$;[6_;##@+................@#=i004i$$@+.........", -".......@@#(5~i}=.......", -"............++@#*&;&$...................+%#$>5p5&.......", -"..............++@$*$+.....................+@%&>=@.......", -".................++..........................+@.........", -"........................................................", -"........................................................", -"........................................................", -"............+.+++.+.....................+.+++.+.........", -"........+++@+@++@@+@+++.............++@@@%@@@%@@@++.....", -".......+++%@%####%#@%@++...........++@###$$$$#$##%@+....", -"......+#$===&=&*&=&&==$%@+........+$-,,,!,!,!!!!,,-$@+..", -".....++=;((('(,(,,(,'>)*@+.......+@,~^m^^^^^^^^^{~/-#+..", -"....+@@)(___________::'&#@+.....+%#/|232131a32a11f^!=%+.", -"....+@#;_<<:_:_:_:__}__>$%+.....@#$~2022aa13a11114f]=#@.", -"....@@#([8c_j55j555_[[<'*#@+....@%=m4041999o9oo34n4i,$@+", -"...+%#*e[b~_jjjjj555p7c(&$@+...+#$-|00q399999oo3q009!=#+", -"...+%#=:86c_j5,555/_86m7i78i7i767m8:-*#@..+%-/]1n00nnnnnnnn00003/-$%", -"..+#)(_e~cp[[}[p7bhb85,>=#@+..+@-5]fln4qqlqq0000nf^],=@+", -"...@%$=,_c[}~}~}76hbp:>&$#++...%%=,^1nqllllln000qo]!=$@+", -"...+%#*e[7p}<_:/~877<:'&$%+....%#=-940qll333l0004f^!=#+.", -"...++#*j[bc}5/55_}p<_:(&#@+....+@$-9n0nloooo3lq41|^!=#+.", -"...+%##e[b[:!5jj55_:::e)#+.....+%$=|0043oo99o93a1a|/$+..", -"....@@$([8p_5jjj,(,''')*@+......%#*^40q3o9999^^^ii/-#+..", -"....+@#'_8<__:5e'>)&&=$#+.......+#$i20413o99^]/!!,-$+...", -".....@@)e_<___ej(-$*#@@+.........%%}|44111f9^/--&#@+....", -".....+@&(e__[<_e'&$#%@+..........+#!ia24041a{!=$%#@.....", -".....+@$=>:[7<_e'&#@@+...........+@&,]|000a|i!$%%+......", -"......+@$$ecd7*#++.............+#=>|0004|~,$@+.......", -"......++@$;:<_(>&$@@..............++#=pa02m~!=%@........", -".......++%*);;=*$@+................+@#)_i~5-=#+.........", -".........+@%##%@++...................@%#$$%%@+..........", -"........................................................", -"........................................................", -"...............+.+.........................+.+..........", -".............++#%$##+....................+@$$==$@.......", -"...........++##*==)=#+.................+@$=-,,/,$+......", -".........++@%$*=);;)$+...............+@@#=-,}pi}-@......", -"......+++%@##=>(((e;*@+...........++@##$=,]^^m|~>@+.....", -"....++@+%###*>e:_::'&@+.........++@@#$$=-]|a1a|i!#@.....", -"...++@%##$*=='_c<_e'&#@@.......++##$==-,,{1042ai!$%@....", -"..+@$&>;>'>>'e_c[<<:;$%+......@#-5~]]{]{{f20044a~=#@....", -".@%*;:<__<_::_}cc87<'*%@+....@%>pa44441aa1lqn004^-#@+...", -".@$&:8d6668cp[<$+.", -"....++%##=e[6$@.", -".....+@%##;_<&**&)=*#+.......+@%$=~a04|^]!--:},>$@..", -"......+@%#)(::_:(-#$$##@+.........+%#$/^aaa1m/===&$#+...", -".......++@$&((:_e)$#@%++...........+@%>/^|a1|/=$#%@+....", -"........+@$$&;e:e)&*#@+.............+@=-5i|a|~!>$%+.....", -".........+@#$;;:e;;&$++..............+@$*_ia|i~5&@+.....", -"..........+++=;:e(;&$@+...............+%@,ia|mi5=@+.....", -"...........++#&));;)*+.................++$,}}pp_>%......", -"............++#$=&;&*#+.................+@$=,5p5)$@.....", -"...............+$*)&*@@...................++=>}5>#@.....", -"................+$*$#@......................@=-=$%......", -".................@+++........................%@@+.......", -"........................................................", -"........................................................", -"...........++++++......................++++++...........", -"........+++++++@++..................+@+@@@@#@+..........", -".......@$=$$#*);&$@+...............%&,==$-/p5-%+........", -"......+$&;&=$)(_(=#@+.............@&5~5,=/m2^,$#+.......", -".....+@=;(;=='_[:;$@@+...........+@,~|]!,{20a~=%#+......", -"....+@@)e_e>=e<6_'$$#++.........@@#}|2|]!9404{-=$@+.....", -"...+@@#;-=$$++....@$==-,|00039ln0q3]/,==@+...", -"+@$**$=:c6p:j}7g8/>-*$$%++..+#----,fn0q39l00n3{/,-=$@+..", -"@*)''';<7g7~:8mg6}5,,-=*%+..%-}ii{i400n33n0003o^{/,-#+..", -"@&e_:eecbg78~7dkdc:5j',*#@+.@5|2aff0000nln000n3o9^{,=%+.", -"#;<[[<[8bhb7cmghg6p~__()$%+.$i4004400000000000lllf|/&#+.", -"@)(::::86g67}8dgm8__5('=#@+.@}maaa|n000nln000n13f^i,=#+.", -"+$&);;;&$%@..+=5}~~i4000l3q000q99^]!-%@..", -".++##*=:cbp_j}cmc}j'&=$#++...+@$=-,a00q39ln0n19{!,=$%+..", -".+++##*ecb-*#@@+...++@$&,|0049{oqnq39{/-=#@+..", -"..+@%$#e[6<5,j_[<_:(-*$@+.....+@%=*|00qo{o1044|9/-=#@...", -"...+@@$([6_(-(5__}<5>$#%@......+%%=m0029/^f31149]-$%%...", -"....+@#(_6_(->,e:_$#@+.......+#$m402^/]^9324a]-$#+...", -"....+@@;<6_;&&>>(_[_'=$%+.......+%%i402i!!]~9202{,=%@...", -".....+%;<8:;====;_[<(*$#@+.......+#i40ai,,,,i304^,=$@+..", -".....+@;_8:;$$$*)e[_(&$#++.......+%p20a~----_|02m!-$@+..", -"......+)e[(&####=;;;';&*@+........+}|0m!$$$$,~iii]5-#@..", -".......&(_;=#@#@#*=&;(;=#@........+5m2p,$%$#$-,5~mp,$@..", -".......*;e)*@+@+@@%$&(;=$++........)p|})%@@@%%#&5mi,&@+.", -".......#*&*@@++++++#$==$@+.........$>5-#@+++++@$&,,&@+..", -"........+@@+....+.++@#@+............@@@+....+.++#$#@....", -"........................................................", -"........................................................", -"...........+++.........................+++..............", -"........++@###@++...................++#$=$%++...........", -".......++@$)(&*+++.................+@@-}m5-@@+..........", -".....++@@#;:_cdc:>-==*$%@+.....@%$-!!!/]1000f]/!!-=$@+....", -"+%#=':__5([6h8_jj:5';=$@....+#$,{a33o94000399oo^~,-%....", -"+#*):76c[_cbkbc__[c_e;&#+...+$,/10004l0000032404|~5=+...", -"@$*'[bkbc~6dhb7}cc68_()=+...#=,i4000nl0000nl00002m}-@...", -"+$*-<6d8}_pdhmc:}[8[_(;*+...@=,/4000l3n0000f10002m~>@...", -"@$*&<6d8_5p7g7}j:<[<:(;$@...@=-/200n194000l93404am~-@...", -"+#*&_8dp5,[7g7_>j_[<:(;*+...@$-!100qo^l00n1{9304am~>@...", -"@#$=_7gc_jpbh7}5_<8<:(;*@...@$-j100qlo40003f34041m~>@...", -"@#$=_7dm<_8bhbc_@...", -"+##*_6g6c~7gkb7_c768_()*@...@$=,10000400000400004m/)@...", -"+%#$(<8[_:c6h7[:__8<:;)$+...+#$-90001fn0000f2404ai/&+...", -"+@#$;:$%....", -"..++##$***ecb_(=$=**$@+.......++$=--->|002^,-,)>=#%.....", -"....+@@%#$(}m}&+.+..........", -"..........@$=$+.......................%&,=%.............", -"...........+++.........................+@+..............", -"........................................................", -"........................................................", -"...............++++++......................++++++.......", -".............+@###@@@++..................+%==$%#%@+.....", -"............+#*&=$*$#@@+................+$>5,--&$%#+....", -"............+$&;;&=**$$+................@&5i~!,,-&=@....", -"...........@+&':e'-&&*$@+..............%@,i1|i/!!,=%+...", -"..........+@#):c<:'>-&=#+.............+#$/a02f^]/!,$+...", -"..........@@#;<7[<(('>=#+.............@%$i200199i~,&@...", -".........+@##(<68[_:'>=$@............+@$=^40001fi],=@...", -".........++#$;_c[[<_(&$#+............+%$-i300041^!-$@...", -".........+%$*>e(_cm7c8}e-=$++..........+@-]^10000n4|/,=@+..", -"........@@=>e_8d77c_5>=$%+..........@#,]m4000n0l9],-#+..", -".......+@@$-'_cb78p_e>-$@+.........+@%-/{3000n4lf]/-#@..", -".......+@#$=-_8bmc}}5'-=#@.........+#$=!/1n00nl1f{/,$@..", -"......+@@%**-jp668<_5'>=%@+.......+%#$-,/9q00n43f^],$@+.", -".....@+@#$*=&:[b7i8<_e'&$++......@%%$=-,!fq00nn43|{!=@+.", -"...++@%##$*=-!}76878}_(&$@+....++@#$==,!/9l000nn419!&%+.", -"...++@#%*$==-5~877m8p_5)#@+....+%#$$--,!/oln0000q1f/=%+.", -".+@#*=&->>,je<[8788c<:'&%@+..+#$-,!/]]^994q0nn0n4|i!$#+.", -".+#$);e(e:__c[p[c88[e(-=%@+..@$-/i9|99140nq0nn04f^/,%@+.", -".%*=':___<[8678pc[[<(-*$@+...%-,ia222400000400049/,=#@..", -".@#*)(::::_<<_:e5:_5('&$@@...%$>}maaaa2222afffaf^i!-@%..", -".+@$)'eeeee((;,;>'>'(;;*%+...@#=/i||||9^mi{~]i]i^i~,%+..", -".+@@=;;';;)*$*$*$$$*'e'&+....+@#,~iiii/,----=--,i|i,%...", -"..++$&)))-=*$###$%#$&))$+.....+@>,/}}/,-=$*$=$$-5}}=+...", -"...+@#$$**##@%@+@%@%$$#@.......+#$-=--=$##%%##@#=-$#....", -".....+++@@@@+@+@++++.+...........++@@@@@%%+@++++.+......", -"........................................................", -"........................................................", -"...........++++........................++++.............", -".........+@#$##@++...................+%=-=$%@+..........", -".......+@+$&))=*#@+................+@@&5}/,-$%+.........", -"......++%#&;e;)=*#++..............+@#$5p|i/,-$@+........", -"....++@%##;:<:'=$#%@+...........+@##$=]a4aij-$#%+.......", -"...+@###=$([6<'&$$$@+@.........+@$$=--^004^!--=#@@......", -"..++@$$$=&:cg[:==*$$%++.......+@#=--,!|000f!,--=#@+.....", -".+@#&'e(''-&=$#@.....+%$5i|^{^000029{{/!,-=%....", -".+$=(<8<__7dybc__:e(';=$+....@=,m400110000031f|m{},&+...", -".#$)<6gb8[bhxgbi[[__e(;$+....$-/40000000000n0442|m~-@...", -"+@$=!}[p<~__(;)*#@.....%$>|004a{o1q44l1a^i/-=@....", -"+@@*:86<5'j:_~[p_5'>=*#@....+##>a0049{9f1lq41f^],-$%....", -".@@$e86<(,,j5_p8_(>&$#@@.....@%-|0049{^9o1qn29]!-$#%....", -".@@$([8<5>,>,:[6[j&=##@+.....@#=m004o{^{{30049!,=$@+....", -".@@$([8,:<6&*@%+.....+@#}ma2113of3403^]!-%#+....", -"..+@=(e:<<__5__<:(>)*#++......+%,i|a4021f112||]/-$@@....", -"..+@$=):[7<<:5('(:e(;=$%+.....+%>5_a0002|f9m^||m~,&#+...", -"...+@$=ecb8<:(;-;e$,}mi~/,=@...", -".....++%&&&**$#@%$*===*#+........+@$,55)>=$%$=-(,,>$+...", -".......++@+@++@%@++@$$$%+..........@+#@@@@%%@%@@&)&#+...", -".........++++@++++++@#@+.............++++@++++++#$%+....", -"....................+++.........................+++.....", -"........................................................", -"........................................................", -"........................................................", -"........................................................", -"......++@+@+@+@+@+++..............+@@@@@@@@@@@++........", -"....++@@%@##%#%@%@@@++..........+@@@##$$#$###%#%@+......", -"...+@%###$#####$#$##%@+........+@#=$==$=$===$=$$#%+.....", -"..++*)'>&*&$*$$#=&>)&$#@......+@-/i]!,,--=-=,!]/!-=%....", -"..+#)e_:,>-==$==-':(;&=#+.....+$}|2f^]/,,-,,/ia|~5,$+...", -".++#(-=&**>:<_e'&#@....+%$^4029{]/,!,,{f42|i!=@...", -".+@#([8<5>>-*&&&,e<--&&==,e<<:(;*@+...+%&m0049{//!j,!{944|^~>%+..", -".+@$([8_(,--&&=&>:_<:(;=%+...+#=m0039{//!!!!{a423m~,#+..", -".+@$([85[<_e;=%+...+#-|0049{/j,,!!{f42a9i,%@..", -".@@$([8}j--==&=&>:<_:e;=%+...@%=m0019]/!,j,!{344a|ij#+..", -".@%$([8<(,--===&,5[<_e'=@+...%#-m0019{//,!,!{fq4f|i,%+..", -".+@$([7_j--====='5<_:('=#+...+#=|001^]/!>,!j{f44a9i,$@..", -".+@$([8_(--&=*==,:[<_e'=@@...+#=m0019]/!,,,j{3q41|i,#@..", -".+@$([7<5,,--->-j_[<_(;&@+...+#=|0049^{]//]/93041|{,#+..", -".+@$([8[_e!j,,,(:<7[_e'=%+...+@=m0003o99{^^^a40029i,#@..", -".+@#([7[[__:_::_<868',e_c<:';*++....@$i402f^i{~~{{9204a^~>@+..", -"..+%;:[:'-&*=$=*>(<::;;*@.....+#pa0|i/!,,-,,]|42ai~)%...", -"...@)e_()***$#$$&;ee';&$+......@}|2m/,--===-!i||ii5=+...", -"...+$&)&$$##%##$*&))&)$#+......+=5}5-=$$$$$=-!_/55-$+...", -"....+###@@@%%@@%%#$$###.........@$=$%%#%%#%%#=*&=$$+....", -"......+++++++++@+@@@@+@...........+++++++++%@@#@#%@.....", -"........+.+......+++................+.+......+++........", -"........................................................", -"........................................................", -"........................................................", -".......++++++++++..................++++@+++++...........", -".....+++@@@%@@+++@+++............++@#####%@@@@@++.......", -"....+@#####$$#$##%@++@+.........@#$$$$$=&$=$$#%@@@+.....", -"...+%$*$$*$$**$*##$#%@%+.......+#=------,---==&$##%@....", -"...@#&-------&-&&===*$#@@+.....@=!///////!/!!!,,--$%@+..", -"...@&e____:5jj!5555(,(;=#@+....#!|2133o999oo99f9^^~,&%+.", -"..+#(<7877[<_<&&&=#++.....+@$*]f144qn00q9]!!!,$@+..", -"....@@#&>(5__p8bc5-&=$$@+.......%#$,~^ff1q000o/!,-&%+...", -"....++@$*->>,#....", -"..............+@#*&)**$@..................+@$>55,)&%....", -"................++@####@....................+@#$$$$%....", -"..................++@@++......................++#%@+....", -"....................+@+.........................+%+.....", -"........................................................", -"........................................................", -"........................................................", -".........++@+@@+%+@@+++..............@+@@%@@%@%@@++.....", -".......+@@#&)**#*=&&*#@+...........+@%&,/,-$-,5!,=%+....", -"......++#$);:'&#&(e(')*#+.........+@$&/iai!=5^ami5,$+...", -"......+@$=(<8:'=;_c*%+.......@#=-,|004{!i200am]-#+..", -"....+%#*=&e'_[<_e;&#@+.....#=),!}a000f]{1043|i!$%+.", -"....@*&));_7d8:>:_c[<_()$@+.....#-5!/~2000f{f1n4419/-%+.", -"....$=);(([6g7[5_c88[__;&$@.....=,_i^|0000qf1000q4ai!&#.", -"....$&;e:=#....+=5p|az000001q000004|],$.", -"....@$=&;(<6g7[e}p87c<:;=$@.....#=,5~m4000qf1q0004ai,=#.", -"....++#$*&:8dc:,:<8[<:e)$@@.....+@==,5a0003{31n4qa|/>#@.", -".....@+#$$e[dc5,j_p[_e(&#@+......@@$=-|000f{91q41f^!$#+.", -".....+@@$*ec6[e-j_c<_:(&#@+......+%#=-|000f]910q1fm!$@+.", -"......+@$#e[d[:-(_p[_5;&#++.......+%==|000f/^1401fi5$@+.", -"......+@%$e[b<5-j:[<_e'=#@.......++%$*|0009]93q419i,$%..", -"......++##([d[5-,_[__:;&@+........+%$=m000o/^3041fi!%@..", -"......+@@$([b[e>,_p<:e'=%@........+@#=m0009]^344a|i,#@..", -".......@@#(@...", -"........++):[_e(::[_e;&$+...........+@}a02|^a242|i!=@...", -"........++*;(;)=;(e(;)=#+...........++)pmi_!~m|^p/,$+...", -".........++#$$$%*=))=*#@.............+@$=&*$-,_/(>=@....", -"..........++@@@@$$=$$##+..............+@#%##=-,-=$$+....", -"...........+@++++@##@++................+%++@@#$$%%+.....", -".................+.+.........................+.+........", -"........................................................", -"........................................................", -"...+@###$##@+%+@+@+++..........+%$===$$%@%@@@@+++.......", -"..@#=;';&&=*##$$$#@++++.......%$,]i]/!,-$=&-==#@@++.....", -".@#$;:_:e'-=*==&=*$$%@+@+....%$-ia2||{/,-,,!,-=&$%@@+...", -".@$=e[8<_e'-*&);>)**$#%+++...%&(|0002f^/,!/]]/,-=$#@@+..", -".+#*;:[__:(5,((5e::((;)&*#@..@$>ia021f99^99f|fa|^]}!>=@.", -".+@$)e::::___}___[7c<_:';&#+.+#=_|a|af132121400042|i~5&+", -".+@#&;(e:5_888[c7bgg78[_e'*@.+#$!]m9ff1n000000000002|i>@", -"..%@=)>(5_[[8[__[8668<<:;)$+..%#,/{9f14400110000002ai_=+", -".+@@$&>,:_~<8<:,_[88<_e;)=%+.+%%&!]^fll001f^140042ri/($+", -"..+%#$-'/<<[p:j-'_<<_e;)$#@+..@#=-!^34q4q19/^1442|i5-$#+", -"..@%$=-(_[p<[:'-'(::::()##+...@%=,/924q44f{/{91aff^/=$%.", -"..@@*)':<8[[_5'=-;(':ee)$%@+..%#,/io4nqq1f{!/~^^a||/=#@+", -"..@%=>(_[8c<_e,=&&-;e_e;$@+...@#,]^100n44f{j!j/i92a~-#@.", -"..@@&(:_p[p[_j>=**=;e_:;$%@...%%59a1q0q419],,,,]|4|~=%%.", -"..+#'_c<_:___(>==**;:[_;*@+...+$i2043f1119],,,,]a04i-@@.", -"..@#ec7[5,(e_(>==**;:8['$@@...%=|000f{9|2^],,--~200i-%@.", -"..+#(c6_'>,:_j-***=;_8[($@+...+$m002^]^a2^/,-,,]200m-#+.", -"..++&(:;)&(<[:>=*==;:7c'*%+...+@5mai}!^101],-,,~20ni>#+.", -"...+$=)&==(<7_'*=$=;_7[($++....@=,5!,,m402{,,-,p200m*%+.", -"....+%$##$([8<,&&&&(:8[($@+.....@$==*-^004{!!j!^z00m&@+.", -"....++%%##;:[<:(::__[[:)#+......+@%#$=pa04a9|a2200a}=@..", -"......+@%#)e<[[c[88c[:e&#@........+%#$}|4000000002|5$%..", -".......++@=;:<[866d8[e;=@+.........+@@,ia40000000|p,%+..", -"........++$=);::_:__;)=#+...........+@&(}iaaa222i_,$+...", -"..........%$*=);;;;;&*$@+.............%&-,}ppii}5>&#+...", -"...........+%%$****$#++................@#$&>>))=$@+.....", -"............+@@####%@+..................+@#$$$$$@++.....", -".............++@+++++....................+@@@@%++.......", -"................+...........................+...........", -"........................................................", -"........................................................", -".........++++........................++++...............", -".......@$==$$#+++++@@@++...........%-,,-=$@+++@@%%@+....", -"......+$);))&=$@@@@#$=$+..........+&}i~}5,&%#%#$&>&@....", -"......+='e(;;&*%%##$$=*#+.........+,i|mii!-##$=--,>*+...", -"......+*(eeee;&$*=&;(e'&#+........@(i|r||~!=-,5~m|i5$+..", -"......@=;e:__(>$&)'(:[_;$+........@,p|av2|]-!/ima02p=@..", -".....++=;e__[:'=-;(:[8[($%+......+@(i|140f{,/]^1000m-#+.", -".....++*&;:[8_'&;e__<%+.", -"......@$*):[6<(-':<<::'&*@+.......@=,/|0049/^o04aai5>#+.", -".....++%$*:[dc5>(_8[e;)=$#+......+%%&,f0009]9200|i},=$@.", -".....+@%$=e[6c}5__<_()=$#+.......+@$=,900nlo1102m/,-$@..", -".....+@##$e<77[[[__e;&*#@+.......+%$=-9400044l3|~!-$%+..", -".....+@#$=,_c876[&$@%+.......+%#=-,^1000001^]!=%#+...", -"...++%##=&j_c6gh6~'-$$#++......++#$=,!93n00004{/-=*%+...", -"...+@$=->':_p86d8-&;(ee(;)=##+...@$}|2244||i]/!pm||mi},&$+.", -"..+#)e_:e(;&*=$$==);;(;)=$@...+$_|2||m~!-,--,,}~pmi/,=%.", -"...@&(:;;&=$#####%$=);;)=$@....%5m2i~5,-$$$$$$=,}ic/,&#.", -"...+$&;&**$@@%@+@@@#*&=$%%+....+=5}5>-&#%##@@%#$>,,&$#+.", -"....+@%#@@++++++++@+@@@@@+......@#$$%@@+++++++@+%###@+..", -"........++++.........+..............++++.........+......", -"........................................................", -"........................................................", -"........................................................", -"........................................................", -"........................................................", -"...+@@#@+++....................+%%$%@++.................", -"..++#*$$#@+...................+@*--=$@@.................", -".+#$=&)=$$%@+................@$=,5/!-=$@+...............", -"@$&>(eee'>=#++..............@&5~^|a|i],=@+..............", -"+&(:_<[_:e;*@++.............@5ma24011m~-#@+.............", -"@)':<[8<<:'=#@++............@5m|400042{,$@++............", -"+$&;e<[<<<(-##@+++++@##+@...+&5p|40444m/=$%@++++%$$@@...", -"+@$=(:[[[$##%%%%#$&=$#@+..@#&~a240na]-=$###%=>!,-$@+.", -".@@%&(:[76<(=*$#$*=;;:;&#+...@@$5^|0004^,-===-,/i|i5$@..", -".+@@&)e[7g[,=$$#*);(:<:)$+...+@#!~90000^,-==-/~ma4|}=+..", -"..+%$&;[bh8(&=$**;(e<[_;#+....@%-!i000q9!,--,~ma404~$+..", -"..+@$=):cdc5>-=*-;:::e(*@+....+@&,/1000f]/,-/iaaa|m,#@..", -"....##=:[8<:,>&$;(_:(;&$@+.....+$=,|000f^]!-]m2amp5&@+..", -"...+@@#'_8[_e,-*;e<:;=$#+......+@%={20q1o^/,]|4|i,=$+...", -"....+%$)(_<[c5>=&;(;&$#++.......%#=}m22009],5~mp5>$%+...", -"....++%=>(_c6<,=&&)&$#@+........+@%,]^100q^,!!}!=$@%....", -".....@@#$&_8hce=**#$@@@+.........%#=-510009,,-==##@+....", -"......+%$=(<85~}~}5&+...", -"..............++%#$=&;)#+.................+@%$&,5~/&@...", -"...............++++#*)&$+..................++@@&-}5=+...", -"................+.++#$#+....................+.+@$=$@....", -".....................++..........................++.....", -"........................................................"}; +"....................................................................................", +".......................................++++++......................++++++...........", +"...........+.+......................++++@++++++.................+@+@#@@@@++.........", +"........++.++++++++................+@@@###$#%@@++..............+@@#$$$*$#%@@+.......", +"........+++.+++++.+...............+@####&#&&$%%@+.............@@$$$:,:,,*$#@@.......", +"......+++@@@@@@@@@+++............+@$*=---;;>,'*$#++..........@%,|5noonneo4|,$@+.....", +"......++%##%#####%%+++..........+@#')!!~~~{]!)>*&@+.........+#$^0g6p0fff60nd,@+.....", +"....+++%#$$$#$$$$##%@.+........+%%$)]/(_]_//_{~):#@+.......+#%:&#@+.....+%,456aaag*#@+...+%:9gaaaar<444|0aaa69d*#+..", +"..++@#$$$$%@++@+##&$#%+++....+%$){_(((!>:*,*3]2/!)'&@+...@%*efaaaage||4|0aaa6e4,%+..", +"...+%##$#$#%@@++##&&#%@++....+@$){___}!;,,::~][/{)=&%+...+#*hfaaaape44||qaaafe5,#+..", +"..++%$$$$##@+@++%$&$#%@+.....+@&3]/__}!-:**:3_2/])>:@+...+%,0aaaaapn||||0aaaa09;#+..", +"...+@#$$#$%@@@@+##&$$%@@+....@@$)](_}}~;,,**~]2/]3=:@+...@#*haaasatn44||0aaaa05;#+..", +".+.+@##$$$#@+@++##&$#@++.+...@@&={}(_({;,,**~]2/!='&@+...@%,9faaaafe44||qaaaf94,#+..", +"..++@%#$$&#%@@@+##&$#@@+.....+@$>~{_/[{),,,,3}[(!=:#@+...+%:91faaar<44440aaa65;:@+..", +"...+@%#$$$$@+@@+%#&$@+++.....++$=3{_/[i),,*,3]2_~'&#+....+%:50faaaf<4444)!(7_~:#++.....+#,49jaaapooee6aaa1;$@+...", +"...++++#&&&%@%@@#$&$%+.+......+@$&'!28(d-;;3{(8/~$#@+.....+@:;46aaatoee$@+.......@$,|1aasg<~{{!^!{]{~3>*@@+.......+@$:91ff6gfjafgu9|%@+....", +"......++@@##$#$##%+++...........+%#:>3!{}}_}{)*&$@+.........+#$;90gfaaaa6e|-:#+.....", +"....+..++@@@%%%#%+@+.+..........++@&*==)33~~)':#@++.........+@@-|59h0001h4;:#++.....", +"......++++++@@++@++..............++@$&**'''':&#@+............++#:,||^^4^|,$@%.......", +"...........++.++...+...............+@@@##%%#%@+@...............+@#%$$$$$#%@%........", +".........+..+..++...................+++@@%+@@++.................++%@%#@@%++.........", +"....................................................................................", +"........................................+.+.........................+.+.............", +"...........+.+.+......................++@@+@++....................+@#%@@@+..........", +"...........++++.+....................+@%#$#%@++..................+%%$*:#%@+.........", +".........+++++++++..................+@#&:$&$#%++................+#$,;,,:$#@+........", +"..........+##%%@@@@+...............+@@'3{33)='*$+..............+@#40fq0e54d,@.......", +"........++%#&$$##%@@+..............+@#)]2/]!~3)'$..............@#$haaaa6g0h^*.......", +"........+.#&'&&$###%+..............@@#!2kc2_{{~):..............@%:6avaaaa60h;.......", +"......+.++#$'&$#%@@++.............+@#&~7k8_!~)=:$.............+%$*1avaa11h9d:.......", +"........++#$'$#@@+@++.............+@#&![k2]==''$@.............+#$,6avaa9i^d:#.......", +"......+.++#$'&#++++...............+@$${2k[~*:##@+.............+#:,6ava1|;:$#+.......", +"........++#$'$%+++.+..............+@#&{[l/~:$$@++.............+%:,6ava1;,:%@+.......", +".......+.+#$'$#@+.+...............+%#&{[k/!:&#%@..............+#$-6avag;,$#%........", +".......+++#$*$%+++.+..............+@$${2k[~:$#+@..............+#:,fava1;,$@@........", +".........+#$'&#++.+...............+@$${2k[~:##%+..............+%:,6avaq;:$#+........", +"......+.++#&'$%++.................@@#${[k/~$$@++..............%%$,fava1,:%%+........", +"........++#$'$#++++...............+@$&{2k/~:##@...............+#:'6ava1;:$@.........", +"......++.+#$*$#++.+..............+@##${[l/~:$@@..............+@$:,fava0;:#@.........", +"........++#$'&%+.+................+@$:{7k[~&##++..............%#:;6avag,:$@+........", +"......++++#$'$#++++..............+@#$${[k[~:$#@+.............+@$:,favag;:$@+........", +"........++#$'$#+++...............+@#$:{7k[~:$#++.............+#$,;6avat;,$@+........", +"......++++#&'$%+++...............++#$:!2k[~&$$@+.............+@$,;fava1,,:#+........", +"........++#$'$#++++..............+%%$:{7k/~&$#@+.............+#$:;wava1;:&%+........", +".....+++++#&*$#+++.+.............+%$$*!2m[!&&#@+.............+#:,|favag;,$#@........", +".......+++#$&$#@+++..............@+$*={/8_!;*:#@.............@@,|i6aaagn|;$@........", +".......@@%#$&##%@+++.............+@:')!(2_!)-:#%+............+%;^hfaaa60o;:%+.......", +".......+@@##$$#%@++..............++:=3{](]!3=*$@+............+@;906aaa609d*#+.......", +".......++@@@%@+@+++...............+$:'=)~)=':$@@..............+:;^9h10i!;:#@........", +"........++++@++++..................+%$&:*::$$@+................@$:';d;;:*#+.........", +"..........+..+.+....................++@+@++@+...................+@@@@@@@+...........", +".....................................++++++......................+++@++.............", +"............+..........................+++++.......................+++++............", +"..........+.+.+.+...................+++@%++@++..................++@%#%%@@+..........", +"........+.+++++++.+................+@%#$&$#$#@++...............+##$:,:*:$%@+........", +".......++++++++++++..............++@#$$:::::$$%++............+@#$,,;;;;;,:#@+.......", +"......+.++@@@@@+++++.............+@#**''*',,*:&#@+...........+@:;|444444|;,:%+......", +"....+.+@#$#%%@@%%%#@@...........+%#=~{!33)))))~>:+..........+#$51f6<0&:$#@++.........+%,;0aaafp3!](]^~;,&$@+.........@#$,49:##@+........+%:,|4oqrasfjtn;:$@+.....", +"....++@@@%%$#$#$#@@++.........+@$$:,->35]}}}!)-*$@+.......+%:,|4onqrjsssg;|!!!5i_}^!)*#@........@*|onetppgrjssfpe|$%.....", +"...+++%%%#%#%#$$$###@++........@:'>33!ddd^}((}]~=#%+.......%;^e0d!!^!!5}(_(_^=$++.......%-59qgfrgpraaaaaf5:%+....", +"....+@@%####$$$$$$$#++.+.......+$*=~{}i]]_(/((_{-$++.......@:d50fajjasaaaaaf5:@+....", +"....+++##$$#$$$$$$##@+.........+$&'~{_(_((/(/_}!=#@........+*;^1aaaaaaaaaaa65:%.....", +"....+++@#$$$##$$####@+.........+#&:){____}__}]]3'#+........+$,|hfaaaaaaaaaa14$@.....", +".....++@@@@#%#@%@%%++...........+#$'=)333~33)))'&@+.........@$:4ih00hq000hh^-%+.....", +".......++++++++@+++++............+@#$&:&*:*::&&$@+...........@#$,';;|;|;;,,&%+......", +"..........+.+++.+.................++@@######@@+++.............+@@%$$$$$$%%@%+.......", +"..............+..+..................++.@++@+@++.................+++@@@@%%++.........", +"..........+.+.........................++@+++......................++@+++............", +"..........+.++++....................+@@@###@++..................@%##$$$%%+..........", +".......++++++++++++...............+@%#$&:$$&$%++..............+@#$*,;,,,&#@+........", +"........++++++++++..+............++@$$:*****$$@++............+%#:,;|||||,:%@+.......", +"....+.++@@@@@%%@@+++............++%:=>===>>=':&#+...........+%%;o99599994;,$@.......", +".....++@#$##@#%##%@++...........+%#=!}{~3~~{~)=*#+..........+#:i6sf1q1gf1h5d:+......", +"....+.+%$&$$##$$##%@+..........+@#&~(7/}!{]_]!~=:+.........+@$,1aaaagfaaa6qi'@......", +".....++#&&$####$###%++.........+@$*{[8/]!]]_]{~):@.........+#*|faaaapfaaafgh;@......", +"....++@#$:$##%####%@+..........+$&'{/8({3~!{!~~=:@.........+:;!6aaa6<166610i;#......", +"....+@@#$&$%@@@%%%%@+..........+$'=]/8_~>>33333=&+.........@,49aaaaqne<0100i-@......", +"..+.@+@$$&$@@@@@@%%@@.........+@:')]/7]3->==)))=&+........+%;^eaaaaqo999hhh5,+......", +"....+@+#$&$#@#@@+@+++.........++&*'{(7({)b>=''*&#+........+@,|5faaaf<,:$%@+........+@%4etaaas6q<94;:#@+.......", +"...+@###$##%@@@++++...........+#=~{]}}{~;-':$##+++........%$i0faaafpeo4;,&$@@+......", +"...++##$###@@@+++.+++.........@#={}}_i!;-,::&#$%@+........%$9fassjpeo4|;,::#@+......", +"...+@%#$$$##+@@@@%@++.........+#=~{}}}!b,,,,->='$+........+$51aaaap<4444o994,@......", +"....@%###$%%@@@@%#$%@+........+@'3!{__!)->->3!{~'@+.......@#406aaag#+.......+#;90faag~!!!~!!!{!!):@+........+$,d91fgp1g66666h;#+.....", +".....++@@@@######%@@+.+.........@@$*>33!{{{]{3='&++.........@#*|9006fffaf094,%+.....", +".......+@@%%%%%%%@@++...........+@+:'=))~~~33=':#@..........+@@;49h<011009^;$@......", +"......+.+++@@@@@++++.............+@#&:*'''==':&$++...........+@$,;d44555!;,*@+......", +".........++.++.+++.................++@###$###@+++..............+@#$$:::$$%@++.......", +".............+...+..................+++@+@@@@@+.................++@@%%##%%+.........", +"...............+.......................++++++.+....................++++++.+.........", +"..........+...........................+.+.........................+.+...............", +"........+..++.......................+@+@@++.....................@@%%@@+.............", +"........+++.++.+..................+@@$##$@@++.................+@#:$*:#%++...........", +"......+.+.+++++...................+@$#&&$$#@+.................+#::,,,:$#@...........", +".......+@@@#@@++++...............+@#*,=d3=:#@@...............+@:|4n&$@++.............@#;491aap9,:#@+........", +".....++@@%$&&$@++++.............+@#')3_28_3&&$@+............+@$4eqsaaaq;,:%+........", +"......++%#$$&$$@@+.+............+@%,)!}/8({;,$%%+...........+#$4hgaaaage4,##@.......", +"....+.+@@#$$&$$#%@++............@%#-b!_/7(}!b,#%@+..........@#:o&$@+..........%$:5egaaaaaapn,:#@......", +".....+.@%##$&$$##@@+++..........+##=3^]([[(_{),:$@+.........@$:5qgjaaaaaf<4;:%+.....", +"...+.++@##$$$$$$$#%@+.+........+%%&;~^i(((((}!d=&#@+.......+#$,nqrfsaaasagqo;$#+....", +"....+++@%###$$$$$###@++........+%#&-~^i}(((_(i!~,$@+.......+#:,ntrjsssaasffq4:%@....", +".....++@###$$$$$$$##@++........+%$:>~5]9((9/}}}!>&#@+......+%:;9qrjasasaasa69;$%+...", +"....++@@#$$#$$#$#$$#%@++.......+#$,b!]__h(}_}_(]3-&%+......+$,4*$@......%:;4{_[077h9_(_(_!)-$%.....+@;5efsaaaaasssaaa6<5,%...", +"...++@%$$&&&*$$$$$$##@@++......@:>3_[8788[/9//h}!3=&@......@;90saaaaaaasaaaa60i-%...", +"....+@@$$*&&&&$$$$#$#%@+......+@:=~}[78787/h__}]!3=:%.....+#;91saaaaaaaasaaa605;#...", +"....@@@#$$&&&$####@@@+@+.......+:,>!_h[h[9]^!!33=':#+......%,4ngsaaaasjgrp0<94;:+...", +"...+.++@#$##$##@@@@@+++........@#$*3!}}}_^!;>--,:$#@+......@$,|0gassarqenoo4;,:@+...", +".....+++@####%@++++++.+........+@##-)!!{]d>*&&$##%@+.......+#$:o*$#%%+++..........+@%>ih<109|:$##@++......", +".......+@@%%%@@..+...............+@:'=))3=:@@@+..............@#;49hh05;#%@+.........", +"......+++++@++++.................++$&**'':$@++...............+@*-dd44;:%++..........", +"........++++++.....................+#$#$##++...................@$:::*$++............", +".....................................@+++........................@+++...............", +"....................................................................................", +"....................................................................................", +"..........+.+.+.....................++@+@+@+++..................++@@@@@@++..........", +".......+++++++++++................+@##$$&$&$#@+...............+#$*:,,,,,:%@.........", +".......+++++@@@@++++.............++$:*'''-'':&%@+............+@:;d44^544;,#%+.......", +".....+.+@@%@@@@%+++..............@#&'=>>>=>)'*$@+............@$-^59e999h^d*#@.......", +".....++@@#%######%@@+...........+%$'=33!!{{{!)'*#+..........@$*49111gffagh4;$+......", +".....++@%####$$&$%@++...........@#:>~{{{{_([]!='$+..........@:;90fffaaaaa694,+......", +"....+++%###$#&&&&$#@++..........%$:)!]}_}[78[]~=&@..........#:;h6asaaaaaaa1i-%......", +".....++@%#####$&$#%@+...........+$&')~!{!]/[({~=*@+.........@:,5h0gfgaaaaf19;#+.....", +".....+++@@%%%##$###@@+..........@%$*=>bdd^](]{~>:@+.........%$*|oe;d!]{!3=*++........+@$:;|4onntgjjg19|@+.....", +"...+..++@%%#%#$$###@++.........++##*->bd~]i(}!~>:%+........+%$:|oe^_2(}!{{{~>':#+........+%,49faaaafgff1e4;$+......", +"..+.+@%$$&$$@%@@@@++..........@%*>3_[7(5dd)>='$$@+........@#|nqaaaarq<-*:#@++........+$d06aaaap--,:&$%++........@$50faaajqnoo4;,:#@+......", +"....@##$#$#%+@++++++..........+%=!}}]_!;,**:$##%@.........%$i6saaape4||;,:$%%.......", +"...+@%#####%@+@+++++..........+#=~{}]]!;,:**::$#+.........+$51aaafgn4|||;;,$@.......", +"....+@%##$#@@%@%%@@@+.........++*=~!]}!b-;;))=)=&+........+@d90paap3~!!!3*+........%@-|91aa6{(/(i4]i}h7y[!,$#++....+%,4e6aaajrjjsaaaap4,$@+..", +"....@%%#$$$#@#%##$&$%++++.....+@*)3](/]!bdd!](8/!:&#@+....+#de1aaaagetqpfaaag|,$@+..", +"..++@###$$#@@@@@#$&$#@++......@#=~]](_{b>--;~_2_d*&#++....%$51aaaag$%+......+@:;41aaftneq1faaae,%@....", +"....+++%#$#%@%%#%#$#@++........+#&*3]_{~-3d!!]_{>#@+.......@$,d0aafqn)~~~!!3=*&#++.........+@$;49h1111609|,$@+.....", +"....+..+@+@@%%@#@@+.............+++$:*>)~~3~='#@@++.........+@@&;|9h10119|:##++.....", +"........+++@@@+@++++.............++@#&:*'''':$%@+............++#:,;|^44!;:#@+.......", +".........+++.++.+..................+@@#$##$##@++...............+@#$:::::$@@+........", +".............+...+...................+++@+@+++...................++@@@@@%+..........", +".......................................+++.+.......................+++.+............", +"....................................................................................", +".......++++++++++++++.............+@#$#$$$&$#$##@+............+%$&*,,,,,*::$%+......", +".......++@@@@@@@+@++++...........+@$:'===''=''':#@+..........+#,;4^55^45444;:%+.....", +".....+++@@%%%%@%%@@@+++.........+@$*=>)333)3>)==:$@+........+#*d9ee0<0<0hh95;*#+....", +".....++@######%#%#%@+++.........@#&=~{~!!~~!3!3)':#+........@$,i1f661111111h^;$@....", +".....++%$&$######$#$%@++........+#:~_2(]{{{{{]]{)':#........@$;1aaaafffffaafh4;$....", +"....++@#&*&$#$###$$#%@++........#$*{[x7(]]{{]_/]~=*$........$*dfavaaajffaaaa09d:....", +".....++#$'&$####$##$#@++........@$*]2x7/]]]{]]}]~=*#........%:daaaaajajfaaaa1id:....", +".....++%$&$$##%@#%%@@@++........+#&~_7/}^!~3~~~)='&#........@$'6aaasrg1<01109d-$....", +"....+.+@#$$##%%@+@@++++.........@@&)]/}]!bb-'==**&$+........%%,haasap<{_{!!3>*::&&$$#+........%#:9faffg'$#@+.............+@$&96af':#@+..............@#$51a6094;$#+.......", +"........+++@%%##@@.+...............+%#:=)~~!)*#%+..............+#$;900gg<|$#@.......", +"..........++@@#$%@+.+...............+@$:'3{]~=#%@+..............+#:;406a15$#@+......", +".........+.++@#$#@++................+@%$$>{/{=##++..............+@$:,efafn:$@+......", +"..........+.+@#$#%+++................+@#$={_{~:&#+...............+%$:9faf0|,$+......", +"...........++@%$##%@+................+@##=~_{~)'$+...............+%$$51aj0h^*@......", +"............++%##%#@++................+@#'3]{~~=:@................+%$40af609;@......", +"..........+..+@%%%#%+.................++@:=~~~!3:+................++#)i11160;@......", +"............+++@%%#%@..................++$:')~!3'+.................+@:;^h160d@......", +"..............+++%##++..................++#$'3]~*@..................+@$:^0agd@......", +"...............++@%@+....................++@:=3=&+...................+@#)i09=+......", +"................+++++......................+$&*&#......................+:'d'$.......", +".............................................++..........................++.........", +"....................................................................................", +"....................................................................................", +"....................................................................................", +"...............+.......................+++++++.....................+++@+++..........", +"............+++..+...................+++@@%@+@++.................+@@%#%#@@@+........", +".........++++++@+++................++%$&:::*$$%@+..............+@#*,;;;|,:$%@.......", +".......+++@@@@@@@++++.............+@#$*'>>=>=*&$%++...........+@$:|^99995|,:#@+.....", +"........++@%##%#%@@+++...........++@$:=)~~~~3>::$@+..........+@#*;5e11gq09|;:%@.....", +"......++@%%%%%#%%#%@@.+..........+@:=)33~~~~dd~>*#@+.........+%;90011qq1tt19|$%@....", +"......+@####%%#%##$#@++.........++#=!]{!3~d3!{}!>&%@........+@$56afg*$@+.....+#:;qaaaaasjrsaaagn|,%+..", +".....++%$&$$###%##$##%@++......+%$&~_7(}i^!d^i(}!;,&@+.....+#:;qaaaajrptgfaage4,#+..", +"...+.++%$&$#%%%%%#$$#%+++......+@%:~(7(^ddb|~^_i!)=&#+.....+%$;1aasrtt<;-d}2/!='&++......@#,1aaapennotaaa694-@+..", +"......+%$&$%@@@@%#&$#@++........@@$~_2_~;--,~}7/{>*$@.......%#:0aasteno4qaaaf9d:%...", +"......++####@%@@##$#%@++........++%=~]!~bb;;~{_{)*$@+.......+@#51a61<====*'&#@+...........+%%:;495i95dd-$@+.....", +"........+.++++++++++...............+@@#$:&&&&$##.+.............+%#$*;--,,::$++......", +".............+.+.......................@+@+@++++..................+@@#@#@@++........", +".................+......................++++++......................++++++..........", +"............++.+......................++@@@@+++...................++@@@%+++.........", +"..........+...+.+...................++++@@@@@+++................++%@#####%@+........", +"........+.++@+@@@++++..............++@$:'*''*&$#++.............+@#:;dd44|,:$@+......", +"........+++%%@@@@@+++.............+@%#*=))))>*:&%@+...........@@#$|5,:&@++.........+@#:,4<11110n4;,#@+....", +".....+++@@%%%%%@%@#%@+++........+@%:=)33~~~333~)'&%@........+%#;5<001q1:$@+.......+%:5gffgqq<<0fafe;:#+...", +"....+.+%#$$#%%@%#$$$%@++.......+@%&)]/_{dd;;!_/_3'&#+......+%%,haaafq3{(]!-*$@+.....+@:,qaaap:%@....+@$,|1aaatnnoo:#+.....@$:bgaajponno;d!_}!3=:@+....+@::|gaaspnnnntgaa609;#@..", +"...+.++#$&$$#%#%#$$##%+++......@%$*!/8/5d|db!}/}!)'$%+.....%$,b6aaarttt^!^!;$+......", +"...............+++++...................+++@##$#@+..................++@#$&:$#+.......", +"..........................................+++.+.......................@++++.........", +"....................................................................................", +"....................................................................................", +"....................................................................................", +"....................................................................................", +".........................................++++........................++@+...........", +".............++++......................++@$$#+.....................+@%*:$@..........", +"..........++++@%@@....................@#&*=3-*++..................@:,d905;@+........", +"..........++@%##%@+...................#&')!]~'@+..................$-4h6a1^%@........", +"..........+@+##&#@.+.................+$:'~]/{>#@+................+*;^1aaf9$%@.......", +"...........+@%$&$@++.................+#&'3}2]=$%@................+$'d0aaa9:#@.......", +"..........+++%#&$@+++................+@#&3]2]3$#%+...............+%:-uaaa0,$#@......", +"...........++@$&#@+.+...............+@@#$)}7]3:#%@..............%%#$*0aaa0;&#@......", +"........+.+.+@#$$#@+++..............++%#&)]/]3-:#@+.............+@#:,haaaqo;:@@.....", +"........+.+++@#$#%%+++............++%%#$$=!_{~)'&%@...........++#%$:,n6a61e4;#@.....", +".......+.++++@@###%%++............+@@##&&>3]!!3>:%++..........+%%$:,,91af609;%@+....", +".......++++@@@%%%#%#+++..........+@$$**''=3~~!~3'#@+.........@@*,||44n011g604$@+....", +"....+.++@%@@@@@%#%$%@+..........@@@:=>=>>>=)~!]~-#@++.......@%%;59nn9n9eq6a15*#@+...", +".....+++%#%%#@@+%#$#@+++.......+@%#')~3)3;-,3!_!>&#@+......+##:4egq<0eo4:$#@+...+%%;5e01gqeoo44,,,')!_{):&#%@+..+%$400gg6--;!]/}^)=,:$#..+#,96aafgqennnepaaag<54;,$.", +"..++%$&$###%%%###$&&$$#%%@+..+$:~}[_]!!~)d!!]/2[_}{3)'&+.%:;1aaajfgt<--=)>3~~~~~3)>'&+.@$;h6a6<59o59eh0011110h9^-@", +".+++@%%@@+++++++++++@++@+++..@#$'3~=-&$$$&$&::*:*****:$+.%$:50094;,,,-,,);d;ddddd;*+", +"...++@@++++++++++++.+++++++..+@#:=>*&$$##$#%##$#$#$&&$@..+#$>i9d,::$$:$$$:*$:&:--:#.", +"....+++++........+.+.+..+.....+@$&:$#@@%@+@%@%@@@%@@@@@...+#*-;,$###%@#%#%%#%##%##@.", +".....+..+.+.+.+.......+.........+@%+@@++++++++@+++@+........+#%%@@++++++++@+%+@+....", +"...................................................+...........................+....", +"....................................................................................", +"....................................................................................", +"...........+..+.......................+@@++.......................@@#@+.............", +"..........++@+......................+@#$:$@+....................+@$,;:#+............", +"........+.++@++.+..................++%&*=:#++..................+@#-d5;:@+...........", +"........++@@%@@....................@&:'=)':@++.................#,;49h^-@@+..........", +".......+@@%%#@@++.................+$'>3~!)*#@++...............+,^90g6e|$%@+.........", +".......@###$##@.+++...............+'3!{]]~-##%++..............+d0w6aa1o:$#@+........", +".......+@%#$#%%@++..+.............+&)~{]]~)':$@++.............+;h6faa1h4;:%@+.......", +".......+@@@%###%@+++..............+&*=3~{{!~;*$%++............+-di01ffgge|:#@+......", +"........++@%##$$#@++...............+#&=3~{}_!>##@+.............@$'506faa69:$@@......", +"..........+@%%$$#%++++.............++@*=~!_({)*&#%+............+@#d916aafh|,:#@.....", +"........++++@@%####@+++............+@@&*=)~{~!~)*$#+...........+@#,d5h0fgg1ed:$+....", +"..........+++@@@%#$#%@.+............+@#&:'=)~{_!):#@............@@$,)49e16afe;:%....", +"..........+++++@%#&$%+++............++@#$&*'~]/_~*&#+...........+@%$:,|^1aaa1d,$+...", +"............++++%#&##@+.............++@%$$:*3][}~'$@+...........++%$:,;40aaa04,#+...", +".........+++++@@%#&$%@++.............+@#$$:,3]/_~':#+............@@$:,;4))3)=*&$+++........++@,;5599e':%++.......+@#$;500016ff6094;$@+....", +"....++@@%%@#@######@@+++......++#$*=)3333!{}{!3>':&#+.....++$,|5e<000gfafg094;,$@...", +"...++@%@%#@%@%$$$##%#@@++.....+@:=3)3~);>~}/}{!33>'&@+....@#;i00uq!]!~3>-,~}2/}!!!!3'&#+.++#*96a6q<9o4qaaaagggg1^,$@.", +"..++@#$#@@@++%#&##%%@%#@+++..@$&){]!>--*:3][}!b33~~>*&$+.%:;hfageoob|qaaag;~!~)>*$%+$:|0aa19||||:&:$,->~!}]d;)!]{>&@:d51aagn;,;,4oeqfsjqe--*::-3!!{{!3)'&+.+@$^h100en5o|;;o066ff60e5-@", +"....+++@@#%@%@@++@@%%$#%@+.+..++$*'=)3)>)-*$*=>~!}{3**#@..+%:d^ih0h9ho|,|oeqfajud;$@", +".....+++@%#@#@@++++@#$#@++.....++#$:=~~33>,$&**=!_])&#++...+@$:d9010094,;|d96aah;$%+", +"...+..+++@+@+++++++@+@%++......+++#&*'''':&$$&&'=))*#++....++@$,d^^^4;'::,,d90hd$@+.", +".......++++++++++++++++++........+@@$$$$$$$$###$&::$@+.......+@#&*,:,,*:$:$:';;:@+..", +"...........+...+...+.+.............++++@+@%#@@@@++++...........++@@@@@$$%@#@@%++....", +".............+.+......................+++++@++++++................++++@%++++++......", +"...........................................+...........................+............", +"....................................................................................", +"....................................................................................", +"....................................................................................", +".....................................++.+........................++.+...............", +".....+.+.++.+.+...............+++@+@@+@+@+@+++............++@@@%@@%@@@@+++..........", +".+.+++++..+.++.++.+..........++###$%@%%%#%@@@@++.........+@$$::#####$###%@@+........", +".++++++++++++++.+.+..........%#$$$:&$$##$#$##%@+++.......#$,*,;,:::::::$$#%@++......", +"..+@+@@@@@@@@@@@@+@+++......+#*'==--,->)))-,***&#@+.....+:|^55oooone>>':#@+....@;5h0110>':$%@....@-^ne<;!_[}!>--,*$#@+....%:,d4onneegaasgnoo4|,:#+....", +".++++++@@@#$&##++++++++.....+##$$&*,,;!([}d,*:&&$#@++...@$$:,;|44npsaato|;;,:$#@+...", +"++@+@@@@@@%$&$#@@@@+++++....#$'---,->;^_7_~--,*:$$$@+...$,4ooo4onegaaapoo4|;,::@+...", +"++#@@@@@@##$&$#@@@@+++++....&'33)--;>b^/29^;-;,,:&&@+...,^01ennne-,*$$@...-06ap>)|}/8({b)>>-'*&#+...:i160>>)b3]/7(^);>,=,*&#+...*d9099ne<;3{/7_!;;=-'**&#+...#'d^4o5ne--**:&$++...+$,>|44o9nfaaapnood|;,*%+...", +"..+.++++@@#$&#%+@+++++.+.....@@#$&&:,-!_2]~**:$$##@+.....@#$*-;;4opaaa0||;,:$$%+....", +".....+++++%#&#%++++...........++@@#$$&~][]>:&##@++........+@#%$,,;1aaae;,:$#@+......", +".......+++%$&#%++++.+...........@@%#$$3}[]>$&##@+...........@%%$:,0aafe,,$$@@.......", +".....+.+.+@#$#@+.+...............+@##&3]/{;&##+@+............+%$:,0aafe,:$@%+.......", +".......+++%$$#%++++..............+.###3]/{>&##@+.............++%$:&$%++..............+#$:haage,:#%+........", +".......+.+%#&$%++++...............++@#)]2]3:$#@+..............+@%$haaa<;,$%+........", +"........++@$&##@++.................+%#)]2]~':#+................+#$haaaq^;$+.........", +"..........@#&#%@++.................++@>]2]~':#+................+@#9aaa0^;:+.........", +".........+@@#%@++...................+@'=!)'&$@+.................+@d96h^;:@+.........", +"..........+++++++....................+$&:&$#@+...................+:');:$#+..........", +".......................................@+@++......................+@@@@+............", +"............+...........................++.+........................++.+............", +"....................................................................................", +".......................................++..........................+%...............", +"..........++@+......................+@$&:$+.....................@%:-;*@.............", +".......+++@+@@+....................@#$*'=*#....................%$-d!9;$.............", +"........++@%%@+....................+$&')3=$....................@*'^h0i'.............", +"........++@##@+....................@#$=~])&+...................@$:i1a9;+............", +".........++#$#@....................+@$=!_~*+...................+%*i6agd+............", +".........+@#$%@.+..................++$=]/~'++..................+@*9aa1^@+...........", +"........++@#$#@....................+%@={/!'@+..................+##ifa6^@+...........", +".........+@#&%@....................+%$=]/~'++..................+%*9aa1^@@...........", +"........+.@#$#@+...................@+#={/!=%++.................@%$iaa65#++..........", +".......+.+@$$%@.+..................@@#=]/~=@@+.................@#$9aa6i#@+..........", +".......+.+@#&#@+...................@@$)![!'#++.................@#:9fa6^$@+..........", +".........+@#&#@++..................@@$=]/!=#@+.................@#:9aa65$#+..........", +".......+.+@#$#@.+..................+@$=]/{=#%+.................@#*9aaf5$%@..........", +"........++@#$#@++..................@@$=]/!=##@+................@#:9aaf9$$@+.........", +".........+@#&#@.++.................@@#){[!>##@+................@#$haa6n:$#+.........", +"........+++$$#@++.+................+@#=]/!=$#@+................+#$9aa69:$#@.........", +".........+%%$#@+.+.................+@#)~/{>$#%@+...............+#$96af9,:%@+........", +"..........@#$#@+++.................++@={}!):&#++...............+@#9fa6e;,&@+........", +".........+@@###%@++.................@%'3]!3)'$%+................@#!0a60e4,#@........", +"..........@@@%%#%+++................@+*=)~~!3*$@+...............@%;i01660d:@+.......", +"..........++@%$$#%+..................+$:'~]/!>#@+................@*;40aa69:#@.......", +"...........++@%#%@@+.................+@$&=~]~>*$@................+#:)91a19;:%.......", +"............++@%@@@++.................+@$*=)>=':#.................@%*;ih9i^;$.......", +"...........+.++++@@@+..................++#$&*=='#..................+@$:-d59^:.......", +"...............+++@++...................++@#&*=*$...................+%#$-did*.......", +"................++++......................++@$&$+.....................+@%*-:@.......", +".............................................++..........................+@.........", +"....................................................................................", +"....................................................................................", +"....................................................................................", +"........................................+.+++.+.....................+.+++.+.........", +"..........+.++.++..+................+++@+@++@@+@+++.............++@@@%@@@%@@@++.....", +".......+..+..++.+++.++.............+++%@%####%#@%@++...........++@###$$$$#$##%@+....", +".......++++@++++++++++++..........+#$:::*:*&*:**::$%@+........+$,;;;|;|;||||;;,$@+..", +".......+@%%@%%%%%%%%%@@++........++:=)))>););;);>-'&@+.......+@;5eheeeeeeeeen54,#+..", +".....+.@%############%@+++......+@@')!!!!!!!!!!!~~>*#@+.....+%#406p6gpg1p61ggqe|:%+.", +"....+.+@###%#%#%#%%####@+.......+@#=!{{~!~!~!~!!^!!-$%+.....@#$56a6611gp1ggggfqo:#@.", +"......+@#$$%%%%%%#%##$#@+++.....@@#)]_}!bddbddd!]]{>&#@+....@%:hfafg<<,&@..+$96asassasssssaaassj'&+..%$haaassjssjsssaaasjgq94,%", +"....@@####$##$##$$&$$##%@+++..@%')!{i}i]ii}i_h7h(^!;,&$@..@#4hgffsjjfjjjsaaasrpe4;*@", +"....+++%$#$#$##$$&&&$%@@++....++$*-35}i]]^]i([8[_d;-:#@+..+@,doqrsfjjrjjaaaasqeo;:@+", +"...+.++@%$######$$&$$%@++.+....@%$:;!}]^5^5^(/8[i~-*$#++...%%:;egsjrrrrrsaaajto|:$@+", +"....+++##$####%##$$$##@@+.+....+%#&3](i^{!~45_(({~>*$%+....%#:,>>'&@+......%#&efajpt<<<!_{!!~d3>-'**:$#+.......+#$96afgpt<*$#%@+..........+#|916fafg1n|:$%#@.....", +".......++@%#$##%@++.+............+@$:-~]({!3>*#@@+...........+@*;o0aaa109|$%%+......", +"......+.++%$&$##@++...............+@$$3}2({3-&#++.............+#:-0aaaf05;$@+.......", +".........+@%##@@++.+..............++@$=~{!)-*$@@..............++#:i1a6h5|:%@........", +".........+++@@+++..................++%&'==:&$@+................+@#'!95d,:#+.........", +"...........++.++.....................+@%##%@++...................@%#$$%%@+..........", +"....................................................................................", +"....................................................................................", +"...........................................+.+.........................+.+..........", +"...............+++++.....................++#%$##+....................+@$$::$@.......", +".............+++++@++..................++##&::':#+.................+@$:,;;4;$+......", +"...........+++++@@@@+................++@%$&:'=='$+...............+@@#:,;^i9^,@......", +"........++.+.+@%%@%@++............+++%@##:-)))3=&@+...........++@##$:;oeeh05-@+.....", +"....+.+...+++@#%###@@...........++@+%###&-3~!~~>*@+.........++@@#$$:,o01g109|#@.....", +"......+++++++@####%@+++........++@%##$&::>!}{!3>*#@@.......++##$::,;;ngaf619|$%@....", +"...+++@@@@@@%%#$####@++.......+@$*-=->-->3!}]{{~=$%+......@#,d5oononnq6aaff15:#@....", +"..++@######%####$$$#@++......@%&=~{!!{!~~!^}}_({>&%@+....@%-i1ffffg11grjsaafe,#@+...", +"..++#$&$$$$$#####$$$%+++.....@$*~_2///_}i]{{}/[}3&#@+....#*d1aaaaaasjffraaaa<;$#+...", +"..++@#$$$$$$$###$$&#%++.+....@#:)](_//_(_}]^}_[}3*&@+....%$;haaaaaasssfraaaa0|,#@...", +".+.+@@%##$$$#$#####$%%++.....@@#')~{]_(}}i^!]{}]3>*$@....%%:^h1faaaasjfprasa19d:@...", +"....++@@##$$$##%####%#@++.....+@$:'3{]__(i!|!^{!~3>:@+....+%:;^0fassajgtggfg109;%+..", +"..+.+++@%###&##%%%%%#%@@......+@%$:=~{}_/]!bd3~~~~=*@+....+%$:;91faaajr;>>)3~3'#@+....+@$:49-*&&*':&#+.......+@%$:51af0eo|,,~^;-$@..", +".......+.++@#%##@@+++++...........+@%#')~~!~),#$$##@+.........+%#$4e111gh4:::*$#+...", +"..........++@%%##+++...............++@$*))~!3'$#@%++...........+@%-4e01g04:$#%@+....", +".........++++@%%%+++++..............+@$$*=3~3'*&#@+.............+@:,d90105|-$%+.....", +"...........++@+#%@@@+................+@#$==~3==*$++..............+@$&!91095d*@+.....", +".............@@#%%@+++................+++:=~3)=*$@+...............+%@;910h9d:@+.....", +"............+.+@+@@@+..................++#*''=='&+.................++$;^^ii!-%......", +"..............++++@+++..................++#$:*=*&#+.................+@$:;did'$@.....", +"................+++@@.+....................+$&'*&@@...................++:-^d-#@.....", +".................++++.......................+$&$#@......................@:,:$%......", +".................+...........................@+++........................%@@+.......", +"....................................................................................", +"....................................................................................", +".............+.........................++++++......................++++++...........", +"..........+....+....................+++++++@++..................+@+@@@@#@+..........", +".......+++++++@@@++................@$:$$#&'=*$@+...............%*;::$,4id,%+........", +".......++@@++@@#@@.+..............+$*=*:$')!):#@+.............@*d5d;:4h6e;$#+.......", +".......@@@@++%#$%@++.+...........+@:=)=::>!]~=$@@+...........+@;50o|;n6a15:%#+......", +".....+++%##@+@#$#@+++...........+@@'3!3-:3{/!>$$#++.........@@#^060o|!_[]d::$#@+.......+%$*haafqngaaa<|;:$%+....", +"..++.++##$#%@##&$#@++++......+@%#$$~]/{d>!_7}4,:&#%@+....+##$:,qaaf>>={(7(5~_h7/^d;;,:&%+..%,^99n9faasppsaaapten4;,#+..", +".+%##%%$$&$$#$&:&$#%%%%+++..@*3!~33}[7(_5(2c2}~db>;&#@+.@d061qqaaaasrsaaaspt:#@+.@^h1110saaasrsaaasgpqe9;:#+.", +".++@@@+#$&$#%$$&$#%%@@++....+$*'==={h[}^4i/7/id);-*$%@..+:d^559faaarpjaaaj<*:$#++...+@$:,;1aajpdi(i!b-,&#@@+...++@$*;0aaf:$%+.......+%%9fa69||o5<6a6n;:%@...", +".......@#$#@+++@@###%++++........+%={_~=::::=!]{)&$#@+.......+#9fa19;;;;9pafe;:$@+..", +"......+@%$%@+++++@$#@@+..........+@=!_~=$$$&'3]!)*$#++.......+%i6a15,,,,!0a6h|,$@+..", +".......@@$@@+++++@@@@@+@+.........+'3])*####:===>=*&@+........+^0ah|$$$$;5999od,#@..", +".......+%#@+..+.++++@%@+.+.........*)!=:#@#@#&:*=)=:#@........+dh6i;$%$#$,;d5hi;$@..", +".......+@@@++....++++%@++..........&=3'&@+@+@@%$*)=:$++........'i0^'%@@@%%#*dh9;*@+.", +".......++@++...+...++++++..........#&*&@@++++++#$::$@+.........$-d,#@+++++@$*;;*@+..", +"....................++..............+@@+....+.++@#@+............@@@+....+.++#$#@....", +"....................................................................................", +"....................................................................................", +"...........+...........................+++.........................+++..............", +"...........++++.....................++@###@++...................++#$:$%++...........", +".......+.++@@+++...................++@$')*&+++.................+@@,^hd,@@+..........", +"........+.@##%+++..+.............++@@#=~{3'#@+@+.............+@%#$51f04$%@@+........", +".....+++++@#$#@+++..............+@%##$=!_~=$$%@++...........+@#$$:9fag5:*##@+.......", +"......+.++@#$#@+++++...........+@@##$:3]/!;:$$#@++.........@#%$:,;0aafe;,:$%@+......", +"..+++++@++#$$$@++++++.........@@#$$:::~}[])&:$$$%++.......@@$:,;;bqaaa<;;,::#@+.....", +"...+++++@@##&$%@@++++++......+@#$***,-!}2}~-,::&$%@+.....@%$,|||4ogaaaqo4||,:$@+....", +"..++@####@#&&$#%@##@@++.....+%#:>~!!d)]/8_!bb~d>=:$@....+#$;n1ppt][c[}5/28[(^}}/_!)':+...#:;9faaasraaaasraaaa6h^,@...", +".++@#$&$#%#&&$$%##$#%@@+....+$&,{/2_^!i28h}~^]_]!)=&+...@:;4faaarpsaaaaqgaaa6h5-@...", +".+++#$$$#%$$&$#%%####%@++...@$&*{/2_!di(7(^b~{]{~)=$@...@:,46aasg,,*3_[{),'>))''&%.....@%$;^944|0aaa<4^9h95d'$....", +".+..++@+++##$##++@+@@++......++@$:'*&&3]/])::''*:&#%.....+@%:;4|;;0aaae;|45d;-$%....", +"...+++++++@$&#@@+++++.........++##$&&&3}[!):$:&&$@+.......++$:,,,-0aa6e;,;'-:#%.....", +"........++@#&#@++++.............+@@%#$){[!=$$#@++...........+@%#$&haa69:&$#@@.......", +"......+..+@#$%+..+...............++@@#=!_!'%@%@+.............+@##$i6a6^$%#@+........", +"........+.+%##@++..................@@@'~]3*#@++................%@%^0au|$%@+.........", +".........++@#++...+.................++*=!=*+@+..................++d969;@@+..........", +"..........++@@++......................&')'$+.+...................+-^h^*+.+..........", +"..........++++........................@$:$+.......................%*;:%.............", +".......................................+++.........................+@+..............", +"....................................................................................", +"....................................................................................", +"..................+........................++++++......................++++++.......", +"..............++++.++....................+@###@@@++..................+%::$%#%@+.....", +".............++++++++.+.................+#&*:$&$#@@+................+$-d;,,*$%#+....", +".............++@@++++++.................+$*==*:&&$$+................@*d95|;;,*:@....", +"...........+.@@#%%@++++................@+*>~3>,**&$@+..............%@;9g094||;:%+...", +"............++%$#%@@@+@+..............+@#'~}{~>-,*:#+.............+#$41a6qeo4|;$+...", +"..........+.+@#$$#%%%@++..............@@#={(]{))>-:#+.............@%$96aag<<95;*@...", +"...........++%#$$###@@+++............+@##){/_]!~>-:$@............+@$:efaaagq9o;:@...", +"...........+++##$###@@+..............++#$=!}]]{!)*$#+............+%$,9paaafge|,$@...", +"...........++@@##$$#%+++.............+%$&-3{i_({)*$@@............%%:,oqffaaf<|:#@...", +"........++++@%%#$#$#%++++...........+@#&*;3^i}(];*$%@+..........+%:,|eqrjsafe|:$@+..", +"..........++@%#$$$$#%@.+............++$*=~{__(({),$#++..........+@:|5qfsssaf<4,$@+..", +"..........+@@#$$$#$#%@++............+@$-)!}h(}_^3,:$++..........+@,oegaaaasf04;:@+..", +".........++@%##&$$###@+++...........@@:-3!_2((}!d-:$%+..........@#;ohfaaasar!}[(_i!3-,$@+.........+@%,4npaaasfrqo4,#@..", +"........+.+@+#$&$$###@@+.+.........+@#$:,!_[h}^^d>,:#@.........+#$:|4gsaasrgqn4;$@..", +".......+.++++%#$$$#%#@@++.........+@@%&&,bi//_{!d>-:%@+.......+%#$,;4*$++......@%%$:,;|qjaassfp0n|:@+.", +".....++.++++@%#$$#$$##%++......++@%##$&:,|^(/_(_^!)*$@+....++@#$::;|4*%@+..+#$,;|4ooe<~!!!{]_/(_i}]]{),&$@+...%,;91666faaaaafaaaf<4;:#@..", +"..++@%%%%%####%%%##%%%+++....@#&')~~~~!{{!~3d~!d)>*$@@...%$-^h111166661qqq1qe9|,@%..", +"..+++@%%%%%@@@@@@@@@@@@++....+@$'>33333))=;=->->)==&%+...@#:490000=='&$&$&$$$&>3>*+....+@#;599994;,,,,:,,;909;%...", +"...+++@+@+++++.++.++++@+......++$*''',:&$###$%#$*''$+.....+@-;4^^4;,:$&$:$$,d^^:+...", +".....+++++++.+...+.++++........+@#$$&&##@%@+@%@%$$#@.......+#$,:,,:$##%%##@#:,$#....", +"........+..+..+..................+++@@@@+@+@++++.+...........++@@@@@%%+@++++.+......", +"....................................................................................", +"....................................................................................", +".......................................++++........................++++.............", +"..........++++++.....................+@#$##@++...................+%:,:$%@+..........", +"........+.++@@++++.................+@+$*'':&#@+................+@@*d^4;,$%+.........", +"........+.@@%@@+++................++%#*=3=':&#++..............+@#$di094;,$@+........", +".....+.+++@%##@+++++............++@%##=~{~>:$#%@+...........+@##$:o1f19b,$#%+.......", +".....++.++@$$#%++++.+..........+@###:$)]/{>*$$$@+@.........+@$$:,,eaafe|,,:#@@......", +"...+.+++++%$&##++++++.........++@$$$:*~}7]~::&$$%++.......+@#:,,;|0aaaq|;,,:#@+.....", +"...++@#%%@#&&$#%@@@++++......+@#*>3)>>{[8/{b;-,*:$#@.....+%$d90eneaaaa6=:$+....@:;hfaaggaaaaapgq0hn^;*+...", +".++@#$&&$#&&'$&$####%@@+.....#$'{/7[_][8x7[9]]!!3)=$+....$,4faaaaaaaaaasaff60h5,@...", +"+.++#&&$$#$$&&$$$##%%@@+....+@$:{[7/}](287/}}{{~3='$+...+#*dfaaaafaaaaasaff109^*+...", +".+++%$&$#@#$&$##$%%%@@++.....@$:~(2_!d{_[__}]!33>':#+....%:;6aaagtfsaassjrq094;:+...", +"..++%$&#%@@##$####%@@++......@#&~_2{~-|^]i{5!!)='&#@.....%$-0aaf1ntgjffrg1e94,:@....", +"..++%$$#%%%%##$##%@@++++....+@@&~_/{d>b~!5]i!d>-:&#@....+##-1aaf;-;~{/{b*&$%@+.....@#:haag-*&@%+.....+@#^h16ggptqpfapeo|,%#+....", +"....@@%%####%###%@@@++........+@:)3~{{!!d!!{~)-'&#++......+%;901fa6gqgg600o4,$@@....", +"..+.+@+##$##%@@@@##%@+++......+@$:'~]({{~d)>)~3)=:$%+.....+%-d!1aaa60q-*&*$&$$#:*-'*$#@......+@,49o|;;,,:,:;|o4|,:%....", +"...++##%@@@@++++@@#%@+++......+#'3!~;-,::$::,>~)=*:#+.....+$^06qeo4;;,;;49105d;$+...", +"...+@#$#%@@@+@++@%###@++.....++#){}!);-,:*&&-~{!3>*#@....+%$efa6=*$+......@^06h4;,,:::,|90099d:+...", +"....+++@++++.++++++@++++.......+$*'*$$##%##$&*''*'$#+......+:d^d,:$$$$$:,|!4dd,$+...", +".....+++..++...++++++++.........+###@@@%%@@%%#$$###.........@$:$%%#%%#%%#:&*:$$+....", +".............+.....+..............+++++++++@+@@@@+@...........+++++++++%@@#@#%@.....", +"....................................+.+......+++................+.+......+++........", +"....................................................................................", +"....................................................................................", +"....................................................................................", +"........+...+..+...................++++++++++..................++++@+++++...........", +"......+..+++.+....+..............+++@@@%@@+++@+++............++@#####%@@@@@++.......", +"......+++.++++++++.+.+..........+@#####$$#$##%@++@+.........@#$$$$$:*$:$$#%@@@+.....", +"....++++++++++++.++++.+........+%$&$$&$$&&$&##$#%@%+.......+#:,,,,,,;,,,::*$##%@....", +"...++++@@++@@+@+@++++++.+......@#*,,,,,,,*,**:::&$#@@+.....@:|4444444|4|||;;,,$%@+..", +"....+%#####%@#%#%%#%%@@@.+.....@*3!!!!~dbb|dddd);)=:#@+....#|06gppt<<:$+...+$haaaaaasfjsasaaaaa69;:@.", +"...++@##$$#$$#$$###%%%@@+++...+@')!{__}_i}_/}{!~~3)'$#@...+%^h6aaaasjasaafgq10hd*$@.", +"....+@+@%$###$$$##@@@@@+.......+$:'3!ii}}_((i!>=='':@+.....+*>^06fjssasafpen954;#+..", +".....++@@#$##$$&#%@+++@+.......++#$'3!]^]9//]d-***:#++.....+@$&oqgffjsaaj{/{)&$#%+............+@#$,;efage;::%%.....", +"..........+++@#$#@++.+..............+@##&>!}!;$$#@+.............+%$$,96a6n,:$@+.....", +"............+@%##@++++...............+@%#,~]!>*$$%+..............+#%:o0a6n|,:#@.....", +"..........+.++%#%%+++.+...............+%#'3!3),:#@@...............+#$4060e4;:%@.....", +"...........+.+@%%@@@+.................+@@:=~3==*&@+...............+@#)90099|,@@.....", +".............+@@@%@@+++................++$'=>))=:$@+...............+@*499eh5;*%+....", +".............+++@@#%@++.................@#&*')3)':$@................@$,d^e1h^;*#....", +"...............++@#@@+++.................++%*)!3=*&@.................+@#dh609d'%....", +".............+..+@%%@@+..................+@+&=3)=:&%.................+@@'50h5;-#....", +"...............++++@++++..................+@#&*'&&$@..................+@$-dd;'*%....", +"..................+.+++.....................++@####@....................+@#$$$$%....", +"..............................................++@@++......................++#%@+....", +".....................+..........................+@+.........................+%+.....", +"....................................................................................", +"....................................................................................", +"....................................................................................", +"...........+..+.+.+.+................++@+@@+%+@@+++..............@+@@%@@%@%@@++.....", +"........+.++@++++++++++............+@@#*'&&#&:**&#@+...........+@%*;4;,$,;d|;:%+....", +"........++@@#@+++%%#@@++..........++#$'=~>*#*)3)>'&#+.........+@$*4919|:de1h9d;$+...", +"......+.++@#$#@+@#$#@@++..........+@$:){_~>:=!}{3>*#+.........+#:;hfa19;n1aa19d:@...", +".....+.+++##$#@@@#$##%@++........@@$$:3](!>*=!_]!)-&%+.......@#:,;0aafn|96aa1ho,#+..", +".....+++++%#&#@+@####%@++.......+%#&:*3{[{)*)!]{!)=:@+......@#*,;d0aaf<|egafgh5;%@..", +".....++++@##&##@@#$##@@@.+......%$&::'~]2{d->!]{!3=*#@+.....#:';|^1aaaqongafp09|$%+.", +".....+@@@@#$&$%@#%##$%@@++......@&*''=!(2_~-~!}]{!)'$@+.....#,d|456aaaqnqgsffg<4,%+.", +"....+@+@@@#$&$$%#$$$###@++......$:'=))]/7(]d!}__]!!=*$@.....:;!9e0aaaajqgaaajf19|*#.", +"....++@%##$&&$$##$$&$$#%@++.....$*=3~{}27/_^]([/(}]3':#+....*d900faaaasgjaaaaaj0!;$+", +"....+@@%@#$&&$###$$$#$#%@++.....$*=33!}[8[}!i_//__{3-:#....+:di01zaaaaagjaaaaaf0o;$.", +".....+++@@#$&&#%##$$$#%@++......@$:*=){/7(]3^i_(}{~=:$@.....#:;d5hfaaajqgjaaaf19;:#.", +"......++++#$&##@%#$##%%@+.+.....++#$&*~_2}~;~{_]{~3'$@@.....+@::;d1aaapnpgsfj104-#@.", +".......+++@#&$%@%####%@@+........@+#$$3]2}d;b!i]!3)*#@+......@@$:,0aaaqn:#@.......++%$&0aaa:%@........+@#:haaa:%+.........+#$haaapeqfsa609;#+..", +".........+@$&$#%#$$##%@++..........++#)_2_{3!}(]!3=$@+.........+@$eaaa6qgaaa605,#+..", +"........+.@$&$###$$$#@@+...........+@@)}7/]!{_/_!)=&@..........+%#haaaa6faaa6h5-@...", +"..........@%##%@%%##%@++............++'~]!3)~~]!3=*$+...........+@^1a60e16f609|:@...", +"........+.+@@@@+@@%@@+@+............++&=)=':=)3)=':#+...........++'ih9!|5h0ei4;$+...", +"...........++++.++@+@++..............++#$$$%&:'':&#@.............+@$:*&$,;!4)-:@....", +"...............++++++++...............++@@@@$$:$$##+..............+@#%##:,;,:$$+....", +"...........+.+...++....................+@++++@##@++................+%++@@#$$%%+.....", +".............................................+.+.........................+.+........", +"....................................................................................", +"....................................................................................", +"....+++++++..+.+.+..+..........+@###$##@+%+@+@+++..........+%$:::$$%@%@@@@+++.......", +"...++@@@+++++++++++...........@#:=>=**:&##$$$#@++++.......%$;o9o4|;,$:*,::#@@++.....", +".+++@###%%@+++++++++++.+.....@#$=~!~3>,:&::*:&$$%@+@+....%$,91600n4;,;;|;,:*$%@@+...", +"..++@#$##%@@++@@@++++++......@$:3]_{!3>,&*'=-'&&$#%+++...%*)0aaa6qe4;|4oo4;,:$#@@+..", +"..++@%####@#@%%#%#%@@+@@++...+#&=~]!!~)d;))d3~~))='*&#@..@$-91a6gq<=*#+.+#:!0101qgp6g6gfaaaf6095d*+", +"..+++@%%#%#$$##$$&&&$$$#%@++.+@#*=)3~d!___]}([77(_]!3>&@.+#$|oh4{{]i~b,>!{{!3='$#@+..@#:,|epfjfjg<4egff609d,$#+", +"..+.++@@##$##%@+@@%%#%@@++....@%$:,)!]i{]~>,>)~~~~)'##+...@%:;4<6fjffqn4n~{_]]!d>:,=)>~33'$%@+..%#;49tfsjjgqn|45ee1004:#@+", +"...++@@##$$##@%++@+@%#%@+.+...@%:-)!]_}{!3;:**,=3!3=$@+...@#;oegaasffqnb|b49<615,#@.", +"..+.+@#######%@@+++@%##@++....@@*)~!i]i]!b-:&&:=3!~=$%@...%%d<1gjajfg!}{!~!!!)-::&&=~]!=&@+...+$96afpqggg$@@...%:0aaaqn<06eo;;,,56aa9,%@.", +"...+@#$#@@%%#@@++++@#$#%+.+...+#)}/!>-;~!b,&&&:=!_])$@+...+$haa6eoe16e4;,;;o6aah,#+.", +"....+%%@@+@###@++@+@@$$@++....++*)~='*){]~-:&::=~(}>&%+...+@dh19^|egago;,;;56as9-#+.", +"....++++@+%#$#@++++@#$#@+......+$:'*::){(!>&:$:=!(])$++....@:;d|;;hfa6n;;,;i6aah&%+.", +".....+++++%#$##+@+@%@$$%++......+%$##$)]_{;****)~_])$@+.....@$::&,eaafn||b|ezaah*@+.", +"........++@%###@#%####%++.......++%%##=~]{~)~~!!]]~'#+......+@%#$:i1af1<0166aa1^:@..", +".......+.++%###$#$$#$#@@.+........+@%#'3{]]}]__}]~3*#@........+%#$^0faaaaaaaa60d$%..", +"..........@@###$$$&$#%@+...........++@:=~{]_//2_]3=:@+.........+@@;91faaaaaaa0i;%+..", +"........+.++@+#%####@@++............++$:'=~~!~!!=':#+...........+@*)^91116669!;$+...", +"...........++++@++@+++++..............%$&:'=====*&$@+.............%*,;^ii99^d-*#+...", +"............+++++++++..................+%%$&&&&$#++................@#$*--'':$@+.....", +".............+.+++++.+..................+@@####%@+..................+@#$$$$$@++.....", +".........................................++@+++++....................+@@@@%++.......", +"............................................+...........................+...........", +"....................................................................................", +"....................................................................................", +"..........+..........................++++........................++++...............", +"........++++++..+..+.+.............@$::$$#+++++@@@++...........%,;;,:$@+++@@%%@+....", +".......+@@@@+@+..+.++++...........+$'=''*:$@@@@#$:$+..........+*^95^d;*%#%#$*-*@....", +".......+%%%@@@++++++++@+..........+:>3)==*&%%##$$:&#+.........+;90h99|,##$:,,;-&+...", +".......+@%%#@@+++++@%%@++.........+&)3333=*$&:*=)3>*#+........@)90u005|:,;d5h09d$+..", +"......+@@@###%@++@@@#$#@+.........@:=3~!!)-$*'>)~]!=$+........@;i01w60o,|49h1a6i:@..", +".......+@%%##%@+@@@##$#@++.......++:=3!!]~>:,=)~]_])$%+......+@)90gfaqn;4oegaaah,#+.", +".......++@%$$#@+@%#####+++.......++&*=~]_!>*=3!!{{3=&@+......+%,di1aage|506zff15-%+.", +"......++++##$#%@@%##%%@@+.........@$&'~]/{),>~{{~~>*&@+.......@:;40aaf<4etaf119d-#+.", +".......+++##&$%@%#$#%@+@++.......++%$&~]2}d-)!_]3=':$#+......+%%*;qaaa-*$@%+.......+%#:,;egaaaaageo|:%#+...", +".....++++@@##$&&$$@@+++........++%##:*b!}/78/5>,$$#++......++#$:;|~!i_/2_{3=,##@+......+#,;4oeqgjaaaafqn4:$@+...", +"...++@@###$####$#$$#@+.+......+%:'=~{]}]}i]i}}}!>$#@+.....+#;49q6aaaafajsaa69,$#@...", +"...+++%#$&$$###@#$$$#++.+.....+#*=~]/2__{{~3{_/_3*#%@+....%$d90aaaasff1=~{/]~*&#@+....@:^06aaaaffqe90jaaqd,&%+..", +"...+@%####%@@@@+@@%@@@@+++....+#'3!!{{33=-,*=)33)=':##+...@$^066ff009o4|ih00h9^;*$+.", +"...++%#@%@@+++++++@@@@@+++....+#'3!~3)=*&:$$::'==)=':$@...+$!0600h5|,;,,;;^5ih94;:%.", +"....@@%@@@+++++++++@+@@@@+.....@*)~==*:$#####%$:'==':$@....%dh695d;,$$$$$$:;^9}4;*#.", +"....++@++++........+++++++.....+$*=*&&$@@%@+@@@#&*:$%%+....+:d^d-,*#%##@@%#$-;;*$#+.", +"......++.+.+..+...+.+.+.........+@%#@@++++++++@+@@@@@+......@#$$%@@+++++++@+%###@+..", +"....................................++++.........+..............++++.........+......", +"....................................................................................", +"....................................................................................", +"....................................................................................", +"....................................................................................", +"....................................................................................", +"....+.++.......................+@@#@+++....................+%%$%@++.................", +"....++++++....................++#&$$#@+...................+@&,,:$@@.................", +"..++++@++++.+................+#$:*':$$%@+................@$:;d4|,:$@+...............", +"+++@%%@#@@++................@$*-)333>-:#++..............@*d5e0109o;:@+..............", +".@@#####%%@++...............+*)~!{]!~3=&@++.............@dh16faggh5,#@+.............", +".@@%#$$###@@.+..............@'>~{]_{{~>:#@++............@dh0faaaf6n;$@++............", +".++@@#####@@+++..+..+++.....+$*=3{]{{{),##@+++++@##+@...+*di0fafffh4:$%@++++%$$@@...", +".+++%%#$###++.++...+.++++...+@$:)~]]]{3,&#%%+++@#$##%+..+%*;h1aaaa04,$##@@@#$::$#@..", +"..++@#%##$%@++.+++.++++++....+@$=~~]]}~-$##%%%%#$*:$#@+..@#*516fas1o,:$###%:-|;,$@+.", +".+..+@%$$$#%+++.+++@@#@++....@@%*)~](/{):&$#$&:==~=*#+...@@$de0aaafe;,:::,;4909d$@..", +"..+++@%#$:#%+++++@@@%##++....+@@*'3](7];:$$#&'=)~{~'$+...+@#|5!_]!3;,&=3{~=:$#+......+@%:n6ajgte4;o0f09;:$+...", +".....+++@###$#@++@@@+++.........+%$')!{]}d-:*=)=*$#++.......%#:^h66aa,:$##+@+..........+#,;hfafqn4;:$$%@+....", +".......+.++@%%##%+++.+............++@$')~~!!3*&##@++..........+@#:4h016p<4,$$@@+....", +"........++++@%#$#@.+.+.+...........+@@#:'3!}~=#$@%++...........+##:;406a1o::##@+....", +"..........+++@@##%@@++..............@%#$:=3!~)=*$#@+............@%$,;9061eo|,$%+....", +"...........+.@@@@%%%+++..............+@##*=)333)*#@@.............+#$:d50000e|:#%....", +"...........+.+++%###@+++..............+@@$:*)~]~>:#%..............+@%:;be6a19;$#....", +".............++++%%%@++................++#$&')~3=:&@+..............+@$*;!hguo;,%+...", +"...............+++@@@@@+................++@$&*='='*$+...............+@%&-d5^5^d*+...", +"...............++.+++@@+..................++%#$:*='#+.................+@%$*;d54*@...", +"...................+++++...................++++#&'*$+..................++@@*,^d:+...", +"....................+++.....................+.++#$#+....................+.+@$:$@....", +".................................................++..........................++.....", +"...................................................................................."}; diff --git a/hacks/images/matrix2.xbm b/hacks/images/matrix2.xbm new file mode 100644 index 00000000..93214774 --- /dev/null +++ b/hacks/images/matrix2.xbm @@ -0,0 +1,176 @@ +#define matrix2_width 42 +#define matrix2_height 432 +static char matrix2_bits[] = { + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xe0,0xff,0xff,0xff,0xb3,0xff,0xc0,0xff, + 0xff,0xff,0x7f,0x7f,0xcc,0xff,0xff,0xff,0x79,0x3f,0x8c,0xff,0xff,0xff,0x7b, + 0x7f,0x8c,0xff,0xff,0xff,0xbd,0x3f,0x8e,0xff,0xff,0xff,0x7b,0x3f,0x8c,0xff, + 0xff,0xff,0x7b,0x7f,0xcc,0xff,0xff,0xff,0x75,0xff,0xcc,0xff,0xff,0xff,0xbb, + 0x7f,0xc4,0xff,0xff,0xff,0xef,0xff,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xcf,0xff,0xe1,0xff, + 0xff,0xff,0xef,0xff,0xe1,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xe7, + 0xff,0xf9,0xff,0xff,0xff,0xef,0xff,0xf1,0xff,0xff,0xff,0xef,0xff,0xf9,0xff, + 0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xef, + 0xff,0xf1,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xf7,0xff,0xf1,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0xff, + 0xff,0xff,0xb3,0x7f,0xc4,0xff,0xff,0xff,0xfb,0xff,0xc8,0xff,0xff,0xff,0x6b, + 0x7f,0xdc,0xff,0xff,0xff,0xfb,0x7f,0xf8,0xff,0xff,0xff,0xfb,0xff,0xfc,0xff, + 0xff,0xff,0xf7,0xff,0xf0,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xdf, + 0xff,0xe2,0xff,0xff,0xff,0xb7,0xff,0xc2,0xff,0xff,0xff,0xaf,0xff,0xc0,0xff, + 0xff,0xff,0xb7,0xff,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xf2,0xff,0xff,0xff,0xab,0xff,0xc0,0xff,0xff,0xff,0xf5, + 0x7f,0xec,0xff,0xff,0xff,0xdb,0x7f,0xf4,0xff,0xff,0xff,0xf7,0xff,0xf8,0xff, + 0xff,0xff,0xf7,0x7f,0xf0,0xff,0xff,0xff,0xeb,0xff,0xf8,0xff,0xff,0xff,0xfb, + 0x3f,0xfc,0xff,0xff,0xff,0xfd,0x7f,0xf6,0xff,0xff,0xff,0x77,0x7f,0xcc,0xff, + 0xff,0xff,0xdb,0xff,0xc2,0xff,0xff,0xff,0xff,0xff,0xf5,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xf9,0xff,0xff,0xff,0xef, + 0xff,0xf9,0xff,0xff,0xff,0xd7,0xff,0xf0,0xff,0xff,0xff,0xdf,0xff,0xe1,0xff, + 0xff,0xff,0xab,0xff,0xc0,0xff,0xff,0xff,0x6f,0xff,0xc0,0xff,0xff,0xff,0x55, + 0xff,0x80,0xff,0xff,0xff,0xab,0x7f,0x80,0xff,0xff,0xff,0xeb,0x7f,0xd0,0xff, + 0xff,0xff,0xf7,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xd7, + 0xff,0xe0,0xff,0xff,0xff,0xaf,0xff,0xc1,0xff,0xff,0xff,0xdf,0xff,0xe6,0xff, + 0xff,0xff,0xb7,0xff,0xc3,0xff,0xff,0xff,0xdb,0xff,0xe0,0xff,0xff,0xff,0xd7, + 0x7f,0xe4,0xff,0xff,0xff,0xfb,0x7f,0xf8,0xff,0xff,0xff,0xfb,0x3f,0xfe,0xff, + 0xff,0xff,0xfd,0x7f,0xf4,0xff,0xff,0xff,0xb7,0xff,0xcc,0xff,0xff,0xff,0xdf, + 0xff,0xe3,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7, + 0xff,0xf9,0xff,0xff,0xff,0xdf,0xff,0xe5,0xff,0xff,0xff,0xff,0xff,0xe3,0xff, + 0xff,0xff,0x5f,0xff,0xcf,0xff,0xff,0xff,0x6f,0xff,0xc0,0xff,0xff,0xff,0x33, + 0xff,0x80,0xff,0xff,0xff,0x7d,0x7f,0xc4,0xff,0xff,0xff,0xb7,0x3f,0xcc,0xff, + 0xff,0xff,0x7b,0x7f,0x8e,0xff,0xff,0xff,0xbd,0x7f,0xc8,0xff,0xff,0xff,0x77, + 0xff,0xc6,0xff,0xff,0xff,0xff,0xff,0xf5,0xff,0xff,0xff,0xff,0xff,0xfb,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xd1,0xff,0xff,0xff,0x53,0x7f,0xc4,0xff, + 0xff,0xff,0xfb,0xff,0x80,0xff,0xff,0xff,0xd7,0xff,0xfc,0xff,0xff,0xff,0xff, + 0xff,0xf8,0xff,0xff,0xff,0xef,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xfb,0xff, + 0xff,0xff,0xef,0xff,0xf3,0xff,0xff,0xff,0xdf,0xff,0xe7,0xff,0xff,0xff,0xff, + 0xff,0xe7,0xff,0xff,0xff,0xbf,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xdf,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff, + 0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0xab,0xff,0xc8,0xff,0xff,0xff,0x7b, + 0xff,0xca,0xff,0xff,0xff,0x6b,0x7f,0x84,0xff,0xff,0xff,0x57,0xff,0xc0,0xff, + 0xff,0xff,0x57,0xff,0xc0,0xff,0xff,0xff,0x57,0xff,0x80,0xff,0xff,0xff,0xf7, + 0xff,0xc8,0xff,0xff,0xff,0x5b,0xff,0x88,0xff,0xff,0xff,0x7b,0xff,0x9c,0xff, + 0xff,0xff,0xf7,0xff,0xc8,0xff,0xff,0xff,0xbf,0xff,0xeb,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xdf,0xff,0xeb,0xff,0xff,0xff,0x77, + 0xff,0xc8,0xff,0xff,0xff,0xfb,0xff,0x8c,0xff,0xff,0xff,0x77,0x7f,0xda,0xff, + 0xff,0xff,0x7b,0xff,0x8c,0xff,0xff,0xff,0x6b,0xff,0x88,0xff,0xff,0xff,0xab, + 0x7f,0xc0,0xff,0xff,0xff,0xaf,0xff,0xc0,0xff,0xff,0xff,0xf7,0xff,0xf9,0xff, + 0xff,0xff,0xdf,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0xff,0xdf, + 0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xdf,0xff,0xe7,0xff, + 0xff,0xff,0xdf,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xbf, + 0xff,0xd7,0xff,0xff,0xff,0xfb,0xff,0xca,0xff,0xff,0xff,0x7f,0x7f,0xdd,0xff, + 0xff,0xff,0xb5,0x7f,0x8a,0xff,0xff,0xff,0xbd,0x3c,0x04,0xfe,0xff,0xff,0xee, + 0x3f,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xef,0xff,0xf8,0xff, + 0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xdf,0xff,0xe5,0xff,0xff,0xff,0x7f, + 0xff,0xcf,0xff,0xff,0xff,0xbf,0xff,0x8f,0xff,0xff,0xff,0x7f,0xff,0xcf,0xff, + 0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xdf,0xff,0xf3,0xff,0xff,0xff,0xf7, + 0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xdf,0xff,0xe1,0xff,0xff,0xff,0xbb,0x7f,0x86,0xff,0xff,0xff,0xde, + 0x3f,0xc5,0xff,0xff,0xff,0xbf,0x3e,0x27,0xff,0xff,0xff,0xfd,0x3f,0xd7,0xfe, + 0xff,0xff,0x7e,0x3d,0x4e,0xfe,0xff,0xff,0xbd,0x3f,0x8f,0xfe,0xff,0xff,0xff, + 0x7d,0x1d,0xff,0xff,0xff,0x77,0xff,0x3d,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0xf5,0xff,0xff,0xff,0xd6,0xbf,0xd0,0xff,0xff,0xff,0xef, + 0xff,0xf9,0xff,0xff,0xff,0xef,0x5f,0xf1,0xff,0xff,0xff,0xed,0xbf,0xd1,0xff, + 0xff,0xff,0xef,0xdf,0xf0,0xff,0xff,0xff,0xaf,0xff,0xf9,0xff,0xff,0xff,0xf7, + 0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xef,0xff,0xf9,0xff, + 0xff,0xff,0xef,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xf9,0xff,0xff,0xff,0xff, + 0xff,0xfb,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xf9,0xff, + 0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xef, + 0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xef,0xff,0xf3,0xff, + 0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xaa,0xff,0xff,0xff,0xab,0xfe,0xa8,0xff,0xff,0xff,0xff,0xff,0x14,0xff, + 0xff,0xff,0x6b,0xfd,0x08,0xff,0xff,0xff,0xab,0x7e,0x00,0xff,0xff,0xff,0x5d, + 0x7f,0x00,0xff,0xff,0xff,0xb7,0x7e,0x82,0xff,0xff,0xff,0x6b,0xff,0x88,0xff, + 0xff,0xff,0x7f,0xff,0x94,0xff,0xff,0xff,0xf7,0xff,0xd4,0xff,0xff,0xff,0xdb, + 0xff,0xf4,0xff,0xff,0xff,0xef,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xfb,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff, + 0xff,0xff,0xbf,0xff,0xc7,0xff,0xff,0xff,0x55,0x3f,0xc0,0xff,0xff,0xff,0xb7, + 0x3f,0xc8,0xff,0xff,0xff,0xeb,0xff,0x90,0xff,0xff,0xff,0x6f,0xff,0xb1,0xff, + 0xff,0xff,0xff,0xff,0xb9,0xff,0xff,0xff,0xef,0xff,0xf7,0xff,0xff,0xff,0xff, + 0xff,0xeb,0xff,0xff,0xff,0xdf,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf6,0xff, + 0xff,0xff,0xdf,0xff,0xe5,0xff,0xff,0xff,0xdb,0xff,0xe4,0xff,0xff,0xff,0xdb, + 0xff,0xe0,0xff,0xff,0xff,0xaf,0x7f,0xc0,0xff,0xff,0xff,0xb2,0x1f,0xa0,0xff, + 0xff,0xff,0x9b,0xff,0xc4,0xff,0xff,0xff,0xfb,0xff,0xe4,0xff,0xff,0xff,0x5f, + 0xff,0xca,0xff,0xff,0xff,0xfb,0xff,0xdc,0xff,0xff,0xff,0x7f,0xff,0xcc,0xff, + 0xff,0xff,0xfb,0xff,0xbe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xef, + 0xff,0xf1,0xff,0xff,0xff,0x65,0x3f,0x80,0xff,0xff,0xff,0xb5,0x3f,0xc8,0xff, + 0xff,0xff,0x6e,0x3f,0x89,0xff,0xff,0xff,0xab,0x3f,0x80,0xff,0xff,0xff,0xed, + 0x3e,0xc0,0xff,0xff,0xff,0xef,0xff,0xd9,0xff,0xff,0xff,0xf7,0xff,0xf9,0xff, + 0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xdf, + 0xff,0xc7,0xff,0xff,0xff,0xbf,0xff,0xc7,0xff,0xff,0xff,0x7f,0xff,0xcf,0xff, + 0xff,0xff,0xbf,0xff,0xc7,0xff,0xff,0xff,0xaf,0xff,0x83,0xff,0xff,0xff,0xbf, + 0xff,0xc7,0xff,0xff,0xff,0x5f,0xff,0x87,0xff,0xff,0xff,0xff,0xfe,0x85,0xff, + 0xff,0xff,0x5f,0xff,0xc2,0xff,0xff,0xff,0xeb,0xbf,0x88,0xff,0xff,0xff,0xff, + 0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xfb,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xeb,0x7f,0xe0,0xff, + 0xff,0xff,0x4d,0x3f,0x80,0xff,0xff,0xff,0xea,0x3f,0xe1,0xff,0xff,0xff,0xbf, + 0x3f,0xea,0xff,0xff,0xff,0xdd,0x3f,0xe7,0xff,0xff,0xff,0xfb,0x7f,0xe2,0xff, + 0xff,0xff,0xdf,0xff,0xf4,0xff,0xff,0xff,0xf3,0xff,0xd8,0xff,0xff,0xff,0x7f, + 0xff,0xdc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xde,0xff, + 0xff,0xff,0x7d,0x3f,0x9b,0xff,0xff,0xff,0xfe,0x3f,0xce,0xff,0xff,0xff,0x7d, + 0x3f,0x9f,0xff,0xff,0xff,0xff,0x3f,0xae,0xff,0xff,0xff,0xba,0x3e,0x9f,0xff, + 0xff,0xff,0xff,0x3f,0xca,0xff,0xff,0xff,0x5a,0x7f,0x8a,0xff,0xff,0xff,0xff, + 0x3f,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xed,0xff, + 0xff,0xff,0x52,0x3f,0x00,0xff,0xff,0xff,0xbf,0x7f,0xc0,0xff,0xff,0xff,0xd7, + 0xff,0xe2,0xff,0xff,0xff,0xdf,0xff,0xe7,0xff,0xff,0xff,0xdf,0xff,0xe7,0xff, + 0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xdf,0xff,0xe7,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc9,0xff, + 0xff,0xff,0x6f,0xff,0x99,0xff,0xff,0xff,0xb7,0xff,0x89,0xff,0xff,0xff,0xd7, + 0x7e,0x01,0xff,0xff,0xff,0xaf,0xfe,0x88,0xff,0xff,0xff,0x77,0xff,0x29,0xff, + 0xff,0xff,0xef,0xff,0xc9,0xff,0xff,0xff,0xff,0xfe,0x91,0xff,0xff,0xff,0x6f, + 0xff,0x99,0xff,0xff,0xff,0xaf,0xff,0xc9,0xff,0xff,0xff,0x7f,0xff,0x81,0xff, + 0xff,0xff,0xef,0xff,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xda,0x7f,0x85,0xff,0xff,0xff,0x6f, + 0x7e,0x01,0xff,0xff,0xff,0xb7,0xff,0x48,0xff,0xff,0xff,0xff,0xfe,0xba,0xff, + 0xff,0xff,0xf5,0x7f,0x58,0xff,0xff,0xff,0xfb,0x7e,0x3a,0xff,0xff,0xff,0xef, + 0x3f,0x3b,0xff,0xff,0xff,0xff,0xfe,0x39,0xff,0xff,0xff,0xef,0xff,0x93,0xff, + 0xff,0xff,0xbf,0xfe,0x83,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xf7, + 0xff,0xba,0xff,0xff,0xff,0xef,0xfe,0x19,0xff,0xff,0xff,0x7f,0xff,0xc9,0xff, + 0xff,0xff,0xd7,0xff,0x91,0xff,0xff,0xff,0xaf,0xff,0xe3,0xff,0xff,0xff,0xdf, + 0xff,0xe1,0xff,0xff,0xff,0xaf,0xff,0xc1,0xff,0xff,0xff,0x75,0x7f,0xc0,0xff, + 0xff,0xff,0xff,0x7f,0x9c,0xff,0xff,0xff,0xfd,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfd,0x1f,0xfe,0xff,0xff,0xff,0xfb,0x3f,0xfe,0xff, + 0xff,0xff,0xfd,0x7f,0xfc,0xff,0xff,0xff,0xfb,0x7f,0x3c,0xff,0xff,0xff,0x77, + 0xff,0xac,0xff,0xff,0xff,0xfb,0xff,0xda,0xff,0xff,0xff,0xef,0xff,0xf9,0xff, + 0xff,0xff,0xf7,0xff,0xf1,0xff,0xff,0xff,0xdf,0xff,0xf7,0xff,0xff,0xff,0xff, + 0xff,0xd7,0xff,0xff,0xff,0x7f,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; diff --git a/hacks/images/matrix2.xpm b/hacks/images/matrix2.xpm new file mode 100644 index 00000000..7cfab0b6 --- /dev/null +++ b/hacks/images/matrix2.xpm @@ -0,0 +1,500 @@ +/* XPM */ +static char * matrix2_xpm[] = { +"42 432 65 1", +" c None", +". c #000000", +"+ c #020E04", +"@ c #021804", +"# c #062604", +"$ c #0B3008", +"% c #021E04", +"& c #0C360E", +"* c #114410", +"= c #1F561E", +"- c #145417", +"; c #136314", +"> c #1D5E1D", +", c #0E4E0C", +"' c #1C4E1C", +") c #246624", +"! c #2F832F", +"~ c #2B7729", +"{ c #368B34", +"] c #3B9439", +"^ c #298B27", +"/ c #4CB34A", +"( c #44AB42", +"_ c #42A244", +": c #0D3E0E", +"< c #26C227", +"[ c #52BB54", +"} c #3E9C3C", +"| c #127410", +"1 c #40CC44", +"2 c #5AC254", +"3 c #286E26", +"4 c #178618", +"5 c #269624", +"6 c #62DA61", +"7 c #5ACA5C", +"8 c #5ED05C", +"9 c #2AA62C", +"0 c #3AC237", +"a c #FFFFFF", +"b c #166E14", +"c c #62DE64", +"d c #1E751C", +"e c #26B529", +"f c #88E688", +"g c #42D73C", +"h c #36B634", +"i c #2E9A34", +"j c #66E561", +"k c #7AF67C", +"l c #92F294", +"m c #76EE74", +"n c #1AA614", +"o c #169614", +"p c #32D634", +"q c #32CB34", +"r c #3EDE3C", +"s c #D9F9D8", +"t c #26CB24", +"u c #9DD89F", +"v c #E8FEEA", +"w c #D8F3D8", +"x c #73E774", +"y c #66E264", +"z c #D7F2D8", +"..........................................", +"..................@@%%@+........@##$%+....", +".+..@@@@++.+..+..@::**:#+.+..+.#-;b|>:@.+.", +"...@###$#@+.....@:!!!]!=$+....%;uful85:+..", +"..+%$#####+..+.+$>/]!]]{:@...+'9vwfzsf)%..", +"..+#&#@@#&%+...+'![!->][=#+..@4uauoiua5$..", +".+@###@+#&%+...#>]/~,*{2)$+..#hzvg44fah'+.", +".+@$&@+@#&@@..+#3__d**![~*@.+$1aaqd4ua7;%.", +".+##$%++#&#++.+#!/_b*:!/~'@..&uaa<|dfafd%.", +".+@$$%@@#$@@..+#3}_d-*![~:+.+$7vaq4|ua7b@.", +".+@$$#++#&@+...%)]/!,,!/)$+..$9zag44uah*+.", +"..@@&#@%#&@+...+*~8{->][=%...@|7axo9la5#+.", +"..+@$#@%##+....+$=/{)~]}'%..++*}vf<1zz|%..", +"...+%##$#@+.+...+:3!{]~'#+....@-[yuz1!:+..", +"....+@@@+........%:=>>*#+.....+#;^99|:+...", +"....+...+..+..+...+@@@%+...+....+###%+.+..", +".+..............+............+............", +"..+...+.....+......@#%+.+........@##@.+...", +".....@@@+.+...+...@:='&@..+...+.@3{d-$..+.", +"....+#&#$%.....+.+@{2]~)@..+...+$uvz8_$...", +"..+.+$:#@@.......@$}x{)'@......+:lvu[!%...", +"....+#:@++.+.....+$_6>&#...+...%&zv(,$....", +"....+$:@+....+...@$_6=$@.....+.%*la5*%..+.", +"....+#:@+.....+..+$_6>#@.......+&zv5&%....", +".+..+$&@+.+......@$_8=#+.+....+%*zv^&+....", +"...++$:@+.....+..@&_6=#+..+....%,zv5$@+...", +"...+.$&++...+....@&(6=$+....+.+#,la5:+..+.", +"....+$:%++......+@&(8=$@.......#=wv5:@....", +".+.++$$@+.....+.+#*_2):@.+....+$dzae>#....", +"...+%%$#@+.+.....#={_~'#...+...:9lv24$+...", +"....+@+++........@&'=:#@.....+.+-~5):+..+.", +"...........+..+....+++..........+@++......", +".+...+..........+.++++..+..+.....+%@......", +"....++@++...+....+@$:&$+.......+$*'=:@+...", +"...+@+@@@@....+.+$=====*%...+.@*i9oo^d#...", +"+..@$$####@.....@=/_!!{]&+....#{vvc8zz=+..", +"..+#&$@%##+.+..+&32}3)!}*....+-2az<'&@+....+*(afe|,#++..", +"..+@###@@+...+.+#'{}!-:#+....+&4zzxo-$+...", +"...+@#$#++.....+@:){}~=$@+....#;exwq5*%...", +"..+@@%$$%@.+...+$*=4]}3'%..+.+*|nplzq4$+..", +"..@%%#%$$#@....+*)d~^}}!*@...+be0qpwzf>@..", +"..+%##$#$%@.....:3{5}((]:+...+;efxlaazb@..", +"..++##$#$#++...+#=]}}_}!:+....*}wvavvu>+..", +"...++@@@++...+..@#*=-='*@..+..+*3^^^4b#...", +"....+..+.+........@+@@+.+......+@%%#@+.+..", +".+................+@%%......+...+%%%......", +"....+@@@+..+.+...@#$::&+.+.....@&-;>:@.+..", +"...+@@@%@+.....++&3)))=:+.....%-[he[o>+...", +"+.+@&$#$#%+.....#=[}!}{)#..+..#]vv6alh&+..", +"..+@&$@##@..+...&32]3~~)$....+=2aze88h&...", +"..@@&#@@@@+....@:~[{=>>=%....+;uvue99{$+..", +"..+@&$#++......@$)[_!'&#+.+..@*9avg^;&+...", +"..+@$$#@@+..+..+$3//{=&@.....@,havx5,@....", +".+@@&##+@......@*~/(!=&@...+.%d7avfi;%....", +"..@$$#@@++..+..%){_!>'&%+....#9zv6n4*#@+..", +"..%##%++@@.....%3]}~-*-'%....#/sw0o44!#...", +"..+#$#@%##@.+..+'~_~-)!]*+...@4uvpoefz)...", +"..++##%##@+...+.&=!!3!!~$..+.+,^6818f8'.+.", +"...+@%%#@@......+$>)!!3'%.....+,i076h4#...", +"....+++@++.......+#$:&$@+......@&-;)'#+...", +"+..........+.+.....+++++..+.+....+++@+....", +"..+............+..+++.........+.+@@....+..", +"....+++.+........@#$#%.+.......@&::@+.....", +"....%%#+..+..+...#*3~:@..+..+.+$422>#...+.", +"+..+@$&@@.......@$3_[):@......+>hva9=#....", +"..++##&#%+......%:~(/{>#+.....#b0aali:@...", +"...+#$$&@@+.+...%*~_/(!'$+.+..#btzav6!&+..", +".+++##$$$#+...+.#'!}((}~:@....$4plvaz8b%..", +"..+@%$$$#$%+...+#>^_(}}_>$...+:5czszsz9'..", +"..+#$#$$#$#+...+:)_/h}_/~*+..@;ezavlsa1b@.", +"..+#&:&$#$@@...+'![72((_~*+..+46aaavva1d+.", +"..@@$&$$##++...+:~(0(i!~=:...+)2sawf68}-+.", +".+.+###@++++....#:!{^>*$$@....&|8fxi)-&%..", +"...+@@%++....+..@$)33:#@+..+..%-900;$%+...", +"...+@@@+........+#*-'%@........&~54&@.....", +"..........+.......+%@.....+.....##@....+..", +".......+....+..........+...+........+.....", +".+...+.+......+..+@###+......+.+#$&$%...+.", +"...+@@%@@........#*===*#.......$d5i5)&....", +"...@@##$#@.+....%')~{}~'#..+..#b08fs8!#...", +"+.++###$$%+..+..%'!]}2})$.....$!8zsash:...", +"...+@%#$%@+.....%:=)~}{)#.....#;5n0czf0*+..", +"..++#$$&$++....+$'!_([}>#....+&4xwvas9:...", +"..+%$$%#%@.....@:3/_{{3*#....%b2av6f[d#...", +".+%#&#@@++.+...@>{[{b'*%+.+..%ilafe5b&@.+.", +".+@$##@++...+..%)}}3,'&#+....#/saq4|-$+...", +"..@##@@%%@.....@=!]~,===@....@56a]~=!{~$.+..+'nzgn7f6*...", +"..++@%@#@@..+...%:;~~!3=%.....#>eq16[i#.+.", +"...+++#@@@......+#:=)3=$+.+...+#>5hhi*@...", +".....+.+.....+....@###@+....+..+%#:$#+....", +"..........+......................+....+...", +".+..++++.........+$::#+..+....+@*)b&@...+.", +"...+%##@+..+..+..$=!~'&@...+...&9174'%....", +"....+%##%+.......%')!{)&@......$!hgf(-%...", +"+..++@@$#@+.+...+#$=3}{=&+....+#,o1wli*@..", +"...++@@##$@...+.+#$->^}}'%.+..@$-oe1zz4#..", +"+..+@###&&@+....@*3~^][2=#....#b[78lvai$..", +"..@%$$$$:&@+...+$)(_i(76)$+..+*9avzsaah:+.", +"..+#$#@@$&#+...@=!/{d~}2>$+..@^lax}~>~{]:@...+*isce1lzd@..", +"...+@%%#@++...+.@$)d~!)'@+....@-90q8[|$+..", +"....+@%@@.......+@$'>>:@+.....+@,4ii;#+...", +"..........+.......+@@%@...+.....@##$%...+.", +"+..+...+....+..........+....+........+....", +"....@+@@++....+..%&***&&@.....+#=bbb>-%...", +"...@%%@@%%@.....%:33~~3=*@....@;01000e)#..", +".+.@&$####%+....%=2_{{]]=&.+..$}avffzzi,..", +"...%&&####%++...#)7/{!]{)&....#/aaf6ul9=..", +"...@$##+@++...+.+'_]~='*:@....#~vzqn{!>#..", +"...+@#$@+++.....@$~{{-&$%+.+..+-[lfo-&#+..", +"...++#$@+........@*{}-$%+......#|fu5-#+...", +"....+@#@++..+....@#3{)*%....+..@&0ze;$++..", +".+...@%#@+....+...%'3~=#+.+.....#^[g5#+...", +"..+..++#%++.......+$']~#+...+...@&oz[:@...", +".....++##+..+...+..%*{!=%.....+..#;f8^#+..", +"......+@@#+..+.....+$3~3$........+*[81:...", +"..+....@@#+.........+&)~$..+......%'9x*...", +"........++...+.+.....+&'%...+..+...+>~%+..", +"....+..+.........+........................", +".+.......+..............+......+.......+..", +"...........+..+...+++@+...+.+....+@#++....", +"...+.+@@++.......+@:''*#+......+$;!4)&++..", +"...+@@##%@+..+...%*)3~3'$+....+#~h0qe^:+..", +"+..@##@@#$@.....@*]!~d{]'%.+..+;zxq$+...$!szzzva9*@.", +"..++#&&&&&%++...#*{/277/)$@..+#4uavaave,@.", +"...@$$&$#$@+....#=_0[9(/):@...$^saazvve-@.", +"..+@$$#%$$#++..+#-/_5!i_~:@..+$5avxpfaqb@.", +"..+@&#@%###+....#=2]>;^]3'+..+#iafenpzq4@.", +"...@$$%+#&@@+...@=/{;-!/3*@...#^afeo6a[b@.", +"...+##%@#$@+..+.@:]!b-!_>$..+.@)u60n8w9*..", +"...++@@@@@+......#:))~3>&%.....$de0009'%..", +".....+@@++.......+@&**:$+......+#-dd>,+...", +"+..........+.+......+@+..+..+.....@+@..+..", +"...+...+.......+..+++%++......+.+@%#%+....", +"+....@%@@+.......+@:==*$@.+....+#;55d*#...", +"...+@@%%%@+..+..+#*)~~)=&+..+.+$b9q0h5,@..", +"+..+##@@#$@+....+:{!3)!]=$....@)ff0<6z5:..", +"..+@$$%@#$@+...+#=({3>!]3:+...$^aleo6vh;@.", +"...@$#+@@##++..+#=/!-,3])'%..@&5a6n5-d_~'@..+:9a6nnqv1!%.", +"...%$$#@%$@@...+#;2_dd](3:@..+:}al0$+..+$iaaasaa9*+.", +"...@#&$$#@@+....@,}//{!~*@....$|zaau67b@..", +"...+@#$@@+......@&b}_d':%+....%-&@..", +"...++#$#@++.+....%:!_{)$@++....#;gaun,#...", +".....+##@+....+..+%=~{)*@...+..+#5uf0|#...", +".....++@%#+.......+@&)3)$.......+#>h09:+..", +".+.....+++..+......+@$:$+..+..+..+%'='+...", +"..+...........+....................+......", +".....+..........+.+.........+...........+.", +"..+...+..+.+..........+.+......+.....+....", +".......@+....+.....@$:$...+......@:~*.....", +".....+%#%.......+..$=])%....+....,5z/#+...", +"..+..+@$#+..+.....+#=/~$+.....+..*}vu$++..", +"......+$#+....+...+%'(!&%.......%$~af>#...", +"..+.+++##%+.....++@$:]!=$+.+...+@:4z85:+..", +"...++@@@#%+......%:*=3~~:+..+.+$;|o2g8=@..", +"...@@%%+##@.+..+%:3))=~{*%....$>heeo1l~#..", +"..@@#%@@@$@+...+')~3-*~}'#@..%deg<54qz^&#.", +".+%##@@@#$@@+.+#)]!3->!_~'$@+:[z8ennfv0!-@", +".+$$####$&&$%++:]/{~!{/7[])$+-lamg7laavze*", +".+#$@@@@###@@+.:{}3;)3~{{~=#+'8zh992uu6u5&", +".++@+++++++@+.+%'=&###$$$::++#^5-:*$**,--%", +"...+...........+##%@+@+@+++..+$&%+@@@@%%+.", +"..........................................", +"..+.....+..........+....+...+....++.......", +".....++....+..+...@&*@...+....+.@';#..+...", +"...+@%%+........++*>3$+........@b9(*@...+.", +"+..+@##@+.+......#3{!*$+..+....:8lld&@....", +"....@@##@...+....%')!!>#+...+..#~[ffi$@...", +"...+.@@##@+..+....@'~}~'#+......%!0z7d:+..", +".....+@@##@....+..+$*=!]'#...+..@:d96l{$..", +"......++#&@+......+@$*!(>$+.....+#*dua9*..", +".+....++#$%.....+.+@&'~_=#......+#-4fwi:..", +"..+..+@%@@+.+.....+$=~~=&@..+...+*481_-%..", +"....+@##@++...+...#=~!>&@.....++$]8u9,#+..", +"....+#$@+........%:!_=&+++.....@;fz5*@+...", +"..+.%#@+...+.....#3~3$@+...+...:[8[-%+....", +"...+@@+.+.....+..#3=&++........:2i,@+..+..", +"....+.......+....+#@@.....+..+.+:#@.......", +"+........+.............+..............+...", +"..+...+.......+............+........+...+.", +"...+....+..+......++@@@.+.......+@%%++....", +"....@@@+@+.....+.%:*'''&+....++#>d^]!,%...", +"...+@@##@@+.+..+%:>3~{~=:%+...#>9h1f7i=$..", +".+@#%%%$$#%+...@'33)3_}~)*@..#^17eeaw1hd%.", +".+%#@@@$###%+.+#~{)==(}!~)$++:[l46y1q01>", +".@#%+++@##@##+@'{],&:>!]d~{*#dul!;>96l06ud", +".+#$@+++%$#@#++#!}=:$*~}~~~:@*zlo;-|2ag1g>", +"..@#%%@+@###@+.%=~)=*:){{~>#.#_7ho|;huf1_:", +"...+%@@+++#@+..+#:))>::={~$@.+$bhhn;|ifu-@", +"....++++++@+....+@$:$$#$*:+...+#'>-:&*d;@.", +".......+...........+@+@++........++#+@+...", +".+..........+..+..........+...............", +"....+...+.....................+.......+...", +"..+.......+.....+.+++..+....+.+++++.....+.", +"..+++.+.....+.+#$&$@$#%+.+..+$:*&&:&#@....", +"++@@%##%@@....%'==>33='*#+..$^999h794d:+..", +".%##%#$#%@@...#)~!~_/!3):+..*9181sa80e=%..", +".++@@$$@@@+.+.#&*->]()':$@..$>4onlae4|*%..", +"+@@@%#&%++++..$=-->}/b'*&#..*^o4efa<4d-$..", +"+#@@@$$#@+@+..'!3;b_[4=-*$..!6qeewa1nod,+.", +"+@@%@$&@%@++..$>>>b_/3;'*$+.'h9n}/3-*:%..#'|onzv@", +"+.+@$$##$#&#@..+$=_}^^{i(]:@.+:nvzcgyxvu;#", +"..+##$$$$$$#@..@'3__(9((({*%.@3[vsszwvaf|#", +".+%#$##$#$$#@+.@3}_9__([_!=#.#2sszzsvas6o$", +"..%#$#$$$&%%@..%>!}ii5(0i)*%.%_flmxxaaf<|#", +"..++$#%#$&#@+..+#-]{{5(2^-#+.+&^lyggsac4*+", +"...@$##@###++...#,(5~d^]!=#..+$4sxpp6fg5$.", +"..++$#@#@%@@.+..@'}^|b)>>*@...#dw6t:$@....+>x6pqo;,#..", +"...++#%$++...+...#=!]3'#+.+....&^uvg4#@...", +".+..+#$@+........+#~}):%....+..@:2z/b%....", +".....+++++...+....+$:$%.........@*;:#..+..", +"...+.......+...+........+.+...+...........", +"+....................+@+...+.......@%@+...", +".......+@@...+...+.+@&*'@.......++#'d~#.+.", +".+..+.@%%%+......+@%:>3)$....+.+@$-9<(:...", +"..++@+@##%+...++#&&:={!3:@...@&->bouf1>%..", +".+%######$@+..+#3{{!!{_}'%..+&[fu68jvz4#..", +".+%$##$##$@+..+$~_/_}{}(=$..@*uzavlcvv9*+.", +"..+@#$$###@@...+:>{__~!!3'@..@-9zal1gf0d@.", +"...+@$#@%%%%...+@:=]();)3=#..+#;ezvhn90i$.", +"+..++#$%++@@+...+#&!}>*:)=$...+#-6and;hi:+", +"....++@#@+++.....@%>~~=$$#+....@#i615:,&+.", +".....+%@@+..+.....+$=~=:@+..+...+,5q9;#+..", +".+...++@%@....+....+$)>'@........@*hh4#...", +".......++@+.....+...@&*'&....+....@'d{:+..", +"......+.+@..+.....+...$&#.+....+....&>$...", +".+..........................+........+.+..", +"...+.........+..+....+..........+..+......", +".......++.+.......#%%$#++....+..$##-:..+..", +".+.+%@@#@.....+..#=**!=@+.+....&]|b8i$+...", +"...+#%+$%@.+....@&~3'}~&@.....%=6h5v8*#+..", +"..++$#@$#@+....+#'_~3/!:$@..+@$!a8~/}{29;=:@.$557alfalh5;%.", +".##$&#$&&##@+.&{~]2/98/^3=#+=ffuavzavr0o&.", +".+@@&$%$$@@+..%'=3[]^[_3>:+.$d52af6alq5;#.", +"..+@$#%##@++...+#-(^b}^b&#@..%:^ar3!*#+...+;z1d51fd$+.", +"...+#@++@#%+.....:{)$&)!-#+...+=l/--9l^:@.", +"...+#@++++@++....%!'%#$'='%+...*84##>~9b#.", +"....++....@+..+..@'$+@+%*:+..+.@!-@+@#d;%.", +"..................++...+++......++....++..", +".+.....+...+...............+.........+....", +"...+.++.+.....+...+$*%......+...@';#+.....", +".....%#+..+.....+%#)~*%+.+....+@$/6>#@.+..", +"...+@#$@++..+..+@$:!_'$#+....+#*>fs4'$@...", +".+@@@#&@+@+...+#''=]/)>*$@..@&do5lae44'%..", +".@#$#$&$##%+..%*]({/2{{]):..#dfsyaaffz(>..", +".+$$#$$#$##+..@*_/!(1!{}3'..#dzvgva6lv0d+.", +"++$$@$&@##@@..%:]/d_[d!{3'+.%>lzqua0gz0d+.", +"++%&#$:##$%@..@&][^/2{]_3*..#-faxvaxlv13+.", +".+###$$##$%+..@#!}!(2{{]3:+.%:fw8saufz/;..", +".++%+#$@+@@+..+%'>,{(>=)'#..+#494ua99e!*..", +"..+++%$@@++....+#&$!}-:&#+...+:-'fw4->&@..", +"....+%#+.....+..+@#3]:@+......+##7z;#@....", +".....@%+..+.......+=3$@.+.+.....+58*@..+..", +".+..+++............$*+......+....'d@......", +".......+...+..+.....+..................+..", +".....+..........+.....+..+....+.....+.....", +"+......++....+......+$$$++.+....+.+**:%+..", +"..+....#%@+.......+.#==*&%...+...+&i5b=$..", +"...+..@##@@++..+...+:{!='&.......@>f6e4'..", +"......+###@+......+@*}]~=&....+.+#dzsg5-+.", +".....++#$#@+..+...+$*~}}=$@.....+$4gzzo$+.", +".+.+.+%#$#@+....+.+:)]_i-$+.+...+-eusln*@.", +".....@@$$#@+......@*~/({)&+.....%|7aal9>+.", +".....@@&$#%@.+....%&)((^b*%...++#>esvge|#.", +".+.+++@$$##++...+@#:;__]~'@+...@&-ilalq^#.", +"...+++@$$#$@...+@$$:bi(_{>#..+$:-|elavcn$+", +".+@@@####$@@+..#'>)~]}}}3*@.+&4nhcuzsz0d%.", +".+%%######@+..+&>!!{{!!!>:@.@*(18ff6f8e-#.", +"..@%+@@+++@@+..@'>=-***:>'+..#4hh5~;;de4+.", +"..+@++..+.++...+$::$@@##:$...+&;;:$###>*..", +"..................++++.........+++++......", +".....+.......+............................", +".....+++..+.......+$:$@+..+.....+*):#..+..", +".+..+%%@+.....+..@%=3*$+....+..%$504:@....", +"...++#$@++.+....##&!_=$$@....+#:-uz5':#...", +".+@@@$&%%@++..+#=~)_2~)':#...&}7eva89^;:..", +".+$&#&&$##@+..+:_[][8({!)*+.%;zazaavl8hb..", +".+#$##&##%@+..+$]/!](}{3=$..+,fv7lzzc0^-..", +".+$#@%#$#@+...+#{_>|{i~=&%..@&fze;3_~*#@..+&uzee(]3=)~=$...+:]azq5e75'..", +"...@%@@+@%%+.+..+:!3=$'3=&....@-u75*4[o>..", +"+...+++...++.....+##@@@%&$+....@:$###$-&+.", +"...................+...+++..+.....+...@+..", +"+......+.....+............................", +"..+.......+....+..+.+...+.....+..+....+...", +"...+...+.........@+@%@@@...+...@@#%#%@.+..", +"..+@+++++++.+..+$:$$$#&:#+...+:>'*::'-:@..", +"..@#%+++%%@+...@)~=*:&=~=:...#(cnd>;o7^'..", +"..##%+++@#%+..+@!])'::)!)*+..$uze4bbemhb+.", +".+%$%@@+%#%@...#~];,**){3'@.+$ufe4||ex04%.", +".+##@++@@##@..+$~]>*:*){3'@.+&fzn4;|efq!%.", +"..##%@@+@$@@..+#!i;,::b{~'+.+$ufn4;bex04%.", +".+##@++@%$%@...#~];'::){~,@.+$fl94;|***)!)*+..@/u9dbdefhb+.", +"..+@++.++@++.+..*=$$%#:='#...+d5,:&:b5!,..", +".........+......+@++@@@#@++...+@@@++###@..", +"..............+...........................", +"+..+...+..+......+.........+..............", +".....+......+....++@@++.+....+.+%#@@+..+..", +"...++++++.......%#$$$$#%++....#:::*::$%+..", +".++@@@@@%@@+...+*)>>-==='$@..+d_n55o54d'%.", +".+#$$##$#$##+..@~_(]^i]]!):..%8valglzvlh-+", +"..+#$$#$#@@%...+=!}}}(]~3'#..+{uzwzsl[[^$.", +".+.+%##&#@+++...@:d{i/!'*$+...#;0xfa64|,+.", +"....+@#$#+++....+#:-d(!:$%....@$bo0af)*#..", +"...+.++$#+.......+#$>_!&%++....@$-5v8-$@..", +".....++#%++..+....@#*]d&#...+...@$|l0,#+..", +".+....+#%@....+....+&33:#+.......#=8h|$+..", +"...+...@@%+.....+..+#=>=&+.......+$599'@..", +".....+..@%@+........+%=3'$+.+.....+:514:..", +".+......+@++.+....+..+&'&%....+....+'!>&..", +"..........+....+.......+@@.....+....+@#%..", +"...+..+.............+...+..+.....+........", +"+......+...+..+..+....+............+...+..", +"....+.+.++........+#$@#$%+..+..+@$*#:'#+..", +".+..+@%@@%%+..+..+&)~*=!=&.....+*(7bnu9=..", +"...+@#$+#$%@....@#:~_=3]~'@...@:>uzo0s0|%.", +"..+++%$%@##@....%&'{()~]~'@+..$;4faed]~'@+...@$ua90lq!@.", +".....#$@#$@@.+..+.@!(3!{~,+..+.+#uae6w14%.", +"..+..#$#%$#@......%~/~{_3'+.....%uvflv7)+.", +".....@@%@@++......+'3=)3=$......@~2!(2n,..", +"......+.+@++.+.+...+#%$*$#..+....@$#,;*#..", +".+...............+...+++......+...+.@@+...", +"...+.+....+...............................", +"..++.+..+...+..@&*&$%%%@+.+..@=)>:#$$@+.+.", +".+@#%@@@@+....+$3!3':'*&%@..+*7f<4;db'$%+.", +".+@#%%@%###@+..$)!~~)~~!3=:+.:/f1q<18u/^;@", +".+@@##$#$&##%+.@')~]_{_[}!>#.#deqfalaaa69$", +"..+@###@#$%%+..+&>~]]b!}!)*@.#-ngffe6z6/)@", +"..+@###@@%%@+..%&>^]!=>3~=#+.%-9fx8o9115$@", +".+@##$%@+@#@+..@,~]]~,*'~)#+.%4qwfg4|51h$+", +".+@###%+++##+..@3]!~~*&'!)$..%[zgg1|>4u7$+", +"..##+%#@++##+.+@~{>)!*$*]~#..#8uiq7|-|lu&+", +"..++@##+@+##....:,:!{':']!#+.+=4;8l4>4zu$.", +"....+@#@##%%+...+%#)])3~{3%...@$$[z[/7v/$.", +".+...@###$#@.....++'!]_(~'@....+%!6svsu4@.", +".....++%@@++.......$:>)):#......+:3i(_):..", +"..+....+++...+......@#$#+..+......@:&:%...", +".....+.........+.+...+.......+.....+++....", +"..........+.............+......+.......+..", +"..+...+.....+.....#%@.+++.+.....&&%..++...", +"....%@@+..+...+..#==*$%#&#.+...$9i~:#&'*..", +"...+%%%@@%#@.....$)33&:=~=+..+.:h8h;;57i#.", +"+...@##+@%#%+....#={!'=3]3&....&9ff457z7&.", +"..++.$$@@$#@+..+.%:!_=3{~'$....#)usn#+.", +"....+@$&$@+.+...@%:d_2}=&%+...@$;0aaln-#..", +".++@@##$$@@...++#*>!}/}3:@...+:|_6zszh;#..", +".++#$####$@+...@'!(}{~]}=#@..#4usvf1zv5&@.", +"..%#$%+@@@%++..@=!{!>,)~=:#..$9xu7_497(b$.", +".++@+++.+@@@+..@=3':###:='&+.+5[5;:$:;54-@", +"...++.....+.....@$#++++@#%+...$'$#@++@$$@.", +"......+.....+............+................", +"..+.......+...+....+.......+.........+....", +"...+............+............+....+....+..", +"...+...+....+..+%$@..+..+....+&:%.........", +".+%@@....+....@&'=*$.....+..%-^i):++..+...", +"+@#$#@........$3{{~'@.......*hfz1d@.....+.", +".@###@+...+...@*~]{=$#++%%+.#48szi:#+@$#+.", +"..@##%+.++@+..+#=!_3$%#&**%.+$9fvh'$$*~;#.", +"..@#&#@+@@#%+..@*![~:$:=!)@..@4ua8>*)9x(#.", +"..+@$#++@#%@...+&)(!'$=!)'@..+'(af4-o12!%.", +"...+###+@%++....@*{{)*=~'$....%blx0|924:..", +"...+@#$++@+..+..+$>{_-**$+..+.@*]lz4|d*%..", +"....+%$%@+.......+$!]):#@@.....#-7ze|:#@..", +".+...+@#@++...+..+@:){)$%+.....+#;9x9*#@..", +".....++@%%++......+#$)3)&@.+....+$;h0e>%..", +"...+...+@#++...+...+@:=~'$...+...+#-_6!$..", +"+.......++@++........@$:':.........@:;^;+.", +"....+.....++.....+....+@$$..........+@':..", +"+.....+.......+.............+..+.........."}; diff --git a/hacks/imsmap.c b/hacks/imsmap.c index 15cb66ae..f89f95fe 100644 --- a/hacks/imsmap.c +++ b/hacks/imsmap.c @@ -27,7 +27,7 @@ #define COUNT (1 << NSTEPS) #define CELL(c, r) cell[((unsigned int)(c)) + ((unsigned int) (r)) * xmax] -static enum mode_t { MODE_H, MODE_S, MODE_V, MODE_RANDOM } mode; +static enum imsmap_mode { MODE_H, MODE_S, MODE_V, MODE_RANDOM } mode; static GC gc, gc2; static XWindowAttributes xgwa; @@ -55,7 +55,7 @@ init_map (Display *dpy, Window window) int fg_h, bg_h; double fg_s, fg_v, bg_s, bg_v; - enum mode_t this_mode; + enum imsmap_mode this_mode; static Bool rv_p; XGCValues gcv; diff --git a/hacks/phosphor.man b/hacks/phosphor.man new file mode 100644 index 00000000..e586f897 --- /dev/null +++ b/hacks/phosphor.man @@ -0,0 +1,85 @@ +.TH XScreenSaver 1 "30-Oct-99" "X Version 11" +.SH NAME +phosphor - simulates an old terminal with long-sustain phosphor +.SH SYNOPSIS +.B phosphor +[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install] +[\-visual \fIvisual\fP] [\-font \fIfont\fP] [\-scale \fIint\fP] +[\-ticks \fIint\fP] [\-delay \fIusecs\fP] [\-program \fIcommand\fP] +.SH DESCRIPTION +The \fIphosphor\fP program draws text on the screen in a very large +pixellated font that looks like an old low resolution dumb tty. The +pixels flare and fade out as if the phosphor was very long-sustain. +.SH OPTIONS +.I phosphor +accepts the following options: +.TP 8 +.B \-window +Draw on a newly-created window. This is the default. +.TP 8 +.B \-root +Draw on the root window. +.TP 8 +.B \-install +Install a private colormap for the window. +.TP 8 +.B \-visual \fIvisual\fP\fP +Specify which visual to use. Legal values are the name of a visual class, +or the id number (decimal or hex) of a specific visual. +.TP 8 +.B \-font \fIfont-name\fP +The X font to use. Phosphor can take any font and scale it up to pixellate +it. The default is \fIfixed\fP. +.TP 8 +.B \-scale \fIint\fP +How much to scale the font up: in other words, the size in real pixels of +the simulated pixels. Default 6. +.TP 8 +.B \-ticks \fIint\fP +The number of colors to use when fading to black. Default 20. +.TP 8 +.B \-delay \fIusecs\fP +The speed of the terminal: how long to wait between drawing each character. +Default 50000, or about 1/20th second. +.TP 8 +.B \-program \fIsh-command\fP +The command to run to generate the text to display. This option may be +any string acceptable to /bin/sh. The program will be run at the end of +a pipe, and any characters that it prints to \fIstdout\fP will be printed +on phosphor's window. The characters will be printed artificially slowly, +as per the \fI\-delay\fP option above. If the program exits, it will be +launched again after 5 seconds. + +Note that phosphor is \fInot\fP a terminal emulator: programs that try to +directly address the screen will not do what you might expect. Phosphor +merely draws the characters on the screen left to right, top to bottom. +Lines wrap when they reach the right edge, and the screen scrolls when +characters reach the bottom. + +In other words, programs like +.BR fortune (1) +will work, but programs like +.BR top (1) +won't. +.SH ENVIRONMENT +.PP +.TP 8 +.B DISPLAY +to get the default host and display number. +.TP 8 +.B XENVIRONMENT +to get the name of a resource file that overrides the global resources +stored in the RESOURCE_MANAGER property. +.SH SEE ALSO +.BR X (1), +.BR xscreensaver (1) +.SH COPYRIGHT +Copyright \(co 1999 by Jamie Zawinski. Permission to use, copy, modify, +distribute, and sell this software and its documentation for any purpose is +hereby granted without fee, provided that the above copyright notice appear +in all copies and that both that copyright notice and this permission notice +appear in supporting documentation. No representations are made about the +suitability of this software for any purpose. It is provided "as is" without +express or implied warranty. +.SH AUTHOR +Jamie Zawinski , 27-Apr-99. diff --git a/hacks/shadebobs.c b/hacks/shadebobs.c index cca0654e..422bc1b2 100644 --- a/hacks/shadebobs.c +++ b/hacks/shadebobs.c @@ -77,7 +77,7 @@ static float nExtentDelta; typedef struct { - char *anDeltaMap; + signed char *anDeltaMap; double nVelocityX, nVelocityY; double nAngleX, nAngleY; float nExtentX, nExtentY; @@ -97,7 +97,7 @@ static void ResetShadeBob( SShadeBob *pShadeBob ) static void InitShadeBob( SShadeBob *pShadeBob, Bool bDark ) { double nDelta; - char iWidth, iHeight; + int iWidth, iHeight; if( ( pShadeBob->anDeltaMap = calloc( nBobDiameter * nBobDiameter, sizeof(char) ) ) == NULL ) { diff --git a/hacks/sonar.c b/hacks/sonar.c index 7d965b50..3a8cf468 100644 --- a/hacks/sonar.c +++ b/hacks/sonar.c @@ -37,7 +37,7 @@ * software for any purpose. It is provided "as is" without express or * implied warranty. * - * $Revision: 1.12 $ + * $Revision: 1.13 $ * * Version 1.0 April 27, 1998. * - Initial version @@ -1486,7 +1486,8 @@ DrawBogie(sonar_info *si, int draw, char *name, int degrees, /* Compute the coordinates of the object */ - distance = (log((double) distance) / 10.0) * si->radius; + if (distance != 0) + distance = (log((double) distance) / 10.0) * si->radius; x = ox + ((double) distance * cos(4.0 * ((double) degrees)/57.29578)); y = oy - ((double) distance * sin(4.0 * ((double) degrees)/57.29578)); diff --git a/hacks/spotlight.c b/hacks/spotlight.c index 53bf34b0..8c76fc74 100644 --- a/hacks/spotlight.c +++ b/hacks/spotlight.c @@ -117,6 +117,7 @@ init_hack (Display *dpy, Window window) /* create buffer to reduce flicker */ buffer = XCreatePixmap(dpy, window, sizex, sizey, xgwa.depth); buffer_gc = XCreateGC(dpy, buffer, gcflags, &gcv); + XFillRectangle(dpy, buffer, buffer_gc, 0, 0, sizex, sizey); /* blank out screen */ XFillRectangle(dpy, window, window_gc, 0, 0, sizex, sizey); diff --git a/hacks/webcollage b/hacks/webcollage index 2a727006..d5c4ff13 100755 --- a/hacks/webcollage +++ b/hacks/webcollage @@ -27,7 +27,7 @@ require POSIX; use Fcntl ':flock'; # import LOCK_* constants -my $version = q{ $Revision: 1.36 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; +my $version = q{ $Revision: 1.40 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; my $copyright = "WebCollage $version, Copyright (c) 1999" . " Jamie Zawinski \n" . " http://www.jwz.org/xscreensaver/\n"; @@ -36,15 +36,15 @@ my $argv0 = $0; my $progname = $argv0; $progname =~ s@.*/@@g; my $random_redirector = "http://random.yahoo.com/bin/ryl"; -my $image_randomizer_1 = "http://image.altavista.com/cgi-bin/avncgi" . - "?do=3" . - "&verb=n" . - "&oshape=n" . - "&oorder=" . - "&ophoto=1&oart=1&ocolor=1&obw=1" . +my $image_randomizer_1 = "http://www.altavista.com/query" . + "?mmdo=3" . + "&nbq=12" . "&stype=simage" . - "&oprem=0" . - "&query="; + "&oart=1" . + "&obw=1" . + "&oshape=0" . + "&what=web" . + "&q="; my $image_randomizer_2 = "http://www.hotbot.com/?clickSrc=search" . "&submit=SEARCH&SM=SC&LG=any" . "&AM0=MC&AT0=words&AW0=" . @@ -56,9 +56,13 @@ my $image_randomizer_2 = "http://www.hotbot.com/?clickSrc=search" . "&MT="; my $image_randomizer_3 = "http://www.altavista.com/cgi-bin/query?pg=q" . "&text=yes&kl=XX&stype=stext&q="; -my $photo_randomizer = "http://albums.photopoint.com/j/View?u=1&a=1&p="; -my $photo_randomizer_lo = 10000001; -my $photo_randomizer_hi = 12400000; + +# I guess Photopoint got wise to me, because now they are doing error +# checking on the user ("u=") and album ("a=") parameters. Oh well. +# +#my $photo_randomizer = "http://albums.photopoint.com/j/View?u=1&a=1&p="; +#my $photo_randomizer_lo = 10000001; +#my $photo_randomizer_hi = 12400000; my $image_ppm = ($ENV{TMPDIR} ? $ENV{TMPDIR} : "/tmp") . "/webcollage." . $$; my $image_tmp1 = $image_ppm . "-1"; @@ -626,9 +630,11 @@ sub pick_from_image_randomizer { my $href_count = 0; $_ = $body; - s/[\r\n\t ]+/ /g; - s/Result Pages:.*$//; # trim off page footer + s/Result [Pp]ages:.*$//s; # trim off page footer + s/^.*?IMAGE RESULTS//s; # trim off page header + + s/[\r\n\t ]+/ /g; s/( # include "images/matrix.xpm" +# include "images/matrix2.xpm" #endif #include "images/matrix.xbm" +#include "images/matrix2.xbm" -#define CHAR_HEIGHT 31 +#define CHAR_ROWS 27 +#define CHAR_COLS 3 +#define FADE_COL 0 +#define PLAIN_COL 1 +#define GLOW_COL 2 typedef struct { - int glyph; - Bool changed; - int glow; + unsigned int glyph : 8; + int glow : 8; + unsigned int changed : 1; + unsigned int spinner : 1; } m_cell; typedef struct { @@ -51,6 +58,7 @@ typedef struct { int char_width, char_height; m_cell *cells; m_feeder *feeders; + Bool small_p; Bool insert_top_p, insert_bottom_p; int density; @@ -89,7 +97,10 @@ load_images (m_state *state) xpmattrs.colormap = state->xgwa.colormap; # endif - result = XpmCreatePixmapFromData (state->dpy, state->window, matrix, + result = XpmCreatePixmapFromData (state->dpy, state->window, + (state->small_p + ? matrix2_xpm + : matrix_xpm), &state->images, 0 /* mask */, &xpmattrs); if (!state->images || (result != XpmSuccess && result != XpmColorError)) @@ -97,15 +108,15 @@ load_images (m_state *state) state->image_width = xpmattrs.width; state->image_height = xpmattrs.height; - state->nglyphs = state->image_height / CHAR_HEIGHT; + state->nglyphs = CHAR_ROWS; } else #endif /* !HAVE_XPM */ { unsigned long fg, bg; - state->image_width = matrix_width; - state->image_height = matrix_height; - state->nglyphs = state->image_height / CHAR_HEIGHT; + state->image_width = (state->small_p ? matrix2_width : matrix_width); + state->image_height = (state->small_p ? matrix2_height : matrix_height); + state->nglyphs = CHAR_ROWS; fg = get_pixel_resource("foreground", "Foreground", state->dpy, state->xgwa.colormap); @@ -113,13 +124,39 @@ load_images (m_state *state) state->dpy, state->xgwa.colormap); state->images = XCreatePixmapFromBitmapData (state->dpy, state->window, - (char *) matrix_bits, + (state->small_p + ? (char *) matrix2_bits + : (char *) matrix_bits), state->image_width, state->image_height, bg, fg, state->xgwa.depth); } } +static void +init_spinners (m_state *state) +{ + int i = get_integer_resource ("spinners", "Integer"); + int x, y; + m_cell *cell; + + for (y = 0; y < state->grid_height; y++) + for (x = 0; x < state->grid_width; x++) + { + cell = &state->cells[state->grid_width * y + x]; + cell->spinner = 0; + } + + while (--i > 0) + { + x = random() % state->grid_width; + y = random() % state->grid_height; + cell = &state->cells[state->grid_width * y + x]; + cell->spinner = 1; + } +} + + static m_state * init_matrix (Display *dpy, Window window) { @@ -130,6 +167,8 @@ init_matrix (Display *dpy, Window window) state->window = window; XGetWindowAttributes (dpy, window, &state->xgwa); + + state->small_p = get_boolean_resource ("small", "Boolean"); load_images (state); gcv.foreground = get_pixel_resource("foreground", "Foreground", @@ -142,8 +181,8 @@ init_matrix (Display *dpy, Window window) state->erase_gc = XCreateGC (state->dpy, state->window, GCForeground|GCBackground, &gcv); - state->char_width = state->image_width / 2; - state->char_height = CHAR_HEIGHT; + state->char_width = state->image_width / CHAR_COLS; + state->char_height = state->image_height / CHAR_ROWS; state->grid_width = state->xgwa.width / state->char_width; state->grid_height = state->xgwa.height / state->char_height; @@ -185,6 +224,8 @@ init_matrix (Display *dpy, Window window) if (insert) free (insert); + init_spinners (state); + return state; } @@ -208,14 +249,15 @@ insert_glyph (m_state *state, int glyph, int x, int y) { from = &state->cells[state->grid_width * (y-1) + x]; to = &state->cells[state->grid_width * y + x]; - *to = *from; - to->changed = True; + to->glyph = from->glyph; + to->glow = from->glow; + to->changed = 1; } to = &state->cells[x]; } to->glyph = glyph; - to->changed = True; + to->changed = 1; if (!to->glyph) ; @@ -301,7 +343,7 @@ hack_matrix (m_state *state) if (cell->glyph && cell->glow == 0) { cell->glow = random() % 10; - cell->changed = True; + cell->changed = 1; } } } @@ -334,6 +376,9 @@ hack_matrix (m_state *state) else f->y = -1; } + + if (! (random() % 500)) + init_spinners (state); } @@ -365,18 +410,35 @@ draw_matrix (m_state *state) state->char_height); else XCopyArea (state->dpy, state->images, state->window, state->draw_gc, - (cell->glow ? state->char_width : 0), + ((cell->glow > 0 || cell->spinner) + ? (state->char_width * GLOW_COL) + : (cell->glow == 0 + ? (state->char_width * PLAIN_COL) + : (state->char_width * FADE_COL))), (cell->glyph - 1) * state->char_height, state->char_width, state->char_height, x * state->char_width, y * state->char_height); - cell->changed = False; + cell->changed = 0; if (cell->glow > 0) { cell->glow--; - cell->changed = True; + cell->changed = 1; + } + else if (cell->glow < 0) + { + cell->glow++; + if (cell->glow == 0) + cell->glyph = 0; + cell->changed = 1; + } + + if (cell->spinner) + { + cell->glyph = random() % CHAR_ROWS; + cell->changed = 1; } } @@ -407,13 +469,17 @@ char *progclass = "XMatrix"; char *defaults [] = { ".background: black", ".foreground: green", + "*small: False", "*delay: 10000", "*insert: both", + "*spinners: 5", "*density: 75", 0 }; XrmOptionDescRec options [] = { + { "-small", ".small", XrmoptionNoArg, "True" }, + { "-large", ".small", XrmoptionNoArg, "False" }, { "-delay", ".delay", XrmoptionSepArg, 0 }, { "-top", ".insert", XrmoptionNoArg, "top" }, { "-bottom", ".insert", XrmoptionNoArg, "bottom" }, diff --git a/hacks/xmatrix.man b/hacks/xmatrix.man new file mode 100644 index 00000000..92f67158 --- /dev/null +++ b/hacks/xmatrix.man @@ -0,0 +1,71 @@ +.TH XScreenSaver 1 "30-Oct-99" "X Version 11" +.SH NAME +xmatrix - simulates the computer displays from the movie +.SH SYNOPSIS +.B xmatrix +[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install] +[\-visual \fIvisual\fP] +[\-delay \fIusecs\fP] +[\-density \fIpercentage\fP] +[\-top | \-bottom | \-both] +[\-small | \-large] +.SH DESCRIPTION +The \fIxmatrix\fP program draws dropping characters similar to the +displays in the Wachowski brothers' film, "The Matrix". +.SH OPTIONS +.I xmatrix +accepts the following options: +.TP 8 +.B \-window +Draw on a newly-created window. This is the default. +.TP 8 +.B \-root +Draw on the root window. +.TP 8 +.B \-install +Install a private colormap for the window. +.TP 8 +.B \-visual \fIvisual\fP\fP +Specify which visual to use. Legal values are the name of a visual class, +or the id number (decimal or hex) of a specific visual. +.TP 8 +.B \-delay \fIusecs\fP +The delay between steps of the animation, in microseconds: default 10000. +.TP 8 +.B \-density \fIpercentage\fP +The approximate percentage of the screen that should be filled with +characters at any given time. Default 75%. +.TP 8 +.B \-top\fP | \fB\-bottom\fP | \fB\-both +If \fB\-top\fP is specified, the characters will only drop in from the +top of the screen as sliding columns of characters. If \fB\-bottom\fP +is specified, then instead of sliding columns, the characters will appear +as columns that grow downwards and are erased from above. If \fB\-both\fP +is specified, then a mixture of both styles will be used. The default +is \fB\-both\fP. +.TP 8 +.B \-small\fP | \fB\-large +These options specify the sizes of the characters. The default +is \fB\-large\fP. +.SH ENVIRONMENT +.PP +.TP 8 +.B DISPLAY +to get the default host and display number. +.TP 8 +.B XENVIRONMENT +to get the name of a resource file that overrides the global resources +stored in the RESOURCE_MANAGER property. +.SH SEE ALSO +.BR X (1), +.BR xscreensaver (1) +.SH COPYRIGHT +Copyright \(co 1999 by Jamie Zawinski. Permission to use, copy, modify, +distribute, and sell this software and its documentation for any purpose is +hereby granted without fee, provided that the above copyright notice appear +in all copies and that both that copyright notice and this permission notice +appear in supporting documentation. No representations are made about the +suitability of this software for any purpose. It is provided "as is" without +express or implied warranty. +.SH AUTHOR +Jamie Zawinski , 25-Apr-99. diff --git a/hacks/xsublim.c b/hacks/xsublim.c index 65385c92..81104d7f 100644 --- a/hacks/xsublim.c +++ b/hacks/xsublim.c @@ -88,6 +88,7 @@ #include #endif +#include "yarandom.h" #include "usleep.h" #include "resources.h" diff --git a/utils/grabscreen.c b/utils/grabscreen.c index 3919457c..6f88e5a1 100644 --- a/utils/grabscreen.c +++ b/utils/grabscreen.c @@ -288,6 +288,13 @@ grab_screen_image_1 (Screen *screen, Window window) #endif /* DEBUG */ copy_default_colormap_contents (screen, xgwa.colormap, xgwa.visual); raise_window(dpy, window, saver_p); + + /* Generally it's bad news to call XInstallColormap() explicitly, + but this file does a lot of sleazy stuff already... This is to + make sure that the window's colormap is installed, even in the + case where the window is OverrideRedirect. */ + if (xgwa.colormap) XInstallColormap (dpy, xgwa.colormap); + XSync (dpy, False); } } else /* root_p */ diff --git a/utils/version.h b/utils/version.h index c6d3d380..0c28fefd 100644 --- a/utils/version.h +++ b/utils/version.h @@ -1,2 +1,2 @@ static const char screensaver_id[] = - "@(#)xscreensaver 3.18 (13-Oct-99), by Jamie Zawinski (jwz@jwz.org)"; + "@(#)xscreensaver 3.19 (30-Oct-99), by Jamie Zawinski (jwz@jwz.org)"; diff --git a/xscreensaver.lsm b/xscreensaver.lsm index ff55062b..fab2d30d 100644 --- a/xscreensaver.lsm +++ b/xscreensaver.lsm @@ -1,7 +1,7 @@ Begin3 Title: xscreensaver -Version: 3.18 -Entered-date: 13OCT99 +Version: 3.19 +Entered-date: 30OCT99 Description: A modular screen saver and locker for the X Window System. Highly customizable: allows the use of any program that can draw on the root window as a display mode. @@ -10,16 +10,16 @@ Keywords: screen saver, screen lock, lock, xlock, X11 Author: jwz@jwz.org (Jamie Zawinski) Maintained-by: jwz@jwz.org (Jamie Zawinski) Primary-site: http://www.jwz.org/xscreensaver/ - 1163K xscreensaver-3.18.tar.gz - 36K xscreensaver.README + 1163K xscreensaver-3.19.tar.gz + 37K xscreensaver.README 1K xscreensaver.lsm Alternate-site: sunsite.unc.edu /pub/Linux/X11/screensavers/ - 1163K xscreensaver-3.18.tar.gz - 36K xscreensaver.README + 1163K xscreensaver-3.19.tar.gz + 37K xscreensaver.README 1K xscreensaver.lsm Alternate-site: ftp.x.org /contrib/applications/ - 1163K xscreensaver-3.18.tar.gz - 36K xscreensaver.README + 1163K xscreensaver-3.19.tar.gz + 37K xscreensaver.README 1K xscreensaver.lsm Platforms: Linux, Irix, SunOS, Solaris, HPUX, AIX, FreeBSD, NetBSD, BSDI, SCO, OSF1, Ultrix, VMS. diff --git a/xscreensaver.spec b/xscreensaver.spec index a7280bfe..8fab8fac 100644 --- a/xscreensaver.spec +++ b/xscreensaver.spec @@ -1,7 +1,7 @@ Name: xscreensaver Summary: X screen saver and locker Vendor: Jamie Zawinski -Version: 3.18 +Version: 3.19 Release: 1 URL: http://www.jwz.org/xscreensaver/ Source: xscreensaver-%{version}.tar.gz