============
+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.
* 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?
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'
*/
#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
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
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
# 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
# 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
# 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
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.
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
{ 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
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
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
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
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 <<EOF
-#line 1074 "configure"
+#line 1077 "configure"
#include "confdefs.h"
main(int ac, char **av) { return 0; }
EOF
-if { (eval echo configure:1078: \"$ac_link\") 1>&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
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=
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1126 "configure"
+#line 1129 "configure"
#include "confdefs.h"
#include <assert.h>
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
:
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1143 "configure"
+#line 1146 "configure"
#include "confdefs.h"
#include <assert.h>
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
:
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 1160 "configure"
+#line 1163 "configure"
#include "confdefs.h"
#include <assert.h>
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
:
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 <<EOF
-#line 1196 "configure"
+#line 1199 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:1245: \"$ac_compile\") 1>&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
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 <<EOF
-#line 1273 "configure"
+#line 1276 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:1280: \"$ac_compile\") 1>&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
# 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
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
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
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
# 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 <<EOF
-#line 1459 "configure"
+#line 1462 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
#include <float.h>
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*
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
-#line 1484 "configure"
+#line 1487 "configure"
#include "confdefs.h"
#include <string.h>
EOF
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
-#line 1502 "configure"
+#line 1505 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
:
else
cat > conftest.$ac_ext <<EOF
-#line 1523 "configure"
+#line 1526 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
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
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
-#line 1566 "configure"
+#line 1569 "configure"
#include "confdefs.h"
#include <$ac_hdr>
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*
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 <<EOF
-#line 1603 "configure"
+#line 1606 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
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 <<EOF
-#line 1636 "configure"
+#line 1639 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
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 <<EOF
-#line 1669 "configure"
+#line 1672 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
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 <<EOF
-#line 1702 "configure"
+#line 1705 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
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
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 <<EOF
-#line 1743 "configure"
+#line 1746 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
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
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 <<EOF
-#line 1778 "configure"
+#line 1781 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/wait.h>
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
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 <<EOF
-#line 1824 "configure"
+#line 1827 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
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
# 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
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1865 "configure"
+#line 1868 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
opendir()
; return 0; }
EOF
-if { (eval echo configure:1876: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1906 "configure"
+#line 1909 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
opendir()
; return 0; }
EOF
-if { (eval echo configure:1917: \"$ac_link\") 1>&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
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 <<EOF
-#line 1945 "configure"
+#line 1948 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <sys/time.h>
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
cat conftest.$ac_ext >&5
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 1962 "configure"
+#line 1965 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <sys/time.h>
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
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 <<EOF
-#line 2014 "configure"
+#line 2017 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:2037: \"$ac_link\") 1>&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
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 <<EOF
-#line 2070 "configure"
+#line 2073 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:2093: \"$ac_link\") 1>&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
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 <<EOF
-#line 2123 "configure"
+#line 2126 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdio.h>
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
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 <<EOF
-#line 2183 "configure"
+#line 2186 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdio.h>
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
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
-#line 2246 "configure"
+#line 2249 "configure"
#include "confdefs.h"
#include <$ac_hdr>
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*
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
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
# 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
# First, try using that file with no special directory specified.
cat > conftest.$ac_ext <<EOF
-#line 2406 "configure"
+#line 2408 "configure"
#include "confdefs.h"
#include <$x_direct_test_include>
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*
ac_save_LIBS="$LIBS"
LIBS="-l$x_direct_test_library $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2480 "configure"
+#line 2482 "configure"
#include "confdefs.h"
int main() {
${x_direct_test_function}()
; return 0; }
EOF
-if { (eval echo configure:2487: \"$ac_link\") 1>&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.
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 <<EOF
-#line 2596 "configure"
+#line 2598 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:2603: \"$ac_link\") 1>&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
else
LIBS="$ac_xsave_LIBS -R $x_libraries"
cat > conftest.$ac_ext <<EOF
-#line 2619 "configure"
+#line 2621 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:2626: \"$ac_link\") 1>&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
# 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
ac_save_LIBS="$LIBS"
LIBS="-ldnet $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2666 "configure"
+#line 2668 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
dnet_ntoa()
; return 0; }
EOF
-if { (eval echo configure:2677: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-ldnet_stub $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2707 "configure"
+#line 2709 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
dnet_ntoa()
; return 0; }
EOF
-if { (eval echo configure:2718: \"$ac_link\") 1>&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
# 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 <<EOF
-#line 2752 "configure"
+#line 2754 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gethostbyname(); below. */
; return 0; }
EOF
-if { (eval echo configure:2775: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2804 "configure"
+#line 2806 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
gethostbyname()
; return 0; }
EOF
-if { (eval echo configure:2815: \"$ac_link\") 1>&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
# -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 <<EOF
-#line 2850 "configure"
+#line 2852 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char connect(); below. */
; return 0; }
EOF
-if { (eval echo configure:2873: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2902 "configure"
+#line 2904 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
connect()
; return 0; }
EOF
-if { (eval echo configure:2913: \"$ac_link\") 1>&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
# 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 <<EOF
-#line 2942 "configure"
+#line 2944 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char remove(); below. */
; return 0; }
EOF
-if { (eval echo configure:2965: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-lposix $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2994 "configure"
+#line 2996 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
remove()
; return 0; }
EOF
-if { (eval echo configure:3005: \"$ac_link\") 1>&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
# 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 <<EOF
-#line 3034 "configure"
+#line 3036 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char shmat(); below. */
; return 0; }
EOF
-if { (eval echo configure:3057: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-lipc $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3086 "configure"
+#line 3088 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
shmat()
; return 0; }
EOF
-if { (eval echo configure:3097: \"$ac_link\") 1>&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
# 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
ac_save_LIBS="$LIBS"
LIBS="-lICE $X_EXTRA_LIBS $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3138 "configure"
+#line 3140 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
IceConnectionNumber()
; return 0; }
EOF
-if { (eval echo configure:3149: \"$ac_link\") 1>&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
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
# 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
ac_save_LIBS="$LIBS"
LIBS="-lgen $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3387 "configure"
+#line 3389 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
regcmp()
; return 0; }
EOF
-if { (eval echo configure:3398: \"$ac_link\") 1>&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
;;
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
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 3433 "configure"
+#line 3435 "configure"
#include "confdefs.h"
#include <X11/Xlib.h>
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
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
-#line 3483 "configure"
+#line 3485 "configure"
#include "confdefs.h"
#include <X11/Xmu/Error.h>
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*
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
# with X libraries because we know it's SunOS.
LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
cat > conftest.$ac_ext <<EOF
-#line 3554 "configure"
+#line 3556 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:3561: \"$ac_link\") 1>&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
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 <<EOF
-#line 3584 "configure"
+#line 3586 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:3591: \"$ac_link\") 1>&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
/*)
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"
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"
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
-#line 3722 "configure"
+#line 3724 "configure"
#include "confdefs.h"
#include <X11/extensions/XScreenSaver.h>
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*
/*)
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"
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"
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
-#line 3832 "configure"
+#line 3834 "configure"
#include "confdefs.h"
#include <X11/extensions/scrnsaver.h>
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*
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
ac_save_LIBS="$LIBS"
LIBS="-lXext -lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3890 "configure"
+#line 3892 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XScreenSaverRegister()
; return 0; }
EOF
-if { (eval echo configure:3901: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-lXExExt -lX11 -lXext -lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3956 "configure"
+#line 3958 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XScreenSaverRegister()
; return 0; }
EOF
-if { (eval echo configure:3967: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-lXss -lX11 -lXext -lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4025 "configure"
+#line 4027 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XScreenSaverRegister()
; return 0; }
EOF
-if { (eval echo configure:4036: \"$ac_link\") 1>&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
/*)
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"
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"
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
-#line 4150 "configure"
+#line 4152 "configure"
#include "confdefs.h"
#include <X11/extensions/xidle.h>
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*
/*)
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"
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"
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
-#line 4261 "configure"
+#line 4263 "configure"
#include "confdefs.h"
#include <X11/extensions/XSGIvc.h>
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*
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
ac_save_LIBS="$LIBS"
LIBS="-lXsgivc -lXext -lX11 $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4318 "configure"
+#line 4320 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XSGIvcQueryGammaMap()
; return 0; }
EOF
-if { (eval echo configure:4329: \"$ac_link\") 1>&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
/*)
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"
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"
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
-#line 4444 "configure"
+#line 4446 "configure"
#include "confdefs.h"
#include <X11/extensions/dpms.h>
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*
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
ac_save_LIBS="$LIBS"
LIBS="-lXdpms -lXext -lX11 $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4501 "configure"
+#line 4503 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
DPMSInfo()
; return 0; }
EOF
-if { (eval echo configure:4512: \"$ac_link\") 1>&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
/*)
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"
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"
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
-#line 4627 "configure"
+#line 4629 "configure"
#include "confdefs.h"
#include <X11/extensions/xf86vmode.h>
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*
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
ac_save_LIBS="$LIBS"
LIBS="-lXxf86vm -lXext -lX11 $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4684 "configure"
+#line 4686 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XF86VidModeGetViewPort()
; return 0; }
EOF
-if { (eval echo configure:4695: \"$ac_link\") 1>&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
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 4749 "configure"
+#line 4751 "configure"
#include "confdefs.h"
#include <X11/XHPlib.h>
EOF
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
/*)
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"
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"
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
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 4967 "configure"
+#line 4969 "configure"
#include "confdefs.h"
#include <security/pam_appl.h>
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
# 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
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5007 "configure"
+#line 5009 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
dlopen()
; return 0; }
EOF
-if { (eval echo configure:5018: \"$ac_link\") 1>&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
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 <<EOF
-#line 5045 "configure"
+#line 5047 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <stdlib.h>
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
cat conftest.$ac_ext >&5
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 5063 "configure"
+#line 5065 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <stdlib.h>
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
/*)
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"
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"
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
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 5176 "configure"
+#line 5178 "configure"
#include "confdefs.h"
#include <krb.h>
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
# from Tim Showalter <tjs+@andrew.cmu.edu>
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 <<EOF
-#line 5212 "configure"
+#line 5214 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char res_search(); below. */
; return 0; }
EOF
-if { (eval echo configure:5235: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-lresolv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5261 "configure"
+#line 5263 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
res_search()
; return 0; }
EOF
-if { (eval echo configure:5272: \"$ac_link\") 1>&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
/*)
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"
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"
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
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 5387 "configure"
+#line 5389 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <unistd.h>
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
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
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 5441 "configure"
+#line 5443 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <unistd.h>
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
# 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
ac_save_LIBS="$LIBS"
LIBS="-lprot -lx $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5490 "configure"
+#line 5492 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
getprpwnam()
; return 0; }
EOF
-if { (eval echo configure:5501: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-lsecurity $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5528 "configure"
+#line 5530 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
getprpwnam()
; return 0; }
EOF
-if { (eval echo configure:5539: \"$ac_link\") 1>&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
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
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 5583 "configure"
+#line 5585 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <unistd.h>
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
# 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
ac_save_LIBS="$LIBS"
LIBS="-lsec $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5625 "configure"
+#line 5627 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
bigcrypt()
; return 0; }
EOF
-if { (eval echo configure:5636: \"$ac_link\") 1>&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
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
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
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 5711 "configure"
+#line 5713 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <unistd.h>
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
# 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
ac_save_LIBS="$LIBS"
LIBS="-lc $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5752 "configure"
+#line 5754 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
getspnam()
; return 0; }
EOF
-if { (eval echo configure:5763: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-lgen $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5793 "configure"
+#line 5795 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
getspnam()
; return 0; }
EOF
-if { (eval echo configure:5804: \"$ac_link\") 1>&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
# 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
ac_save_LIBS="$LIBS"
LIBS="-lc $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5848 "configure"
+#line 5850 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
crypt()
; return 0; }
EOF
-if { (eval echo configure:5859: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-lcrypt $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5889 "configure"
+#line 5891 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
crypt()
; return 0; }
EOF
-if { (eval echo configure:5900: \"$ac_link\") 1>&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
/*)
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"
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"
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
-#line 6038 "configure"
+#line 6040 "configure"
#include "confdefs.h"
#include <Xm/Xm.h>
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*
/*)
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"
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"
# 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
# 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
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
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
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
/*)
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"
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"
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
-#line 6383 "configure"
+#line 6385 "configure"
#include "confdefs.h"
#include <X11/Xaw/Dialog.h>
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*
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
ac_save_LIBS="$LIBS"
LIBS="-lXaw3d -lXt -lXmu -lXext -lX11 $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6437 "configure"
+#line 6439 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
Xaw3dComputeTopShadowRGB()
; return 0; }
EOF
-if { (eval echo configure:6448: \"$ac_link\") 1>&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
# 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
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 6505 "configure"
+#line 6507 "configure"
#include "confdefs.h"
#include <X11/Xaw/Viewport.h>
EOF
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
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 6549 "configure"
+#line 6551 "configure"
#include "confdefs.h"
#include <Xm/Xm.h>
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
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
ac_cv_lesstif_version_string=unknown
else
cat > conftest.$ac_ext <<EOF
-#line 6596 "configure"
+#line 6598 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <Xm/Xm.h>
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/ .*//'`
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
ac_cv_motif_version_string=unknown
else
cat > conftest.$ac_ext <<EOF
-#line 6654 "configure"
+#line 6656 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <Xm/Xm.h>
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/ .*//'`
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
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
ac_save_LIBS="$LIBS"
LIBS="-lXp -lX11 -lXext -lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6761 "configure"
+#line 6763 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XpQueryExtension()
; return 0; }
EOF
-if { (eval echo configure:6772: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-lXintl -lX11 -lXext -lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6834 "configure"
+#line 6836 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
_Xsetlocale()
; return 0; }
EOF
-if { (eval echo configure:6845: \"$ac_link\") 1>&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
###############################################################################
#
-# Check for -lGL or -lMesa.
+# Check for -lGL or -lMesaGL.
#
###############################################################################
/*)
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"
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"
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
-#line 6952 "configure"
+#line 6954 "configure"
#include "confdefs.h"
#include <GL/gl.h>
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*
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
-#line 6993 "configure"
+#line 6995 "configure"
#include "confdefs.h"
#include <GL/glx.h>
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*
# 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
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 7042 "configure"
+#line 7044 "configure"
#include "confdefs.h"
#include <GL/glx.h>
EOF
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
ac_save_LIBS="$LIBS"
LIBS="-lMesaGL -lMesaGLU -lX11 -lXext -lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7095 "configure"
+#line 7097 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
glXCreateContext()
; return 0; }
EOF
-if { (eval echo configure:7106: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-lGL -lGLU -lX11 -lXext -lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7160 "configure"
+#line 7162 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
glXCreateContext()
; return 0; }
EOF
-if { (eval echo configure:7171: \"$ac_link\") 1>&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
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 <<EOF
-#line 7233 "configure"
+#line 7235 "configure"
#include "confdefs.h"
#include <GL/gl.h>
configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
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
ac_save_LIBS="$LIBS"
LIBS="-lpthread $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7294 "configure"
+#line 7296 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
pthread_create()
; return 0; }
EOF
-if { (eval echo configure:7305: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-l$gl_lib_1 $GL_LIBS -lpthread -lX11 -lXext -lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7352 "configure"
+#line 7354 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
gl_get_thread_context()
; return 0; }
EOF
-if { (eval echo configure:7363: \"$ac_link\") 1>&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
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
ac_save_LIBS="$LIBS"
LIBS="-l$gl_lib_1 $GL_LIBS -lX11 -lXext -lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7423 "configure"
+#line 7425 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
glBindTexture()
; return 0; }
EOF
-if { (eval echo configure:7434: \"$ac_link\") 1>&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
# 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
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
+#line 7573 "configure"
+#include "confdefs.h"
+#include <GL/gutil.h>
+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
+#line 7614 "configure"
+#include "confdefs.h"
+#include <GL/tube.h>
+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 <<EOF
+#line 7674 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gleCreateGC();
+
+int main() {
+gleCreateGC()
+; return 0; }
+EOF
+if { (eval echo configure:7685: \"$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
+ 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 <<EOF
+#line 7738 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char uview_direction_d();
+
+int main() {
+uview_direction_d()
+; return 0; }
+EOF
+if { (eval echo configure:7749: \"$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
+ 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.
/*)
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"
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"
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
-#line 7568 "configure"
+#line 7862 "configure"
#include "confdefs.h"
#include <X11/xpm.h>
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*
/*)
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"
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"
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
-#line 7689 "configure"
+#line 7983 "configure"
#include "confdefs.h"
#include <X11/extensions/XShm.h>
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*
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
-#line 7733 "configure"
+#line 8027 "configure"
#include "confdefs.h"
#include <sys/ipc.h>
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*
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
-#line 7778 "configure"
+#line 8072 "configure"
#include "confdefs.h"
#include <sys/shm.h>
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*
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
ac_save_LIBS="$LIBS"
LIBS="-lXextSam -lX11 -lXext -lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7842 "configure"
+#line 8136 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XShmQueryExtension()
; return 0; }
EOF
-if { (eval echo configure:7853: \"$ac_link\") 1>&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
/*)
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"
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"
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
-#line 7968 "configure"
+#line 8262 "configure"
#include "confdefs.h"
#include <X11/extensions/Xdbe.h>
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*
/*)
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"
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"
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
-#line 8084 "configure"
+#line 8378 "configure"
#include "confdefs.h"
#include <X11/extensions/readdisplay.h>
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*
/*)
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"
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"
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
-#line 8192 "configure"
+#line 8486 "configure"
#include "confdefs.h"
#include <dmedia/vl.h>
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*
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
ac_save_LIBS="$LIBS"
LIBS="-lvl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 8230 "configure"
+#line 8524 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
vlOpenVideo()
; return 0; }
EOF
-if { (eval echo configure:8241: \"$ac_link\") 1>&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
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
# 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
# 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
# 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
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.
#
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.
# 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
# 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
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
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
+
###############################################################################
#
+
+
+
+
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
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
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 <http://www.linas.org/gle/>.'
+ warn2 'For general OpenGL info, see <http://www.opengl.org/>.'
+
+fi
+
+
if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
warn 'Use of XReadDisplay was requested, but it was not found.'
fi
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
###############################################################################
#
-# Check for -lGL or -lMesa.
+# Check for -lGL or -lMesaGL.
#
###############################################################################
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.
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
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
+
###############################################################################
#
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)
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
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 <http://www.linas.org/gle/>.'
+ warn2 'For general OpenGL info, see <http://www.opengl.org/>.'
+
+fi
+
+
if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
warn 'Use of XReadDisplay was requested, but it was not found.'
fi
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
! 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/
@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
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",
}
+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)
{
make_passwd_window (si);
if (cmap) XInstallColormap (si->dpy, cmap);
+ handle_typeahead (si);
passwd_event_loop (si);
status = (si->pw_data->state == pw_ok);
}
+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;
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)
.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
.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
* 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
* 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
* 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
" 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"
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
.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
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 \
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
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
void CreateTables( SSpotLight *pSpotLight )
{
- long double nUnit;
+ double nUnit;
uint16_ iDegree;
pSpotLight->nDegreeCount = get_integer_resource( "degrees", "Integer" );
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; iDegree<pSpotLight->nDegreeCount; iDegree++)
- pSpotLight->aSinTable[ iDegree ] = sin( nUnit * (long double)iDegree );
+ pSpotLight->aSinTable[ iDegree ] = sin( nUnit * (double)iDegree );
}
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 );
#endif
while( nSoften-- )
SoftenBumpMap( pBumps );
+ free( aColors );
}
#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_;
typedef unsigned char BOOL;
-// Globals:
+/* Globals: */
char *progclass = "Bumps";
char *defaults [] = {
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);
x = next_x;
y = next_y;
}
+ free((void*)replacement);
}
}
{
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);
maximum_x, maximum_y,
minimum_x, minimum_y,
segment_count, points);
+ free((void*)points);
}
static
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))));
if (delay) sleep (delay);
screenhack_handle_events (display);
}
+ free((void*)segments);
if (pause) sleep (pause);
erase_full_window (display, window);
}
--- /dev/null
+.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 <jmunsin@iki.fi> and Jamie Zawinski <jwz@jwz.org>.
+This manual page by Matthias Warkus <mawa@iname.com>, 17-Oct-1999.
#
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 = ..
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 \
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)
+
##############################################################################
#
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
--- /dev/null
+
+/*
+ * 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 <GL/gl.h>
+#include <GL/glut.h>
+#include <GL/tube.h>
+
+/* 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 ----------------- */
--- /dev/null
+
+/*
+ * 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 <GL/gl.h>
+#include <GL/glut.h>
+#include <GL/tube.h>
+
+/* 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 ----------------- */
--- /dev/null
+
+/*
+ * 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 <GL/gl.h>
+#include <GL/glut.h>
+#include <GL/tube.h>
+
+/* 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 ----------------- */
--- /dev/null
+
+/* cylinder drawing demo */
+/* this demo demonstrates the various join styles */
+
+/* required include files */
+#include <GL/gl.h>
+#include <GL/glut.h>
+#include <GL/tube.h>
+
+/* ------------------------------------------------------- */
+
+/* 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<cidx; i++) {
+ moved_contour[i][0] = contour_points [i][0];
+ moved_contour[i][1] = contour_points [i][1] + 0.05 * (lasty-200.0);
+ }
+
+ 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, 4.0, -80.0);
+ glRotatef (0.5*lastx, 0.0, 1.0, 0.0);
+
+ gleExtrusion (cidx, moved_contour, contour_points, up_vector,
+ idx, points, colors);
+
+ glPopMatrix ();
+
+
+ /* draw a seond copy, this time with the raw style, to compare
+ * things against */
+ glPushMatrix ();
+ glTranslatef (0.0, -4.0, -80.0);
+ glRotatef (0.5*lastx, 0.0, 1.0, 0.0);
+
+ save_style = gleGetJoinStyle ();
+ style = save_style;
+ style &= ~TUBE_JN_MASK;
+ style |= TUBE_JN_RAW;
+ gleSetJoinStyle (style);
+
+ gleExtrusion (cidx, moved_contour, contour_points, up_vector,
+ idx, points, colors);
+
+ gleSetJoinStyle (save_style);
+ glPopMatrix ();
+
+}
+
+/* ------------------ end of file ----------------------------- */
--- /dev/null
+/*
+ * screw.c
+ *
+ * FUNCTION:
+ * Draws a 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 <math.h>
+#include <stdlib.h>
+#include <GL/gl.h>
+#include <GL/glut.h>
+#include <GL/tube.h>
+
+#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 ================== */
--- /dev/null
+/*
+ * 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 <math.h>
+#include <stdlib.h>
+#include <GL/gl.h>
+#include <GL/glut.h>
+#include <GL/tube.h>
+
+#ifndef NULL
+#define NULL ((void *) 0x0)
+#endif /* NULL */
+
+/* Some <math.h> 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<npoints; j++) {
+ angle = (M_PI/180.0) * twist[j];
+ si = sin (angle);
+ co = cos (angle);
+ xforms[j][0][0] = taper[j] * co;
+ xforms[j][0][1] = - taper[j] * si;
+ xforms[j][0][2] = 0.0;
+ xforms[j][1][0] = taper[j] * si;
+ xforms[j][1][1] = taper[j] * co;
+ xforms[j][1][2] = 0.0;
+ }
+
+ gleSuperExtrusion (ncp, /* number of contour points */
+ contour, /* 2D contour */
+ cont_normal, /* 2D contour normals */
+ up, /* up vector for contour */
+ npoints, /* numpoints in poly-line */
+ point_array, /* polyline */
+ color_array, /* color of polyline */
+ xforms);
+
+ free (xforms);
+}
+
+/* =========================================================== */
+
+void DrawStuff_taper (void) {
+ int j;
+ double ang, dang;
+ double z, deltaz;
+ double ponent;
+ z=-1.0;
+ deltaz = 1.999/38;
+ ang = 0.0;
+ dang = lasty/40.0;
+ ponent = fabs (lastx/540.0);
+ for (j=1; j<39; j++) {
+ twist[j] = ang;
+ ang += dang;
+
+ taper[j] = pow ((1.0 - pow (fabs(z), 1.0/ponent)), ponent);
+ z += deltaz;
+ }
+
+ 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 */
+ gleTaper (20, contour, norms, NULL, 40, path, NULL, taper, twist);
+
+ glPopMatrix ();
+}
+
+/* ===================== END OF FILE ================== */
--- /dev/null
+/*
+ * twistoid.c
+ *
+ * FUNCTION:
+ * Show extrusion of open contours. Also, show how torsion is applied.
+ *
+ * HISTORY:
+ * -- linas Vepstas October 1991
+ * -- heavily modified to draw corrugated surface, Feb 1993, Linas
+ * -- modified to demo twistoid March 1993
+ * -- port to glut Linas Vepstas March 1995
+ */
+
+/* required include files */
+#include <math.h>
+#include <stdlib.h>
+#include <GL/gl.h>
+#include <GL/glut.h>
+#include <GL/tube.h>
+
+/* Some <math.h> 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 -------------------- */
--- /dev/null
+/* -*- 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 <X11/Intrinsic.h>
+
+
+
+#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 <X11/xpm.h>
+# ifndef PIXEL_ALREADY_TYPEDEFED
+# define PIXEL_ALREADY_TYPEDEFED /* Sigh, Xmu/Drawing.h needs this... */
+# endif
+#endif
+
+#ifdef HAVE_XMU
+# ifndef VMS
+# include <X11/Xmu/Drawing.h>
+#else /* VMS */
+# include <Xmu/Drawing.h>
+# endif /* VMS */
+#endif
+
+#include <malloc.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <malloc.h>
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include <GL/tube.h>
+
+#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 <filename>", "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
+
-#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
+ };
/* 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[<<c8c[<:;#@+.......@$&!a000044000041~&%@....",
-"..+@$-;_6d8_(e:_<86['*#@+.....+%-/~200019f|14000^-$%+...",
-".++%=;e[7gc:>>>>_8h6:=#++....++#,i|0000f]]]]1000a,$@+...",
-"..+@&(:cbg[j----:7k6:&##+.....@#5^|00009////|000a!=$@...",
-".+%#;:<c7b<e-&-&e8g6_>*$@....+%=~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|~,#+..",
-".@@*;<c787<,--&&:[d6_;)*@+...@%-i400004^//!!f0004i/-#+..",
-".+@$':<86b<(----ecb7_;=#@+...+%=ia4000l9////|0002~,=@+..",
-".++$;e<86bp(--&-e[d8:)*#+....+%=~|400049////9000a/>$@...",
-".++#&;e[6g85->>>:8d6:&$#@....+@$!i|000qo/]]]f0003!-$%...",
-"..+@*-;cdk7:>>'(_7g8:=#++.....+#-/iq0003]]^^2000a,$@+...",
-"..+@$*)_dh75>,,e<7h6:$#@+.....+@=,/2000o]^^94000|-$@+...",
-"...+#*&e8bc_j::_<[8:'$@+.......@$-!a00n199o12002i=#@....",
-"...+@%$':<<_}_<[<:e'&@@+.......+@$=ia44214q041ri!%@+....",
-"....+%#='e_<cc8c<(&*$@+.........+#$,i|1400002^!>=#+.....",
-"....++@*&;;(ee::()=#@++.........+@@>!~im|||am/,=#++.....",
-".....++@$*&&))))=*#@+............++#=-!!}}/}!-$@%.......",
-".......+@@@##%%#%@+@...............+@#%$$$$$#%@%........",
-"........+++@@%+@@++.................++%@%#@@%++.........",
-"........................................................",
-"............+.+.........................+.+.............",
-"..........++@@+@++....................+@#%@@@+..........",
-".........+@%#$#%@++..................+%%$&=#%@+.........",
-"........+@#*=$*$#%++................+#$-,--=$#@+........",
-".......+@@)e<ee(;)&$+..............+@#/|4f|^~/5-@.......",
-".......+@#([d6[_:e()$..............@#$m000021|m}&.......",
-".......@@#_dskd8<<:(=..............@%=20t00002|m,.......",
-"......+@#*:gsh8_:(;=$.............+%$&a0t00aami5=.......",
-"......+@#*_bsd[;;))$@.............+#$-20t00ip}5=#.......",
-"......+@$$<dsb:&=##@+.............+#=-20t0a!,=$#+.......",
-"......+@#*<bu6:=$$@++.............+%=-20t0a,-=%@+.......",
-"......+%#*<bs6_=*#%@..............+#$>20t01,-$#%........",
-"......+@$$<dsb:=$#+@..............+#=-40t0a,-$@@........",
-"......+@$$<dsb:=##%+..............+%=-20t0f,=$#+........",
-"......@@#$<bs6:$$@++..............%%$-40t0a-=%%+........",
-"......+@$*<ds6:=##@...............+#=)20t0a,=$@.........",
-".....+@##$<bu6:=$@@..............+@$=-40t0|,=#@.........",
-"......+@$=<gsb:*##++..............%#=,20t01-=$@+........",
-".....+@#$$<bsb:=$#@+.............+@$=-40t01,=$@+........",
-".....+@#$=<gsb:=$#++.............+#$-,20t0o,-$@+........",
-".....++#$=_dsb:*$$@+.............+@$-,40t0a--=#+........",
-".....+%%$=<gs6:*$#@+.............+#$=,v0t0a,=*%+........",
-".....+%$$&_dwb_**#@+.............+#=-!40t01,-$#@........",
-".....@+$&;<6h8_,&=#@.............@@-!p20001{!,$@........",
-".....+@=)(_7d8_(>=#%+............+%,}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_,,>;(<c_;#+........@-/m00001^{{]|402~$+.....",
-"..+@=;([bg[e>--&;:[_)@+.......+%,~|0000f]//!ia02}#+.....",
-"..++$)([bh85--&&);(;$@+.......+@>/m00009//j!/imp>%+.....",
-"..+@$&;[6h8:--&*&&&&#+........+@-5i0000f//!,!55,$+......",
-"...+*&;[bh85--&=*$#@++.........@-5i0000o]/!,-=$#%+......",
-"...@$*)_8dc}j>-=$$#%+..........@=-/200039{/,-*$%%.......",
-"...+@$*:[78<_j'*=$#@++.........+%-,|000439{,,=$#++......",
-"..+@%$$(<[88c_,&=##@@+........+%#=-^400003{!,=$#@+......",
-"...+@#$>e_<p8_5>)=##++.........+#$-]91q4n3o{/,=$@+......",
-"...@@#$-'e_[7[}:,-*$@+.........@#$-/i910n0lo^/-=#@......",
-"...+%#*&->5~ccp[:'=##@+........+%=-!/]fl0n4qo{,=$@+.....",
-"..+@$$=->'e~[ccc_(>&$@+.......+%=-!/]{flqnnn19]!-%@.....",
-"...+$&;',!___~p8c}_(&#@........@&!]{^o331lqnn43^!$%.....",
-"...@=)'ee_555}c77c[:;#%+.......%,}^|93fool00n001~=%+....",
-"...@*;'5__}__~c7878};$++.......%>~if14l13l000004~=%+....",
-"...+$&;:<cp[[876778<>$++.......@=5~|40qq0n000004~=@+....",
-"...+$*):<878776768c_;#@........+&,}a000000000002~=%.....",
-"...+#*=(<8888c88c[[e)#+........+$-!m40000000000a/$@.....",
-"....+#$);(eee:ee((()*@+.........@$=/pm||mf|||mm}>%+.....",
-".....+@#$*=*&=&==**$@+...........@#$-),,!,!,,--*%+......",
-"......++@@######@@+++.............+@@%$$$$$$%%@%+.......",
-"........++.@++@+@++.................+++@@@@%%++.........",
-"..........++@+++......................++@+++............",
-"........+@@@###@++..................@%##$$$%%+..........",
-"......+@%#$*=$$*$%++..............+@#$&-,---*#@+........",
-".....++@$$=&&&&&$$@++............+%#=-,!!!!!-=%@+.......",
-"....++%=;';;;'';)=*#+...........+%%,]ii~iiii/,-$@.......",
-"....+%#;_c<:e::<:(;&#+..........+#=p2n4afa14am~5=+......",
-"...+@#*:7g6c_<[8[_:;=+.........+@$-a0000140002fp)@......",
-"...+@$&<bh6[_[[8[<:(=@.........+#&!400003400041m,@......",
-"...+$*)<6h7<e:_<_::;=@.........+=,_200029a222a|p,#......",
-"...+$);[6h8:''eeeee;*+.........@-/i0000f{^9|a||p>@......",
-"..+@=)([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^]/,-*$@@+......",
-"..@#;<cc8p_,>-==*#$%@+........%$i40nnq3^]/!,-==#@+......",
-"..+#;:<ccc_j---->';)$+........+$~a000039////]ii/-@......",
-"..+@)e_<88_(>'>'e_<:)@+.......@#/|200019]{{{910a/#+.....",
-"..+%=;e[c6<!>>,e_8b['#+.......+#,i|40019]{^|2000i$+.....",
-"...+=&;:<8<:,ee__<c_;@+........@-5~a4n4o^9912002p%+.....",
-"...+#$&':___:___<__(=@+........+$-5ia413a122222m,#+.....",
-"....@@$&'ee_<<<[<e;)*++.........@#&!i||244404|i/-%+.....",
-"....+@+=);((:::ee;)=#@..........+@@,/im9|aa||i},$@......",
-".....+@#*=&)));;)=*$++...........+@$-,5//~~~_,-&@+......",
-".......++@###$###@+++..............+@#$$===$$%@++.......",
-"........+++@+@@@@@+.................++@@%%##%%+.........",
-"...........++++++.+....................++++++.+.........",
-"..........+.+.........................+.+...............",
-"........+@+@@++.....................@@%%@@+.............",
-"......+@@$##$@@++.................+@#=$&=#%++...........",
-"......+@$#**$$#@+.................+#==---=$#@...........",
-".....+@#&-;5e;=#@@...............+@=!/{9f~,$%@..........",
-".....@@=);_<8_'*$@++.............@#,/ia003i-=#@+........",
-"....+@#)(e8dh8e**$@+............+@$/^fn000f,-=%+........",
-"....+@%-(_c6h7<,-$%%+...........+#$/m100001^/-##@.......",
-"....@%#>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<e'>>-=*$%++........@$~|4000qf{]]/,-=#@+......",
-"..+%;_cc[8_,-&&=$##%@.........%$p2n0003^/!!,-=$%%.......",
-"..+#;:<c[[_,-=&&==$#+.........+$~a00041{/!!!,,-$@.......",
-"..++&;:_[c_j>,,((;(;*+........+@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<j'>>,:8d85&*#++....%$~a000019{{{{30009!-&%+..",
-"..+#;:c[88_,>>>,/cd8_=$#++....+$ia00001^]]]{3000a!=$@+..",
-"..+#;_[c[c_j->>>:cg75&$%@.....@$p2000n39/]]]f000o!-%@...",
-"..+#;_c[[[e,>---_pg8:=$@+.....@$i20000f^]/]/3000|,=#@...",
-"..+#)e<[[[_,->>,_8d85=#%+.....+$}a4400o^/]{{3000o,=#+...",
-"..++=;e<c8<j>,,(_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/,$....",
-"....#$&<bxg7[[<<[86[:;&$........$&540t000q440000|i5=....",
-"....@$&[dxg6[[[<[[c[:;&#........%=500000q0q40000ap5=....",
-"....+#*:8g6c}_:e:::(;)*#........@$)2000nl1a9|aa|i5>$....",
-"....@@*([6c[_jj>);;&&*$+........%%-m00n0399]]~~5(>=@....",
-"....@@$'<8<__e'&==**$$#+........%#=i404419{!,,,--=$@....",
-"....+@@)(:<pc_,=&$$$#@@.........+@#/ma4403^!j-==$#@.....",
-".....@@=)(_[6_(==$#@@+...........@#,}^2002^,,-$%@+......",
-".....+@#=&:[b[,=$$#@+............+@*,/a00l9,-=$#%.......",
-"......+#$&e<8<e-=$#@@.............+$=!|2029/,-$@@.......",
-"......++%$;_[<(')$#@+.............+@$*i2049{/-$#+.......",
-".......@@#;:[_e')=#@+..............@#$~a02|i/,$#+.......",
-".......+%#=;(::_(&#%+..............+#$,i||119!$#@.......",
-"........+@$=)e<[:;#%@+..............+#=,/|20a~$#@+......",
-"........+@%$$'<6<;##++..............+@$=-^404{=$@+......",
-".........+@#$;<8<:=*#+...............+%$=i404|!-$+......",
-".........+@##;:8<:()$+...............+%$$~a0q|m}&@......",
-"..........+@#)e[<::;=@................+%$/|042|i,@......",
-"..........++@=;:::_e=+................++#(paaa2|,@......",
-"...........++$=)(:_e)+.................+@=,}ma2|5@......",
-"............++#$)e[:&@..................+@$=}|015@......",
-".............++@=;e;*+...................+@#(p|i;+......",
-"...............+$*&*#......................+=)5)$.......",
-".................++..........................++.........",
-"........................................................",
-"........................................................",
-"........................................................",
-"...........+++++++.....................+++@+++..........",
-".........+++@@%@+@++.................+@@%#%#@@@+........",
-".......++%$*===&$$%@+..............+@#&-,,,!-=$%@.......",
-"......+@#$&)'';';&*$%++...........+@$=!}iiii~!-=#@+.....",
-".....++@$=;(::::e'==$@+..........+@#&,~^aa1f|i!,=%@.....",
-".....+@=;(ee::::55:'&#@+.........+%,i||aaffaooai!$%@....",
-"....++#;_[<_e:5e_<c_'*%@........+@$~20419fff14n2i-#@....",
-"....+%#e[dc_ej55<7g85=#@+.......+#$|000199994000f,=#+...",
-"....+@$:7g8_5555}7g8e&$@+.......+%=a0001ooool000|,=%@...",
-"....+#$:6h7}(jjj[7g6_=##@.......@$&a00019999l0003!=$%...",
-"....@#$_6k7~jjj,}7h7_-$%@+......@$-2000l999930003/=$@+..",
-"...++#*e7g8p:___cbd6_-$#@+.....+%$-|000l3o33n0003/-$#+..",
-"...++#*e[6787i7m6|g85>$#++.....+@$-|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<c<:(>$@+.....+#=-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<c76c/>>;)&$#++........@$=]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()*+.%=,a000q41o99310000004a^/-@",
-"+@$&<bhb8____<c76dhgggb[:(&%+#=54000n123140000000000am5#",
-".@$&:6gc__:55_<[886666c[:;=%.#=!20004aff|12000000000ai,%",
-".+#=(<8_(;'>>;('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:<c8_'##@+.............@$)~|24002i=$@@......",
-".......++@&;:_87<(&*#%+............+@#5ia2004m!-=#@.....",
-".......+@@*&;(:<:_:(&$#+...........+@#-5~m|411a^5=$+....",
-"........+@#*=);(:<8_(=#@............@@$-(/i^a204^,=%....",
-"........++@#$*&):[68:&*#+...........+@%$=-!}a000a5-$+...",
-"........++@%$$=&e[bc:)$@+...........++%$=-,/|000|/-#+...",
-".........+@#$$=-e[68:)=#+............@@$=-,/9000a},$+...",
-".........+@@#$&&([6c:)$#+............+#%=-j!|000|/-$+...",
-"........++#$*);e::<:;=#+............++$=-/{||24ap,=@....",
-"........+@#$-(:<_e;;=#%+............+#*-/^a42|i~,=#+....",
-"........@@*&)e<c_(=$#@@.............@%-!/|402m,>$@%.....",
-".......+@$)(__:_()*#%++............@#=}m2222|/-$#@+.....",
-".......%$*(<c<:;)$$@@+.............#&,m402ai_-=%%+......",
-"......+#*):8dc(*$#+++.............+$,52000m-=$@++.......",
-"......+*)(:[c:;*%%@+..............+>}ma00ap-$#%+........",
-"......+=(_:ee;=@@++...............+,m2ar|~,#%++.........",
-".....++):[:;**$@+................++}a01p,>=%%...........",
-".......=;:;&*#+++..................,i|p5>$@++...........",
-".......#*)$$@%+....................$>}-=%#+.............",
-"........++++++......................+@++++..............",
-"..........+...........................+.................",
-"........................................................",
-"........................................................",
-"........................................................",
-".........+++@+@+@+...................++@@@@@@+..........",
-".......++@+%@%#%@+@++..............+@@@###$##@@@+.......",
-".....++%#**=&&&&&*$#@+...........++#&--,!!!!!,&$%+......",
-".....+@$=;;;'((e(;&*$+++........++@-,~~ii^9r^~!,&@++....",
-"...+@@#=;(ee:_<<_e')=%++.......+@#$,~|||a2442|i/,$@+....",
-"..++#$&;(eeee_<c<_e')=*#+.....++$-!~^9|||14041|i/,-$@...",
-"..+@=;e(e:(,':c6c<_ee')*@+....@#,p||rf9^{a00043||i/-%+..",
-".+@#;e<_:e(>-:[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_>&=$=*->e<c[_ee:<_)$+$=5a002{!!-,,/]f2002f|122}=",
-".+#*ec6<(-&***=&j<78<e::_:)#.@$>r004^/!---,!92002f9a2a}$",
-".@+$([8_e>&=*$*=;<88<_e::e&#.%@=m002|]!!---,i4004aaaa|5$",
-".++#)(_ee('>>&==>e__<<_e()*+.+@$}ma||^{~]!,,]|22442|^~>@",
-"..++$&);(e('(>&$&;':_c<e&&#@..+%=5}pm|mim]!-!]^f40qr5,$@",
-"...++#$=;::ee'-$*&&;_8[(*#++...+@$=5i|a||i/-,!5i200m,$%+",
-"...+++#*&))))=*$$**);((&#++....++@$-5}}}/,)==--5i|m5$@+.",
-".....+@@$$$$$$$$###$*==$@+.......+@#*&-=--&=$=$=),,=@+..",
-".......++++@+@%#@@@@++++...........++@@@@@$$%@#@@%++....",
-"..........+++++@++++++................++++@%++++++......",
-"...............+...........................+............",
-"........................................................",
-"........................................................",
-"........................................................",
-".........++.+........................++.+...............",
-"..+++@+@@+@+@+@+++............++@@@%@@%@@@@+++..........",
-".++###$%@%%%#%@@@@++.........+@$$==#####$###%@@+........",
-".%#$$$=*$$##$#$##%@+++.......#$-&-,-=======$$#%@++......",
-"+#&);;>>->'(((>-&&&*#@+.....+=!}~~]]]]{^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^{{]/!,-#+...",
-"*(<c_e,j!5c7h7}j,>'>-&$$@...>|2039^999n00039^{{]/!-=%...",
-"$;:_ee''(!c6h7<j(''>)&*#+...=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$$@+.........",
-".......@@#(<b_'##@+................@#$m002{=$#+.........",
-".......+@#;[6_;$#@+................+#$i002i=$#@.........",
-".......+@#(:6<'$#%@+...............+#$i204i-=%@+........",
-".......++@;<c_(=*#++...............+@#i402^,-*@+........",
-"........@%)e[_e()$%+................@#_|02|^/-#@........",
-"........@+&;(::_e&$@+...............@%,p|a22|5=@+.......",
-".........+$=):[6_'#@+................@&,/|002i=#@.......",
-".........+@$*;:[:'&$@................+#=(ia0ai,=%.......",
-"..........+@$&;(';)=#.................@%&,pmip},$.......",
-"...........++#$*&;;)#..................+@$=>5~i}=.......",
-"............++@#*&;&$...................+%#$>5p5&.......",
-"..............++@$*$+.....................+@%&>=@.......",
-".................++..........................+@.........",
-"........................................................",
-"........................................................",
-"........................................................",
-"............+.+++.+.....................+.+++.+.........",
-"........+++@+@++@@+@+++.............++@@@%@@@%@@@++.....",
-".......+++%@%####%#@%@++...........++@###$$$$#$##%@+....",
-"......+#$===&=&*&=&&==$%@+........+$-,,,!,!,!!!!,,-$@+..",
-".....++=;((('(,(,,(,'>)*@+.......+@,~^m^^^^^^^^^{~/-#+..",
-"....+@@)(___________::'&#@+.....+%#/|232131a32a11f^!=%+.",
-"....+@#;_<<:_:_:_:__}__>$%+.....@#$~2022aa13a11114f]=#@.",
-"....@@#([8c_j55j555_[[<'*#@+....@%=m4041999o9oo34n4i,$@+",
-"...+%#*e[b~_jjjjj555p7c(&$@+...+#$-|00q399999oo3q009!=#+",
-"...+%#=:86c_j5,555/<cmcj=$@+...@#=,|000lo99o9ooln0n9!=#@",
-"..+@#*&:c68p<}}}}}}p7675&$%@..+@$-j3n0n43l3llllqn009!-#%",
-"..+@#*-_[78c8[pc878i66c/-##+..+@=,/f00nnnqqqnnnn00no/=$@",
-"..+@*)>_86m7i78i7i767m8:-*#@..+%-/]1n00nnnnnnnn00003/-$%",
-"..+#)(_<c8c888787m6668ce,=#@..@$/|20nnnnnnnnn000000f{!*%",
-"..+%;<c888iccip77m6m87p5'-*@..+$i20n0nn0nnnnn000nnq9{/-%",
-"..@#([78c8p88c8i76bm8p_e')*+..%$m000nnqnnqnnn000nq1fi/-%",
-"..@%)(_<pcp[ppcp8mgm7}_,-*$@..@#/m144nqq4qqqn000nl3^/,&@",
-"..++$&>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<e>*#++.............+#=>|0004|~,$@+.......",
-"......++@$;:<_(>&$@@..............++#=pa02m~!=%@........",
-".......++%*);;=*$@+................+@#)_i~5-=#+.........",
-".........+@%##%@++...................@%#$$%%@+..........",
-"........................................................",
-"........................................................",
-"...............+.+.........................+.+..........",
-".............++#%$##+....................+@$$==$@.......",
-"...........++##*==)=#+.................+@$=-,,/,$+......",
-".........++@%$*=);;)$+...............+@@#=-,}pi}-@......",
-"......+++%@##=>(((e;*@+...........++@##$=,]^^m|~>@+.....",
-"....++@+%###*>e:_::'&@+.........++@@#$$=-]|a1a|i!#@.....",
-"...++@%##$*=='_c<_e'&#@@.......++##$==-,,{1042ai!$%@....",
-"..+@$&>;>'>>'e_c[<<:;$%+......@#-5~]]{]{{f20044a~=#@....",
-".@%*;:<__<_::_}cc87<'*%@+....@%>pa44441aa1lqn004^-#@+...",
-".@$&:8d6668cp[<<c6bce*#@+....#&5a000000nq44l00009,$#+...",
-".@#=([7866878c[}c8bce&*@+....%$,m000000nnn4l0000|!-#@...",
-".@@#)(:<[87ccp}_[<c[e'&$@....%%=}ma40000nq43l0n0ai5=@...",
-"..+@$=)e<[887p_!_}<_:e'=@+....+%=,}|40nn0q1o1141a|i,%+..",
-"..+@%$=;:<c86[_j5e::::;&@+....+%$=,ia4000ql9ff1aa|i5#+..",
-"...++#$);(<i6c:',''(e:e)#@+....+@$=/i94n00f{{{i^|a|/&%+.",
-"...+++#$=-:cb[5---&)(:e;*#+....++@$-,/|n00o///!]ma|~>$+.",
-"....++%##=e[6<e-&**&;:e)*#+.....+@#$=,|0009/!,-5i||_>$@.",
-".....+@%##;_<<e'>&**&)=*#+.......+@%$=~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{-=$@+.....",
-"...+@@#;<c_(-e<b[j&##@++.......+%#*i402^/f0009!=$%@+....",
-"...+@#$([6<5'_8b[5==$#@+.......+%$&m004f{10009!,=$%+....",
-".+@%#$$:[6<5'_8gc/-=*#%@+....+##$=-f0049{100no/!-=$@+...",
-".+#$#$=:86c:j~8gc_>-=$$++....@$==-,|00039ln0q3]/,==@+...",
-"+@$**$=:c6p:j}7g8/>-*$$%++..+#----,fn0q39l00n3{/,-=$@+..",
-"@*)''';<7g7~:8mg6}5,,-=*%+..%-}ii{i400n33n0003o^{/,-#+..",
-"@&e_:eecbg78~7dkdc:5j',*#@+.@5|2aff0000nln000n3o9^{,=%+.",
-"#;<[[<[8bhb7cmghg6p~__()$%+.$i4004400000000000lllf|/&#+.",
-"@)(::::86g67}8dgm8__5('=#@+.@}maaa|n000nln000n13f^i,=#+.",
-"+$&);;;<mbc}/p6g6p5(,>&$%@..+=5}~~i4000l3q000q99^]!-%@..",
-".++##*=:cbp_j}cmc}j'&=$#++...+@$=-,a00q39ln0n19{!,=$%+..",
-".+++##*ecb<!'5p7p_j>-*#@@+...++@$&,|0049{oqnq39{/-=#@+..",
-"..+@%$#e[6<5,j_[<_:(-*$@+.....+@%=*|00qo{o1044|9/-=#@...",
-"...+@@$([6_(-(5__}<5>$#%@......+%%=m0029/^f31149]-$%%...",
-"....+@#(_6_(->,e:_<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-@@+..........",
-".....++@@#;:<e)#@+@+.............+@%#$~a4|/$%@@+........",
-"....+@%##$;_8:;$$%@++...........+@#$$=i401~=&##@+.......",
-"...+@@##$=e[6_,=$$#@++.........@#%$=-,|004^,-=$%@+......",
-"..@@#$$===:cb[(*=$$$%++.......@@$=-,,jf0009,,-==#@+.....",
-".+@#$&&&->_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_<c7[_()*+...%$=!a0004ln000n340002m}>@...",
-"+##*_6g6c~7gkb7_c768_()*@...@$=,10000400000400004m/)@...",
-"+%#$(<8[_:c6h7[:__8<:;)$+...+#$-90001fn0000f2404ai/&+...",
-"+@#$;:<e(,<7g7_'e:::;)*#+...+@$*~f2f^{20001{9|2ai},$+...",
-".+@#*)'--&e8b<(-)'(())*%.....@%$,}i//!|0009/}imi~5)$....",
-".++@$=)&**e[6[(==))&=*#%.....+@%=,/!,,|000^,!/~5,>$%....",
-"..++##$***ecb_(=$=**$@+.......++$=--->|002^,-,)>=#%.....",
-"....+@@%#$(<b_;$$#@++...........+@%#$*m002i=*$#@@.......",
-".....++@@#;_8_)%@%@+.............+@##$p202}$%#@+........",
-".......@@@):[e&#@++................%@%}|0r!$%@+.........",
-"........++&;_;&+@+..................++5i2i,@@+..........",
-"..........*)()$+.+...................+>}m}&+.+..........",
-"..........@$=$+.......................%&,=%.............",
-"...........+++.........................+@+..............",
-"........................................................",
-"........................................................",
-"...............++++++......................++++++.......",
-".............+@###@@@++..................+%==$%#%@+.....",
-"............+#*&=$*$#@@+................+$>5,--&$%#+....",
-"............+$&;;&=**$$+................@&5i~!,,-&=@....",
-"...........@+&':e'-&&*$@+..............%@,i1|i/!!,=%+...",
-"..........+@#):c<:'>-&=#+.............+#$/a02f^]/!,$+...",
-"..........@@#;<7[<(('>=#+.............@%$i200199i~,&@...",
-".........+@##(<68[_:'>=$@............+@$=^40001fi],=@...",
-".........++#$;_c[[<_(&$#+............+%$-i300041^!-$@...",
-".........+%$*>e<p87<(&$@@............%%=-]f440049!=#@...",
-"........+@#*&,e}pc7[,&$%@+..........+%=-!^flqn04^!=$@+..",
-"........++$&;:<8877<(-$#++..........+@=!~f4nnn049/-$@+..",
-"........+@$>(_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(''<bh6<j,>-&=$#@.....+%$5i|^{^000029{{/!,-=%....",
-".+$=(<8<__7dybc__:e(';=$+....@=,m400110000031f|m{},&+...",
-".#$)<6gb8[bhxgbi[[__e(;$+....$-/40000000000n0442|m~-@...",
-"+@$=<bg6c[7dhg6cc<<:e;)$+...+#&540000400000n044a|i}&+...",
-".@$=:7d8_5<8b88c[_ee')=#+....%=,20001o4n00nnqlf|i/,=+...",
-".@#*:8d<:>!}[p<~__(;)*#@.....%$>|004a{o1q44l1a^i/-=@....",
-"+@@*:86<5'j:_~[p_5'>=*#@....+##>a0049{9f1lq41f^],-$%....",
-".@@$e86<(,,j5_p8_(>&$#@@.....@%-|0049{^9o1qn29]!-$#%....",
-".@@$([8<5>,>,:[6[j&=##@+.....@#=m004o{^{{30049!,=$@+....",
-".@@$([8<j',>,:<6<j&*$%@+.....@#=m0019{^{{o4049!-=##+....",
-".+@#;:[:_:jj,_<8<e-=##++.....+@=pa02ao99^14n4|/,=$@+....",
-".+@@)(:____:e_<<_'>&*@%+.....+@#}ma2113of3403^]!-%#+....",
-"..+@=(e:<<__5__<:(>)*#++......+%,i|a4021f112||]/-$@@....",
-"..+@$=):[7<<:5('(:e(;=$%+.....+%>5_a0002|f9m^||m~,&#+...",
-"...+@$=ecb8<:(;-;e<e(;&#+......+#=,a0004a^~/i|4a^~5=+...",
-"....@@#e[dc<:;&$)(<_e;&$+.......@#$|0004ai!-/|42|p5=+...",
-"....++%)(_e;;&*#=)(;;)=#+.......+@#5|2ri~!>$,}mi~/,=@...",
-".....++%&&&**$#@%$*===*#+........+@$,55)>=$%$=-(,,>$+...",
-".......++@+@++@%@++@$$$%+..........@+#@@@@%%@%@@&)&#+...",
-".........++++@++++++@#@+.............++++@++++++#$%+....",
-"....................+++.........................+++.....",
-"........................................................",
-"........................................................",
-"........................................................",
-"........................................................",
-"......++@+@+@+@+@+++..............+@@@@@@@@@@@++........",
-"....++@@%@##%#%@%@@@++..........+@@@##$$#$###%#%@+......",
-"...+@%###$#####$#$##%@+........+@#=$==$=$===$=$$#%+.....",
-"..++*)'>&*&$*$$#=&>)&$#@......+@-/i]!,,--=-=,!]/!-=%....",
-"..+#)e_:,>-==$==-':(;&=#+.....+$}|2f^]/,,-,,/ia|~5,$+...",
-".++#(<c_(,>-=&**>:<_e'&#@....+%$^4029{]/,!,,{f42|i!=@...",
-".+@#([8<5>>-*&&&,e<<e;)*+....+@=m0049{]/,!!!{f44|i}-@...",
-".+%#([8<e>--&&==,e<<:(;*@+...+%&m0049{//!j,!{944|^~>%+..",
-".+@$([8_(,--&&=&>:_<:(;=%+...+#=m0039{//!!!!{a423m~,#+..",
-".+@$([8<j--=&&&&':<_:('=@+...+%&m0029]/!!j!!{f4419i,#+..",
-".+@*([7<(,-&==&&>5[<_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;=%+...+#$m0004413afa140002|~,#+..",
-"..+#;<8c<_::eeee<[8c_e;=@+....@$i40041afff|f40001|~,%+..",
-"..+#;<[_e('';>',e_c<:';*++....@$i402f^i{~~{{9204a^~>@+..",
-"..+%;:[:'-&*=$=*>(<::;;*@.....+#pa0|i/!,,-,,]|42ai~)%...",
-"...@)e_()***$#$$&;ee';&$+......@}|2m/,--===-!i||ii5=+...",
-"...+$&)&$$##%##$*&))&)$#+......+=5}5-=$$$$$=-!_/55-$+...",
-"....+###@@@%%@@%%#$$###.........@$=$%%#%%#%%#=*&=$$+....",
-"......+++++++++@+@@@@+@...........+++++++++%@@#@#%@.....",
-"........+.+......+++................+.+......+++........",
-"........................................................",
-"........................................................",
-"........................................................",
-".......++++++++++..................++++@+++++...........",
-".....+++@@@%@@+++@+++............++@#####%@@@@@++.......",
-"....+@#####$$#$##%@++@+.........@#$$$$$=&$=$$#%@@@+.....",
-"...+%$*$$*$$**$*##$#%@%+.......+#=------,---==&$##%@....",
-"...@#&-------&-&&===*$#@@+.....@=!///////!/!!!,,--$%@+..",
-"...@&e____:5jj!5555(,(;=#@+....#!|2133o999oo99f9^^~,&%+.",
-"..+#(<7877[<_<<p[[[[<_e;=#@...+$m40000nl314qq00042ap,&@.",
-"..+#([b6bb78<p878888[[_'=$+...+$m000000n4qn0n000002i,=@.",
-"..+@)(_<88c8pc86c<_::e()$#@...+%}m20000nq0n0041fa|m5&$@.",
-"...+$=)e_ppcc877p_';;))=@+.....+&'}|24qnn0n043^{i~/,#+..",
-"...++#$)e_[}[i66[5>&&&=#++.....+@$*]f144qn00q9]!!!,$@+..",
-"....@@#&>(5__p8bc5-&=$$@+.......%#$,~^ff1q000o/!,-&%+...",
-"....++@$*->>,<cb[5-*$##++.......+%#=,/]{^3n00f/,-=$%+...",
-".....+@@#$*--_pdce**$%%+.........+@#$=,//10009,-=%#+....",
-"......+@@$$=&(c6<j=$$@@+..........+@#=-,!90049,-=#@+....",
-".......+@@#$='<6<(*$#%+............+@#$-,^401^,==%%.....",
-"........+@##*'_c_,$$#@+.............+%$$-i202{-=$@+.....",
-".........+@%#-:[_'&$$%+..............+#%=]|02{!-=#@.....",
-"..........+%#)e_e(-=#@@...............+#$/|2|^/,=%@.....",
-"..........+@@=;:e;;&*@+...............+@#(i||ii!-@@.....",
-"...........++$);'((;=$@+...............+@&/ii^m~,&%+....",
-"............@#*&)(e()=$@................@$-5}^am},&#....",
-".............++%&(_e;&*@.................+@#5m2|i5)%....",
-".............+@+*;e(;=*%.................+@@)~|m~,>#....",
-"..............+@#*&)**$@..................+@$>55,)&%....",
-"................++@####@....................+@#$$$$%....",
-"..................++@@++......................++#%@+....",
-"....................+@+.........................+%+.....",
-"........................................................",
-"........................................................",
-"........................................................",
-".........++@+@@+%+@@+++..............@+@@%@@%@%@@++.....",
-".......+@@#&)**#*=&&*#@+...........+@%&,/,-$-,5!,=%+....",
-"......++#$);:'&#&(e(')*#+.........+@$&/iai!=5^ami5,$+...",
-"......+@$=(<8:'=;_c<e'&#+.........+#=,m40ai,{a00ai5=@...",
-".....@@$$=e[7_'&;_8[_(>*%+.......@#=-,|004{!i200am]-#+..",
-"....+%#*=&e<b<(&(_[<_(;=@+......@#&-,5|0049!^1041m~,%@..",
-"....%$*==):[d<5>'_[<_e;&#@+.....#=),!}a000f]{1043|i!$%+.",
-"....@*&));_7d8:>:_c[<_()$@+.....#-5!/~2000f{f1n4419/-%+.",
-"....$=);(([6g7[5_c88[__;&$@.....=,_i^|0000qf1000q4ai!&#.",
-"....$&;e:<cdg68}[7b67c[e)=#+....&5i||40000n1q00000q|_,$+",
-"....$&;ee_cbhbc_p86688<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,#@..",
-".......@@#(<b[e-,_<[_(;=@+.........@%$m0009/{10439i,#+..",
-".......+@#([d[_,e<c<_e'=%+.........+#$m0003^f4n02|i,#+..",
-".......++#(8d8<e_c7[_e;$@+.........+@$^0002f10002|~-#+..",
-".......+@@(cg6[_<868_(;*@..........+%#m0000240002m~>@...",
-"........++):[_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__<<e;*@+......+%-5pa001^!~|2z44a~>%+.",
-"......@$*):[6<(-':<<::'&*@+.......@=,/|0049/^o04aai5>#+.",
-".....++%$*:[dc5>(_8[e;)=$#+......+%%&,f0009]9200|i},=$@.",
-".....+@%$=e[6c}5__<_()=$#+.......+@$=,900nlo1102m/,-$@..",
-".....+@##$e<77[[[__e;&*#@+.......+%$=-9400044l3|~!-$%+..",
-".....+@#$=,_c876[<e(=$#+++.......+@=-,^1n00002f^!=$%++..",
-".....+%#$=e<876d8<e;&##@+........@%$-,92n000019~!=$%+...",
-"....+@@$*=,_[mbg6_'>&$@%+.......+%#=-,^1000001^]!=%#+...",
-"...++%##=&j_c6gh6~'-$$#++......++#$=,!93n00004{/-=*%+...",
-"...+@$=->':_p86d8<e;-##@+......+#-,/]^f1q00004f{/=$@+...",
-"..+%=);:<[c[cp[pccc_'$#@+.....+#,/if2000040qn002i-$#@...",
-"..+#&;:[6d88<<:e<868e&#%@+....%$5i|0000n44a94000|!=%@+..",
-"..@$)e_[868[_:';:<6[:&*#@+....@=}|2000044f^i|q00f5-*%+..",
-"..+#)e__<<ee;>-&;(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/=$%@++++%$$@@...",
-"+@$=(:[[[<e-*#%%+++@#$##%+..+%&,ma0000|/-$##@@@#$==$#@..",
-".+@$;::[[c:>$##%%%%#$&=$#@+..@#&~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,,-==##@+....",
-"......+%$=(<8<e'-=$##+@+..........+#-,m404f{/,=$$%@+....",
-"......++@$)(::__e&*##@++..........+@#=/m|a239/-$$@@+....",
-".......+@@#=)e_c:;#$@%++...........+##=,/|20a]==##@+....",
-"........@%#$=;e_:(;&$#@+............@%$-,i|2a^]!-$%+....",
-".........+@##&;(eee(&#@@.............+#$=5~||||^!=#%....",
-"..........+@@$=&(:[:'=#%..............+@%=,j^20ai,$#....",
-"...........++#$*)(:e;=*@+..............+@$&,_m1r],-%+...",
-"............++@$*&;);)&$+...............+@%*>5~}~}5&+...",
-"..............++%#$=&;)#+.................+@%$&,5~/&@...",
-"...............++++#*)&$+..................++@@&-}5=+...",
-"................+.++#$#+....................+.+@$=$@....",
-".....................++..........................++.....",
-"........................................................"};
+"....................................................................................",
+".......................................++++++......................++++++...........",
+"...........+.+......................++++@++++++.................+@+@#@@@@++.........",
+"........++.++++++++................+@@@###$#%@@++..............+@@#$$$*$#%@@+.......",
+"........+++.+++++.+...............+@####&#&&$%%@+.............@@$$$:,:,,*$#@@.......",
+"......+++@@@@@@@@@+++............+@$*=---;;>,'*$#++..........@%,|5noonneo4|,$@+.....",
+"......++%##%#####%%+++..........+@#')!!~~~{]!)>*&@+.........+#$^0g6p0fff60nd,@+.....",
+"....+++%#$$$#$$$$##%@.+........+%%$)]/(_]_//_{~):#@+.......+#%:<aaaaaaaaaf1e;$%+....",
+".....+@##&$###$$###%@+.........+##,~][_]{{}_}]{~=#@+.......@$*|1aaaaffaaaafg5*%@....",
+"...++++#$&$#@@%##$$$@+++......+@$,=!/2_!)3~!{_/]>&#@+.....+%,456aaag<q0gfaaae,$%+...",
+"...++@%#$&##@@@+#$&&%++......++%:=3](7}~----!_8/~:#++....++#;90aaaaqoooogaaa1;$@+...",
+"....@%%$&&$@@+@@%$:$#+++......+@*)~}[7]b,,,,~(c/~*##+.....@#de0aaaa<44440aaa1|:$@...",
+"..++@###$&#@@+@+%$&$#@+++....+%#=~{}([{3,*,*3_7/!-&$@....+%:51faaaf<4444qaaa6o,:@...",
+"...++##$$$##+@@+%#&$#@++.....+@$=!]__(!b,,,*~]7(!>*#@+...+%: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<aaa14-$@...",
+"...++@@#$&$#@@@@%$&$#@+++....++#*=3]/7_d,---~_2/~*$#@....+@$|90aaajt4oooqaaap|,$%...",
+"....+@@$&*#%@+%%#$&$%++.......+@&,=}2c(~-->)!(7_~:#++.....+#,49jaaapooee6aaa1;$@+...",
+"...++++#&&&%@%@@#$&$%+.+......+@$&'!28(d-;;3{(8/~$#@+.....+@:;46aaatoee<faaa0,$@+...",
+"....+++@$&$%%#####$#@+.........+#&*3_[}!b~~!{]_~>$@+.......@$,|1aasg<<tg6aa69:#@....",
+".....++@%#########@@+++........+@%$>~{{!^!{]{~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<ee<019-@......",
+".....++%#&$#######$#@+.........++#$3]2_]!!!!{]]!'#+........+@$,0aaaagg6g6aa6^$+.....",
+"....+++#&&&$#####$&#@+.........+%$:![82}{!{{]_[]=#+........+#:;6aaaaff6faaaa9$+.....",
+".....+@#$&$$@%@%##$#++.........+#:'![8/]~3)3!]({=#+........+:;4faaafqq<06aafi$@.....",
+"....+@@#&:##%@@@@#$#@+.........+$')][8}!;;-=){}!=#+........@,4haaaagenno0fa65$+.....",
+"...++@@$$:##@@+@@%##++........+@:=)][7]3-,,*=~]!'@+.......+%;50aaaaqo44|91a6^#+.....",
+"....+@%#&&$%@+@++@@@+.........++$')][8_d,,**'=)=$@+.......+@-4haaaa<44b|49hi-%+.....",
+"....++@#$&$%@@++@++@+.........+@$*=]/8_~,,*&****#+........+@,d9aaaaq44|;|dd;$+......",
+"....++@#&&$%+@@++++............+&*=][8_d,,*:&$#@++.........@,d9aaaato4|;,:$#%+......",
+"...+++@#$&$#%@@+++++...........@$&'!_2}^b-,:$$#%+..........@:,46aaap<n4;,&$%%.......",
+".....++##$$##%@++++.+..........+@$&~](_{!b>&:$#@++.........+%,;0aaafp<n;;:$#++......",
+"...+.++@##$$##%@+++..+........+@%$$){]__}!;*:##@@+........+%#:,efaaaapn|;:$#@+......",
+"....+.+@@##$$##+@+++...........+@#$-3!{i_!d-':##++.........+#$,o<gjfsptn4;:$@+......",
+"....+++@@@##$###@+++...........@@#$,>3!](]^~;,&$@+.........@#$,49<gasarte4,:#@......",
+"....+.+++@@#$#$##@@+++.........+%#&*,-d5}}i]~>:##@+........+%:,|4oqrasfjtn;:$@+.....",
+"....++@@@%%$#$#$#@@++.........+@$$:,->35]}}}!)-*$@+.......+%:,|4onqrjsssg<o|,%@.....",
+"....++@@%%%#%#$#$###++.........+$*=>;|!!!5i_}^!)*#@........@*|onetppgrjssfpe|$%.....",
+"...+++%%%#%#%#$$$###@++........@:'>33!ddd^}((}]~=#%+.......%;^e0<pqttraasaag5:%+....",
+"....+@@%#######$$$$#@+.........@&=>d!!^!!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<<n54^d-$+......",
+"...+++@#$&$##%@@++++..........+@#$'!(7(]^~=*:$$%+.........+@$,46aaaagq9|b,:$+.......",
+"....+++#$&&$##@+++............+@#$*!_7[}{!=*$$@++.........+#:,|gaaaafq9|,:%@+.......",
+"...++++#$&$$##@@++++..........+%$:'{_7/(]!)*:$@@+.........+%:;4gaaasage|;:%%+.......",
+"....+@@#$&$$$#@@+.............+@$*-{_2/(i!)=:#++..........%#,|5faaaajg<5;:@+........",
+"...++@+#$&$$##%@@+++..........+%:,={(7/_]!3=*&%++.........+#;49faaaaa605|,#%+.......",
+"...++%##$$$#%%@+@+.+.........+@@')~]_/}{~)>,:$%@+........+@%4etaaas6q<94;:#@+.......",
+"...+@###$##%@@@++++...........+#=~{]}}{~;-':$##+++........%$i0faaafpeo4;,&$@@+......",
+"...++##$###@@@+++.+++.........@#={}}_i!;-,::&#$%@+........%$9fassjpeo4|;,::#@+......",
+"...+@%#$$$##+@@@@%@++.........+#=~{}}}!b,,,,->='$+........+$51aaaap<4444o994,@......",
+"....@%###$%%@@@@%#$%@+........+@'3!{__!)->->3!{~'@+.......@#406aaag<onnn<ga14#+.....",
+"...+++@#$&#%@@@%%$$$@+........+%:=3]}/{|--;3!_[]>#+.......+#;90faag<one06aaa9$+.....",
+"....@@@%#$#%@#%###$%@..........+:*=~{_{~;33!!{}!=@+........@,d51fsfte<<g6aa6i%+.....",
+".....++@@###%####%#@++.........+#$*>~!!!~!!!{!!):@+........+$,d91fgp1g66666h;#+.....",
+".....++@@@@######%@@+.+.........@@$*>33!{{{]{3='&++.........@#*|9006fffaf094,%+.....",
+".......+@@%%%%%%%@@++...........+@+:'=))~~~33=':#@..........+@@;49h<011009^;$@......",
+"......+.+++@@@@@++++.............+@#&:*'''==':&$++...........+@$,;d44555!;,*@+......",
+".........++.++.+++.................++@###$###@+++..............+@#$$:::$$%@++.......",
+".............+...+..................+++@+@@@@@+.................++@@%%##%%+.........",
+"...............+.......................++++++.+....................++++++.+.........",
+"..........+...........................+.+.........................+.+...............",
+"........+..++.......................+@+@@++.....................@@%%@@+.............",
+"........+++.++.+..................+@@$##$@@++.................+@#:$*:#%++...........",
+"......+.+.+++++...................+@$#&&$$#@+.................+#::,,,:$#@...........",
+".......+@@@#@@++++...............+@#*,=d3=:#@@...............+@:|4n<q5;$%@..........",
+"......+++@##$#%++................@@:'=!{_!>&$@++.............@#;491aap9,:#@+........",
+".....++@@%$&&$@++++.............+@#')3_28_3&&$@+............+@$4eqsaaaq;,:%+........",
+"......++%#$$&$$@@+.+............+@%,)!}/8({;,$%%+...........+#$4hgaaaage4,##@.......",
+"....+.+@@#$$&$$#%@++............@%#-b!_/7(}!b,#%@+..........@#:o<gaaaaag<4:#@+......",
+".....++@@##$$$$$#@+++...........@#$=)!]/[/_}!>&$@+..........%$:5egaaaaaapn,:#@......",
+".....+.@%##$&$$##@@+++..........+##=3^]([[(_{),:$@+.........@$:5qgjaaaaaf<4;:%+.....",
+"...+.++@##$$$$$$$#%@+.+........+%%&;~^i(((((}!d=&#@+.......+#$,nqrfsaaasagqo;$#+....",
+"....+++@%###$$$$$###@++........+%#&-~^i}(((_(i!~,$@+.......+#:,ntrjsssaasffq4:%@....",
+".....++@###$$$$$$$##@++........+%$:>~5]9((9/}}}!>&#@+......+%:;9qrjasasaasa69;$%+...",
+"....++@@#$$#$$#$#$$#%@++.......+#$,b!]__h(}_}_(]3-&%+......+$,4<gjssassassaj0o;$+...",
+"....+++%#$$&$$$#$$$$#@+++......+#:,)]_9//9_^_(/}!>*$@......%:;4<jssaassraaaap9|:%...",
+"....+@@%#$$$$$###$&$#%@+......+@$*;di(///(_^i/2_{)'&@+....+%*|nqfsaaassrfaaafe4,#+..",
+"..+.+@%#$&&&&$$$$#$$#@@++.....++:->{_[077h9_(_(_!)-$%.....+@;5efsaaaaasssaaa6<5,%...",
+"...++@%$$&&&*$$$$$$##@@++......@:>3_[8788[/9//h}!3=&@......@;90saaaaaaasaaaa60i-%...",
+"....+@@$$*&&&&$$$$#$#%@+......+@:=~}[78787/h__}]!3=:%.....+#;91saaaaaaaasaaa605;#...",
+"....@@@#$$&&&$####@@@+@+.......+:,>!_h[h[9]^!!33=':#+......%,4ngsaaaasjgrp0<94;:+...",
+"...+.++@#$##$##@@@@@+++........@#$*3!}}}_^!;>--,:$#@+......@$,|0gassarqenoo4;,:@+...",
+".....+++@####%@++++++.+........+@##-)!!{]d>*&&$##%@+.......+#$:o<ggffqe|;-::$#%+....",
+".....++@%@###@@++++.............@%$,)d!!!),$&##%@+..........@$:4eq1gf<4,,::%%+......",
+"......++@@@%#@+++.+.+...........+@%:=)b~~>*$#%%+++..........+@%>ih<109|:$##@++......",
+".......+@@%%%@@..+...............+@:'=))3=:@@@+..............@#;49hh05;#%@+.........",
+"......+++++@++++.................++$&**'':$@++...............+@*-dd44;:%++..........",
+"........++++++.....................+#$#$##++...................@$:::*$++............",
+".....................................@+++........................@+++...............",
+"....................................................................................",
+"....................................................................................",
+"..........+.+.+.....................++@+@+@+++..................++@@@@@@++..........",
+".......+++++++++++................+@##$$&$&$#@+...............+#$*:,,,,,:%@.........",
+".......+++++@@@@++++.............++$:*'''-'':&%@+............+@:;d44^544;,#%+.......",
+".....+.+@@%@@@@%+++..............@#&'=>>>=>)'*$@+............@$-^59e999h^d*#@.......",
+".....++@@#%######%@@+...........+%$'=33!!{{{!)'*#+..........@$*49111gffagh4;$+......",
+".....++@%####$$&$%@++...........@#:>~{{{{_([]!='$+..........@:;90fffaaaaa694,+......",
+"....+++%###$#&&&&$#@++..........%$:)!]}_}[78[]~=&@..........#:;h6asaaaaaaa1i-%......",
+".....++@%#####$&$#%@+...........+$&')~!{!]/[({~=*@+.........@:,5h0gfgaaaaf19;#+.....",
+".....+++@@%%%##$###@@+..........@%$*=>bdd^](]{~>:@+.........%$*|oe<ttrfaag09;@+.....",
+".....+++++@@%%####%@+..........+@#$&*,->;d!]{!3=*++........+@$:;|4onntgjjg19|@+.....",
+"...+..++@%%#%#$$###@++.........++##*->bd~]i(}!~>:%+........+%$:|oe<tprjaag19;#+.....",
+"....+++@%###$$$&$#%@+.+........+@#&-b!!]5_([({~=:++........+%$,o<ppfjaaaaf19;@+.....",
+".....++@%#$$$$&&$##@++.........+##&=~{_(/[77/]~=:%+........@#:,91faaaaaaaa1i;#+.....",
+"...+++@%#$#$$$$$$#@@+.........+@$&,~]___(_(/]!)'$+........+@:;4tfaassaaaage4,@......",
+"....+@@#$&$#####%@@++.........++$'>^_2(}!{{{~>':#+........+%,49faaaafgff1e4;$+......",
+"..+.+@%$$&$$@%@@@@++..........@%*>3_[7(5dd)>='$$@+........@#|nqaaaarq<<e5!,*%+......",
+"...+@%#$$&$#%@@@+++.+.........+#*3!_/7_!b;>-*:#@++........+$d06aaaap<eno|;:#@+......",
+"...+@%#$$$#@%@@@+++..+........@#-~{_/({3>--,:&$%++........@$50faaajqnoo4;,:#@+......",
+"....@##$#$#%+@++++++..........+%=!}}]_!;,**:$##%@.........%$i6saaape4||;,:$%%.......",
+"...+@%#####%@+@+++++..........+#=~{}]]!;,:**::$#+.........+$51aaafgn4|||;;,$@.......",
+"....+@%##$#@@%@%%@@@+.........++*=~!]}!b-;;))=)=&+........+@d90paap<onnee9h5-+......",
+"..+.+@@#$##@@%%#####+.........@@&*=!]}!)->3~!!!3*+........%@-|91aa6<on016660d@......",
+"....+++@#$#%@@%#####++.........+$:,3{_!)-)~{{!]~*@.........%:;40far<o<tfffa1d@......",
+"....+++@@#%%#%##%#@@+..........+@$&=3!~db3!{~!3=&+.........+#:;n061q<16f6609-+......",
+"......++@@@#%####@@@+...........@@#*-)3~~!!{~)=*$+..........@#$|5e0116661h9d:+......",
+"......++@@@%##@##@+++...........++%$*-)~!!~!~=*&@+..........+@%,|oe161660id'#+......",
+".....+..++@@+@@@++++.............+@#$:*'==)='*$#@............+%$:;do5999^d:$@.......",
+"........+.+++@++++................++@#$$::&&$$@...............+@#$:,;;'-::#+........",
+"...........+...+....................++@@+@@@+++.................+@@@%%##@++.........",
+".............+..+.....................+++++++.....................+++++++...........",
+"....................................................................................",
+"........++++++...+.................++###$%+@++.................+@$:$:$@@++..........",
+".......++++@@+@+...................$:*'==':#@++................:;d^i94;*#@+.........",
+".......@@#%%#@@++++...............+:=3~~!)':$#@++.............+;i0q16h4;:$%++.......",
+".......+@@####%@++.+..............+*=3~!{~),*$@@+.............@;9016f0e4|,##+.......",
+"......++@@@#%###@@++.............++&'=)~~!!~)-&#@+...........++-!5h16g6peo,:%+......",
+"........++@@%##$$%++++...........++%&*=)~!}_{;*&#@+..........+@$,|9eqgaafe|,$#+.....",
+"......++++@@@#$$##@++............+%#$&==){_/}~-*&@+..........+%$:,o9<6aaaqo|,%@.....",
+".......+++@@%%#$###%@++..........@@#$:,-;~^_]{{),$%+.........%#$,;4oeqraaff<4:#@....",
+"....++.++++@@@#$#$$#%++.........+@@$$:,-;)!5]}(!)&%@........+@#:,;4on<prjsafe,#@....",
+"......++++@@@%@##$&$@+++........++##$&,--bb!i([_):#@+.......+%$:,;4oo<<gjaaa0;:#+...",
+".....+++%%%#%##$$&&&%++.........@%$')3ddd^^}(28/~:$@+.......@#:4e<tttrraaaaaq;:%+...",
+"....+.+%#$$##$$$&&*&#@++.......+@#:){_}]]}(([7x[!,##+......+#:;hfaaajasaaaaap4:$@...",
+"....+++#$&$$$$$$&**&#++++.....++#$*!_7/(_(/[7ym7{,$#@.....++$,|paaaasaaaaavaf4:$@...",
+"..+.+@@#$$$#%#$#$$*&#@+.......+@&'>{(/(i4]i}h7y[!,$#++....+%,4e6aaajrjjsaaaap4,$@+..",
+"....@%%#$$$#@#%##$&$%++++.....+@*)3](/]!bdd!](8/!:&#@+....+#de1aaaagetqpfaaag|,$@+..",
+"..++@###$$#@@@@@#$&$#@++......@#=~]](_{b>--;~_2_d*&#++....%$51aaaag<nnnnpaaa<|,*%+..",
+"....@#$#$$#%@+@@##&##+++......+#=~}]__!;---;4}2_!:$#++....+$91aaaageooonpaaa1|:$@+..",
+"...++####$#@@@@@%$&$%@+.+.....+#=!]}]}!b,---~}7(d*$%@.....@$i6aaasp<4oooqaaat|,%@...",
+"...+@#$###%@@+@+#$&$%++.......+#=!}]]]3;-,,,!i7_~:$@+.....@$96aaaaqeo4o4paaa0;:#@...",
+"...++@#$#$#@@@@%%$&$#+++......+#'3{]]]!;,--;!_2_d:#%+.....+$^1ffaate4onnpaaat;:#+...",
+"....@@@#$$#%@@@@#$&#%+++......++:=3{}_{b-;;)!_2_3&#%+.....+@;50fsaf<one<gaaa0,$#+...",
+"..+.++@@$&#%@@###$$$@+........+@$&'~_[]3-;~~]_[]>$%+......+@:;41aaftneq1faaae,%@....",
+"....+++%#$#%@%%#%#$#@++........+#&*3]_{~-3d!!]_{>#@+.......@$,d0aafqn<qg6aaf9*@+....",
+".....++@@#@#%@####@@@..........+@$$'3!3d33!!!~3=:%@+.......+%:,^0g1<0qg6610i;%%+....",
+"......+++%@##%##@@+++.+.........+@#&'>)~~~!!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<<oo55d)-:@....",
+".....++@#$###@%@+++++++.........@@$>{_{!!3>*::&&$$#+........%#:9faffg<n|;;;,,:$@....",
+".......@@@##$#@+@++++...........+@@')~{i}!;:*$$$#@@.........+@#4h1ffape|b,::$#@.....",
+".....+.+@@##$#%++++.+............@@:')!]/!)::$#@@+...........@#;^e6aa6e;;,$%@+......",
+"......++@+%#&$@+++.+.............+@#:*~][];:$$#@+............+@&;41aar<;,:$#%.......",
+"........+@%#$#%@+++.+.............+#$*3{_{3,:$#@@.............+$:|06a6<4;,$@@.......",
+"........++@###%@@++...............++%$=!]{)>'$#@+.............+@$&96af<n4,$#+.......",
+".........++###%@@+++...............@@#=~]!3>':#@+..............@#$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<qqqgfs69,#@....",
+".....++%#&$#%%%%#$&$#+++........+%#3]2}!3bdd{(7_d:#@+.......+#$0aaag<<<<faaaq;:#+...",
+"......+#$&$#%#%%#$&$@++.........+@$~(7_!dddd^(7_3*$@+.......+%:1aaagttttraaa0;:%@...",
+".....++#$&$#@%%%#$&&#++++.......+#$~/8(^)bbb](7/!:##@.......@$*1aaag<<<<raaap|:$%...",
+".....+.#$*$#%%%@#$&$#++.+.......@#$!/c(5bbb;^(8(!,$%@+......@$,6aaar<<<<paaap4:$@+..",
+".....++@#&$$%####&&$#@++.......++#&3(7_i~!!!}[2/!,$#@+.....+%$,0aaarptppsaaap4,$#+..",
+"...+.++%#$$$$$$&$&&$%@++.......++#&3]/(_(9(h/07_d-$#++.....+@$,0aaasssaaaaaaq4,$@+..",
+".....++@##$$&&&&&&&$#++++......+@$&=~](h[788877(~,*#%+.....+#:,91asaaaaaaaaat4;:#+..",
+".....++@##$&&&*&*&&$#+++.+.....+@#$=!{/2878887[(4*&$@+.....+#$,9qaaaaaaaaaasp4,:#+..",
+"....+++@#$$$&&$$$&&$#@+++......+%#&3!((/7[[//[7_!-&#%+.....+%:,<fsaaaaaaaaaapo;:%@..",
+".....++%$$&&&&$$$$&$#@++.......+%$$~}[0[2h(9(h7_!-*$@@.....+#:,qsaaaaasssaaspo;:%@..",
+"....+++%$&$&$$##$$&$#@+++......+%#:d}[/0[(i^}/[(!>*$@+.....+#:;qaaaaasjrsaaagn|,%+..",
+".....++%$&$$###%##$##%@++......+%$&~_7(}i^!d^i(}!;,&@+.....+#:;qaaaajrptgfaage4,#+..",
+"...+.++%$&$#%%%%%#$$#%+++......+@%:~(7(^ddb|~^_i!)=&#+.....+%$;1aasrtt<<praag<o;$@..",
+".....++#$&$#@@@@%####%@++......+%#:!/7_!--;-d^]{!);:%@.....+#$;6aaapnnnntpffg09;#@..",
+"...+.++#$&$%@@@@%#$$#@@+.......+%#$~_8}db-;-d{/_!)=&@+.....+%:,0aaatennoqjaa6eo-%+..",
+".....++@$&$#@%@@%$&$#@@++.......@%$~_7_!;>;-d}2/!='&++......@#,1aaapennotaaa694-@+..",
+"......+%$&$%@@@@%#&$#@++........@@$~_2_~;--,~}7/{>*$@.......%#:0aasteno4qaaaf9d:%...",
+"......++####@%@@##$#%@++........++%=~]!~bb;;~{_{)*$@+.......+@#51a61<<eeq6afhd,#+...",
+"....+..+@@%@#%%%%%%%+++.........++@:=)33~33)~~~3'$#@........++#;ih<0t0<0q110^,$@....",
+".......+++@@%###%%@@+.+...........+#$&=)3~~~3)='&@@+..........+$,;5h01010h94,#@+....",
+".........++@@@+@@++++.............++%#:'>====*'&#@+...........+%%:;495i95dd-$@+.....",
+"........+.++++++++++...............+@@#$:&&&&$##.+.............+%#$*;--,,::$++......",
+".............+.+.......................@+@+@++++..................+@@#@#@@++........",
+".................+......................++++++......................++++++..........",
+"............++.+......................++@@@@+++...................++@@@%+++.........",
+"..........+...+.+...................++++@@@@@+++................++%@#####%@+........",
+"........+.++@+@@@++++..............++@$:'*''*&$#++.............+@#:;dd44|,:$@+......",
+"........+++%%@@@@@+++.............+@%#*=))))>*:&%@+...........@@#$|5<hhh9d;,$@+.....",
+"......+.++@%%####@@+++...........+@@$$'3~~~~3>,:&@++.........+@#:,4<11110n4;,#@+....",
+".....+++@@%%%%%@%@#%@+++........+@%:=)33~~~333~)'&%@........+%#;5<001q1<q11e4,$@....",
+"......++#$###%%%%$##@++.........+@#'!]!!~3))~{]{>:$@+.......+%:5gffgqq<<0fafe;:#+...",
+"....+.+%#$$#%%@%#$$$%@++.......+@%&)]/_{dd;;!_/_3'&#+......+%%,haaafq<eegsaa14,:@...",
+".....++@$$##%%%@@#$##@+++......+@#&3}/]!3);>3{(]!-*$@+.....+@:,qaaap<ennqfaa15|:@+..",
+"...++++##&#%@@@@%#$#%%@+.......+%$&~}[]d;;--b{}{~)-$@+.....+#:,1saaqenoo<faf1e5,#+..",
+".....++@$&##@@@@@%###%@++......+@$&3_[]d----)~{]~)=:%+.....%#:;qaaftooooeqafg09;%@..",
+"...+.+@#$&$%@@@@%#$##@%+++....+@#&*!_7}d-;-,b!]]!3>:%@....+@$,|1aaatnnoo<gafg09;#@..",
+"....+++#$&$#@@@@@#$###@@.......@%#:!(7}4-;--b!_]!3>:#+.....@$:bgaajponno<gsag<9;$+..",
+"....+++#$&$@@@@@%##$#@@++.....+@$$:^/7_~-;>;d!_}!3=:@+....+@::|gaaspnnnntgaa609;#@..",
+"...+.++#$&$$#%#%#$$##%+++......@%$*!/8/5d|db!}/}!)'$%+.....%$,b6aaarttt<gaaage4,#+..",
+"....+++#&&&$$###$$&$%@++.......@##:^[82h}]5]}([_~=*$@+.....@$:|gaaaasjrjaaaa19|:@+..",
+".....++#$*&&$$&$$&&$#@++.......+%$:![c8[(//([[7_!'&%+......+#:;gaaaaaaaaaaaag4,$+...",
+"....+++%$&&&&$$#$$$#@+++.......+@#:~(772[//}_((]):$@+......+%:;1aaaaaaaaaaaah;*#+...",
+"......+%#$$$&$###%#@@+.........+@##){_([[(]!!!~)'$@@.......+%$:efaaaasap16104,%@....",
+"....+++@%#$$$$#+@@@+++.+........@#$-d{}(/}4--='*$#++........@$:oqfsaaapnoo4|*$%+....",
+".......+@@#$$$#@@+++++..........++#*>d]_[i!>-:&$#@@+........+@$d9qfaafgno|;::#@+....",
+"......++@@##$##%%@++.............@@&*-!5_]!d),&$#+++.........@#,|5gjaarqe4;&$@++....",
+".......+++@#$$$#%@++++...........+@#$&){(_}{d-&#%%+..........+@$,;hfaaafqo,:##+.....",
+"........+.@%#####@++..+...........+@##=~}]]]!>:$@++...........+@$:n1aaaa1n;:#%+.....",
+".......+.++@%###%@@@+..............@@#:=3~!{~>=*$@.............%#$)5016f1eod:@......",
+".........++++@@##%%@+...............+%$$:=)~~33=$+..............+%:,;5e1100i,@......",
+".............+@@@%%@++...............++@%:=3)~3=*@...............+%%$;i00109;@......",
+"...........++++@@+@++.................+@@$:'''':#+................+@#:>^!^!;$+......",
+"...............+++++...................+++@##$#@+..................++@#$&:$#+.......",
+"..........................................+++.+.......................@++++.........",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+".........................................++++........................++@+...........",
+".............++++......................++@$$#+.....................+@%*:$@..........",
+"..........++++@%@@....................@#&*=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<ga69,$@+...",
+"...++++@%#%@@@@@%%$#@++.......+@#:*=~!d)=--*)!_{):#@++....+@:;|9110enoo4e6afe;$#@+..",
+"....@@%%%##@@@+@%%$#%++++....++%:=)3~!~;--,,b~_{>:$#@+...+%%;5e01gqeoo44<gafe;:$%@..",
+"..+++%%###@@+@@+@#$#%+++.+...+%#'3~!!!)>,,,')!_{):&#%@+..+%$400gg6<n4444egafe|,:#%+.",
+"..++@######%@@@%##$$#%@@+++..+@$=!]]{^~;>--;!]/}^)=,:$#..+#,96aafgqennnepaaag<54;,$.",
+"..++%$&$###%%%###$&&$$#%%@+..+$:~}[_]!!~)d!!]/2[_}{3)'&+.%:;1aaajfgt<<pgaaaaaaf1e4,@",
+"..+@#&&&$#####$$$&&&&&&#%%@.+@$*{[8[_!!!!{}(/28777[]~)*%+#:dfaaasg6pgfaaaaaaaaaa1hd#",
+".+++#$&###%%@###$$$&$$$##@++.@$*~/7}!!~dd!{]__////}]~=:%.#:|6aaaf1qq0g6aaaaaaaaa19;%",
+"...+@#$#@@@@@+@@@#%#@#@@@@+..+#:){_!)=>--=)>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<aaa1^;$+...",
+"............++++@#$$%@++.............+@@#$**)]/}~'$#+............+#%:,b|0aaa04,$+...",
+"..........+++@@#%%##+++.............++#$&'=3~~{~=:#+............++$:,4n006f1i;:@....",
+"........+.+++@###%@@+++.............+@#$,)~{!3==:#%+............+#&,4e1f6095;:#+....",
+".........++@@@#$#@+++...............@@&*'3{}!):$#@@.............@%,|40fa6h;-$@%.....",
+".........++@##@#@@++.+.............+@$')!!~!)'&#%++............@#:^h666604,$#@+.....",
+".......+++%#$#%@++++...............%$&){}{~='$$@@+.............#*;hfa619!,:%%+......",
+".......++@%$&$%+++................+#&'~_2})&$#+++.............+$;d6aaah,:$@++.......",
+".......++%###%@+.+.+..............+&')~]}~=&%%@+..............+-^h1aa1i,$#%+........",
+".......+%#%%%@@.+.................+:)!~33=:@@++...............+;h61u05;#%++.........",
+"......++##%@+++..................++'~]~=&&$@+................++^1agi;-:%%...........",
+".......+@#@+++.+...................:=~=*&#+++..................;90id-$@++...........",
+".......++@++.+.....................#&'$$@%+....................$-^,:%#+.............",
+"....................................++++++......................+@++++..............",
+"......................................+...........................+.................",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"...........+..+.+....................+++@+@+@+...................++@@@@@@+..........",
+".......+.+.++.++..+................++@+%@%#%@+@++..............+@@@###$##@@@+.......",
+".......+.++++++@@++++............++%#&&:*****&$#@+...........++#*,,;|||||;*$%+......",
+".....+.+@@@@%%%@@@+++............+@$:===>))3)=*&$+++........++@,;5599e<ue5|;*@++....",
+".....+.+@@#@###$#%@@++.........+@@#:=)33~!{{!3>':%++.......+@#$;500016ff6094;$@+....",
+"....++@@%%@#@######@@+++......++#$*=)3333!{}{!3>':&#+.....++$,|5e<000gfafg094;,$@...",
+"...++@%@%#@%@%$$$##%#@@++.....+@:=3)3~);>~}/}{!33>'&@+....@#;i00uq<en1aaafp0094,%+..",
+"...+@%###%%@+##$$###%#@@.+...+@#=3{!~3)-,~][(]!!~3)*#@+..+%$5166g0eo4qaaaafg11hd$#+.",
+".+.+@###%%@@@%$&$$%###@@++..++@$>!]!~3>-,~}2/}!!!!3'&#+.++#*96a6q<9o4qaaaagggg1^,$@.",
+"..++@#$#@@@++%#&##%%@%#@+++..@$&){]!>--*:3][}!b33~~>*&$+.%:;hfageoob|qaaag<q01<9|;:+",
+".+++%###@++@+%#&$#@%###%@@+++#$*3]]!=::**b][}!>;~!~)>*$%+$:|0aa19||||<faagneq6g<5d,#",
+".++@%$$@@@++@@#$#%@@@%%%%@+.+#$*~]_3-:::*){_]~;b3~~3)=:@%$,d1aa0o;;;;<faaqn<qq10h9;%",
+".++@@$$#+@+++@%######%%%%#@+@$:'3}(!-:&::-~]{!~!~33~~3'#@:;!qaa1o;;;;n1ffg11q<0110^$",
+".++@##$%%+++++%%####%%@#$#++.$*=!]_3;&:&&,)3!!]!d33!]{=#+*|i6aaqn-;;,4e1gfjgq<<6jfi*",
+".+++##$%@@+@+@@@%#$#%%@###@+@$*'~}(~>:&:$,->~!}]d;)!]{>&@:d51aagn;,;,4oeqfsjqe<zaf9,",
+".++@%$$#@++++++@%##$#%%%##@+.%$'~](!-*:$:&,-3{}]!33~{!'$+$:d1aa6n||,;;4oq6aa6q0g66^:",
+"..++%#$#%@++++++%#$$#%#%#%@+.+#&3}/{),*&&&:*b{(_{3~~!~'#.@$-uaafe4|,,,;|<6aa6q<161^$",
+"...+@$$#%@@@++@+@##$##@#%%++.@+$)]_!3-*:&$&:={__{!3~~3*#.%@:haa60o||,,,;9faaf11110d$",
+"...++@#%%@@@@+++@%#####%@@+..++#')!33)>--*::-3!!{{!3)'&+.+@$^h100en5o|;;o066ff60e5-@",
+"....+++@@#%@%@@++@@%%$#%@+.+..++$*'=)3)>)-*$*=>~!}{3**#@..+%:d^ih0h9ho|,|oeqfajud;$@",
+".....+++@%#@#@@++++@#$#@++.....++#$:=~~33>,$&**=!_])&#++...+@$:d9010094,;|d96aah;$%+",
+"...+..+++@+@+++++++@+@%++......+++#&*'''':&$$&&'=))*#++....++@$,d^^^4;'::,,d90hd$@+.",
+".......++++++++++++++++++........+@@$$$$$$$$###$&::$@+.......+@#&*,:,,*:$:$:';;:@+..",
+"...........+...+...+.+.............++++@+@%#@@@@++++...........++@@@@@$$%@#@@%++....",
+".............+.+......................+++++@++++++................++++@%++++++......",
+"...........................................+...........................+............",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+".....................................++.+........................++.+...............",
+".....+.+.++.+.+...............+++@+@@+@+@+@+++............++@@@%@@%@@@@+++..........",
+".+.+++++..+.++.++.+..........++###$%@%%%#%@@@@++.........+@$$::#####$###%@@+........",
+".++++++++++++++.+.+..........%#$$$:&$$##$#$##%@+++.......#$,*,;,:::::::$$#%@++......",
+"..+@+@@@@@@@@@@@@+@+++......+#*'==--,->)))-,***&#@+.....+:|^55oooone<eo4|||,:%+.....",
+"++@%@#%%@%#$$%%%%@@@+++.....@:=))~33)d!]]!33>>>':#@+....@;5h0110<qgfaf10e994;:%+....",
+".@@########$&$$%###@+++.....@*)~!!{{!!}(2(}~!~3)*$#+....#dh0666f6gaaaaa1111hd*$@....",
+".++@@%@%%%#$&$#@@@@@+++.....+&'=)3)3b3](2_!))>>':$%@....@-^ne<<qeqfaaag<e99^;:#@....",
+".+++@@%%@@#$&##@@@@+++......@$$*,-;;>;!_[}!>--,*$#@+....%:,d4onneegaasgnoo4|,:#+....",
+".++++++@@@#$&##++++++++.....+##$$&*,,;!([}d,*:&&$#@++...@$$:,;|44npsaato|;;,:$#@+...",
+"++@+@@@@@@%$&$#@@@@+++++....#$'---,->;^_7_~--,*:$$$@+...$,4ooo4onegaaapoo4|;,::@+...",
+"++#@@@@@@##$&$#@@@@+++++....&'33)--;>b^/29^;-;,,:&&@+...,^01ennne<paasrenno4|;,#+...",
+"+%#$#%@%#%#$&$##@@@@@++++...&){}!3;b|d}(8(^b;->-,*$$@...-06ap<e<<<saaap<enno4|,:%...",
+"+@%#%%@@@##$&$#%@@%@+++.....$=~!33>>)|}/8({b)>>-'*&#+...:i160<ne<<jaaaf<enno4|;$@...",
+"++@%@%@%%@$&&$#@%%+@@@++....$*=3>>>)b3]/7(^);>,=,*&#+...*d9099ne<<saaapee9o54d-$+...",
+".++@+@@@%%#$&$#@@@@@+@++....@&*'',->;3{/7_!;;=-'**&#+...#'d^4o5ne<faaageeoo4d|,$+...",
+".+++@@+@@@#$&$#%@@+++++.....+#$:*',-=;{_7_!>--**:&$++...+$,>|44o9nfaaapnood|;,*%+...",
+"..+.++++@@#$&#%+@+++++.+.....@@#$&&:,-!_2]~**:$$##@+.....@#$*-;;4opaaa0||;,:$$%+....",
+".....+++++%#&#%++++...........++@@#$$&~][]>:&##@++........+@#%$,,;1aaae;,:$#@+......",
+".......+++%$&#%++++.+...........@@%#$$3}[]>$&##@+...........@%%$:,0aafe,,$$@@.......",
+".....+.+.+@#$#@+.+...............+@##&3]/{;&##+@+............+%$:,0aafe,:$@%+.......",
+".......+++%$$#%++++..............+.###3]/{>&##@+.............++%$:<aaf9,:$@+........",
+".........+@#&#@++.................+@#$)][{>&$%++..............+#$: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<<<t<ttpfsf9;$@+",
+"....+++%#$$#%%%@%%%%#$$%++.....+%#&3][5!bbbbbdddi(})*$@+...+#$,0aajp<<<<<ttpjaa<|:#+",
+".....++#$$##%#@#%%##$$$%+++....+%#:~_/}!bd;ddd4{}h}b:$@+...@#:;0aaart<<t<ttrsas<|:#@",
+"...+++@@$$$#########$$$%@+.+..+@#&*~}/_i{^^^^^^i(/(d*$%@..+@$,bpsasfprprrrrjsaa<|,#%",
+"....++@##$$$$#$$$$$$$$$#+++...+@#&,!](_}_]i}_(_9//}4,##+..+@:;4qaasssjjjssssaast4:$@",
+"..+.+@+#$$$$$$#$$$$$$$$#@++...+@&'-!_/h(9(_9(9(/(h_~,&#@..+%,4ogsaassssssssaaaap4,$%",
+"...++%###$#$#$$$#$$$$$#@@++...+#')!{}_}___(_(h///_}3;:#@..@$406asssssssssaaaaaaqn|&%",
+"....@#$#$$$#$$#$&$$$$$##%@++..+%={}___9}}9i((h/h_(id>,&@..+$96asassasssssaaassj<n4,%",
+"..++@$$$#$#$##$$$$&$$##@@++...@#)](_}_i__}_9(/[h_i!3>'&+..%$haaassjssjsssaaasjgq94,%",
+"....@@####$##$##$$&$$##%@+++..@%')!{i}i]ii}i_h7h(^!;,&$@..@#4hgffsjjfjjjsaaasrpe4;*@",
+"....+++%$#$#$##$$&&&$%@@++....++$*-35}i]]^]i([8[_d;-:#@+..+@,doqrsfjjrjjaaaasqeo;:@+",
+"...+.++@%$######$$&$$%@++.+....@%$:;!}]^5^5^(/8[i~-*$#++...%%:;egsjrrrrrsaaajto|:$@+",
+"....+++##$####%##$$$##@@+.+....+%#&3](i^{!~45_(({~>*$%+....%#:,<fajrrpppraaafqe|:#+.",
+".....++%#&$#%#%%#####%%++......++#&b][}^d4dd!^i{!~)*#@+....+@$,<sasrttttprjfg0e|:#+.",
+"....++.##&#%%#%%%##%##%@+......+%##3][]~|dbbdd!~~~3'#+.....+%$:0aafptt<<t<p1g104$+..",
+"......+@#$$#%%%@@@@@@@@+........@@$)]_i!dbbb;);>>>'&@+......%#&efajpt<<<<eee994,#+..",
+".....++@#$###%#%@@++++++........+@#>!_{!!~d3>-'**:$#+.......+#$96afgpt<<eo4||;,$+...",
+".......+@##%##%%%@+++.+..........@@'3!{!!!3b),$&#@@+.........%%^0ffgggq<e4,,*#@+....",
+"......++@%#####%@@+++............+@*)3!!]{!3>*$#%@+..........+#|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<qqg1109d#+..",
+".....++@@@#$$$@@%@@@%#@@+......++#$'=){9/}~>;>>)3~3'#@+....+@$:49<fsaaqnnn9e0104*%+.",
+"...+..+++@##&##@+@+@@%#@++.....+++#$:,~}[]d,,,*')~3=&#+....++@$,;40saat444|oh105-$+.",
+".......+.+%#&#%@+++@@%%@++......++%##:3]/{3,*&&*=~3'&#+.....+@#$:;0aaa<4|;,d900!-$@.",
+"......+.++@###%@@@+++@+++........+@%##=!{{3>-*&&*':&#+.......+@%$:51af0eo|,,~^;-$@..",
+".......+.++@#%##@@+++++...........+@%#')~~!~),#$$##@+.........+%#$4e111gh4:::*$#+...",
+"..........++@%%##+++...............++@$*))~!3'$#@%++...........+@%-4e01g04:$#%@+....",
+".........++++@%%%+++++..............+@$$*=3~3'*&#@+.............+@:,d90105|-$%+.....",
+"...........++@+#%@@@+................+@#$==~3==*$++..............+@$&!91095d*@+.....",
+".............@@#%%@+++................+++:=~3)=*$@+...............+%@;910h9d:@+.....",
+"............+.+@+@@@+..................++#*''=='&+.................++$;^^ii!-%......",
+"..............++++@+++..................++#$:*=*&#+.................+@$:;did'$@.....",
+"................+++@@.+....................+$&'*&@@...................++:-^d-#@.....",
+".................++++.......................+$&$#@......................@:,:$%......",
+".................+...........................@+++........................%@@+.......",
+"....................................................................................",
+"....................................................................................",
+".............+.........................++++++......................++++++...........",
+"..........+....+....................+++++++@++..................+@+@@@@#@+..........",
+".......+++++++@@@++................@$:$$#&'=*$@+...............%*;::$,4id,%+........",
+".......++@@++@@#@@.+..............+$*=*:$')!):#@+.............@*d5d;:4h6e;$#+.......",
+".......@@@@++%#$%@++.+...........+@:=)=::>!]~=$@@+...........+@;50o|;n6a15:%#+......",
+".....+++%##@+@#$#@+++...........+@@'3!3-:3{/!>$$#++.........@@#^060o|<fafn,:$@+.....",
+"......+@#$#%@%#&#%+++..........+@@#={}!),3{[]b*##@++.......+%#&9fa6e4qaaa<|:$%@+....",
+"....+++@#$#%@#$&$%+++++........+@#$)]/{d>!_[]d::$#@+.......+%$*haafqngaaa<|;:$%+....",
+"..++.++##$#%@##&$#@++++......+@%#$$~]/{d>!_7}4,:&#%@+....+##$:,qaaf<ngaast4|,:$@+...",
+"...++++%$$$#%#$&$#@@+++......+#$#$:~_/}~b5_7}!-,:$$++....@$::,;0aaap<rsajpo4;::@+...",
+".++++++##&#%%#$&$%@@++++....+@$&&$:~}/i~b^(7_4-,&$$%++..+#,,,,;qsajp<raaspn4;,:$@+..",
+"++@@@@@#$&$$%$$&$#%@@@+++...@&'>>>={(7(5~_h7/^d;;,:&%+..%,^99n9faasppsaaapten4;,#+..",
+".+%##%%$$&$$#$&:&$#%%%%+++..@*3!~33}[7(_5(2c2}~db>;&#@+.@d061qqaaaasrsaaaspt<en;:%+.",
+"+@#$###$&&$$$$&&&$#$##@@+...#={]]{]_[8[(}h787/i5!!)'$%+.$9faaffaaaaaaaaaaarrrq04*#+.",
+".@@%%#%$&&$$#$&&&$#%%%@+++..@')~~~~_/7/(^_27h_!!d)>:#@+.@^h1110saaasrsaaasgpqe9;:#+.",
+".++@@@+#$&$#%$$&$#%%@@++....+$*'==={h[}^4i/7/id);-*$%@..+:d^559faaarpjaaaj<<eo|,%@..",
+"...+.++##&##@#$$$#%@+@++.+...++##&:~}[i!b^}h}^b>*:$#++...+@$:,;1aajp<rsasg<n|;:$%+..",
+"....+++@$&#%@@$$##%@@+++.....+++##&3}[{|>di(i!b-,&#@@+...++@$*;0aaf<ntjsjp<n4,:#@+..",
+"..+..++%#$##@%#####@+++.......+@%$#3]/{d;b!]{!~),&$@+.....+@%:&0aajtntgaff0<4,:#@...",
+"...+.++@$$#@@@%#####@++++......+@@$)]/!),)d!!^{d-$#%@......+%%:haa6<4eqpggf<o,$%%...",
+"......+@#$#@@@@@%##%@+..........+@#)!/!),-;3~!{3-$#@+.......+#$hfa6e4oe<p6f1o,$#+...",
+".....+.@#$#@++@@@###@+++........+@@={/!=**--)!]!>:$%+.......+%%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<faaap<<tte5;,%....",
+".++@%$$$##$$*$$###$#%@++....+#&'~(/}]!}[c[}!!]}!3=*#+...+$;4gaaafraaaaap6faf05d:+...",
+"+++@#&:&$#$&&&$##$$$#%@@....@$&>][c[}5/28[(^}}/_!)':+...#:;9faaasraaaasraaaa6h^,@...",
+".++@#$&$#%#&&$$%##$#%@@+....+$&,{/2_^!i28h}~^]_]!)=&+...@:;4faaarpsaaaaqgaaa6h5-@...",
+".+++#$$$#%$$&$#%%####%@++...@$&*{/2_!di(7(^b~{]{~)=$@...@:,46aasg<faaar<pfaf1h5,@...",
+".+++#$&#%@#$&$#@@###%@@+....+#&*!_2id;](7(!-b!]{~)=&+...@$,|gaajteraasgn<paf1h5-@...",
+".+++#$&$#%$&&$#%##$##%@++...@#$:!(7}!bi[8(^d!{_{~)=&@...@$,bgaajrtfaaapqpfafgh5-@...",
+".+++#$&$##$&&&$##$$##@@+....@#$:!(2h{!_[8[}!{}(]!)'&+...%$:|1aaafrsaaaspfaaa6h^-@...",
+".+++#$&&##$&:$$##$$$#%+++...+##&!/7/}5(7c[(!}(/_!)'&@...@$:;gaaaafaaaaafaaaafh4'@...",
+"..++@#$##%$$&$#%##$#%@@+....+%#$){_]!~}/8(]~!!_{~='$+...+#$,<aaagqsaaaaq6faf194*+...",
+".+.+@%#%@@#$&$#@@%%%@@++....+@#$=~{3);{(7(!>3~~~='&#+...+@$&5q6qen6aaagn<0619^;$+...",
+"...+++@@@+%$&#@@+%%@++++.....+@#&'>,,*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<o;,#+..",
+".........+++@#$$$$##@@@++..........+@@$,>!}[(_i!3-,$@+.........+@%,4npaaasfrqo4,#@..",
+"........+.+@+#$&$$###@@+.+.........+@#$:,!_[h}^^d>,:#@.........+#$:|4gsaasrgqn4;$@..",
+".......+.++++%#$$$#%#@@++.........+@@%&&,bi//_{!d>-:%@+.......+%#$,;4<jaasfpqeo;$@+.",
+".....+..++++@%$$$$$##%%+++.......@+@#$&:*~][(9_{!3>*$++......@%%$:,;|qjaassfp0n|:@+.",
+".....++.++++@%#$$#$$##%++......++@%##$&:,|^(/_(_^!)*$@+....++@#$::;|4<raaassfg<|*%+.",
+"......+++++@+%#$$$$$##%@++.....++@#%&$::,d5_((h_i!d'#@+....+%#$$,,;|4trsaaaajgq4:%+.",
+"..++++++@@@%###$$$$##%@+.+...+@#&:*,--;b3{]_(__}{~>*%@+..+#$,;|4ooe<<fjassasf09|$#+.",
+"..++@@#%%#####$###$$%%@@+....+#$'=3)3~!!}]i]}__]3),:%@+..@$,49<0<<gfasjassafqe4;%@+.",
+"..++@%#####$$$$#$###@+++.+...%&:>~!!!{]_/(_i}]]{),&$@+...%,;91666faaaaafaaaf<4;:#@..",
+"..++@%%%%%####%%%##%%%+++....@#&')~~~~!{{!~3d~!d)>*$@@...%$-^h111166661qqq1qe9|,@%..",
+"..+++@%%%%%@@@@@@@@@@@@++....+@$'>33333))=;=->->)==&%+...@#:490000<eh9n5o9o9e95;%+..",
+"....+@@@@@@+++++++++@#@+.....+@@:==>=='&$&$&$$$&>3>*+....+@#;599994;,,,,:,,;909;%...",
+"...+++@+@+++++.++.++++@+......++$*''',:&$###$%#$*''$+.....+@-;4^^4;,:$&$:$$,d^^:+...",
+".....+++++++.+...+.++++........+@#$$&&##@%@+@%@%$$#@.......+#$,:,,:$##%%##@#:,$#....",
+"........+..+..+..................+++@@@@+@+@++++.+...........++@@@@@%%+@++++.+......",
+"....................................................................................",
+"....................................................................................",
+".......................................++++........................++++.............",
+"..........++++++.....................+@#$##@++...................+%:,:$%@+..........",
+"........+.++@@++++.................+@+$*'':&#@+................+@@*d^4;,$%+.........",
+"........+.@@%@@+++................++%#*=3=':&#++..............+@#$di094;,$@+........",
+".....+.+++@%##@+++++............++@%##=~{~>:$#%@+...........+@##$:o1f19b,$#%+.......",
+".....++.++@$$#%++++.+..........+@###:$)]/{>*$$$@+@.........+@$$:,,eaafe|,,:#@@......",
+"...+.+++++%$&##++++++.........++@$$$:*~}7]~::&$$%++.......+@#:,,;|0aaaq|;,,:#@+.....",
+"...++@#%%@#&&$#%@@@++++......+@#*>3)>>{[8/{b;-,*:$#@.....+%$d90eneaaaa6<nn4|;,:%....",
+"..++%#$###$&*&$##%%%%@@+.....+$:){_{!!(2y[}!!~3)>=:$+....@:;hfaaggaaaaapgq0hn^;*+...",
+".++@#$&&$#&&'$&$####%@@+.....#$'{/7[_][8x7[9]]!!3)=$+....$,4faaaaaaaaaasaff60h5,@...",
+"+.++#&&$$#$$&&$$$##%%@@+....+@$:{[7/}](287/}}{{~3='$+...+#*dfaaaafaaaaasaff109^*+...",
+".+++%$&$#@#$&$##$%%%@@++.....@$:~(2_!d{_[__}]!33>':#+....%:;6aaagtfsaassjrq094;:+...",
+"..++%$&#%@@##$####%@@++......@#&~_2{~-|^]i{5!!)='&#@.....%$-0aaf1ntgjffrg1e94,:@....",
+"..++%$$#%%%%##$##%@@++++....+@@&~_/{d>b~!5]i!d>-:&#@....+##-1aaf<n<qgrjfgqeo;,$%....",
+".+.+@$$#%@@%%##$#%@+++.......@@$3_/{);;bd!i_!)-*$#@@.....@%,0aaf<ne<tgjs6<o|,$#%....",
+"...+@#$##@@@@##$#%@++++......@@$)]_{d-;-;~]/]b*:##@+.....@#:haaftnennpaaf<|;:$@+....",
+"..++%#$#%@%@@%#$#%+++........@@$)]_{b>;-;~{/{b*&$%@+.....@#:haag<nenntfaf<|,:##+....",
+"..+.@##%#%%#@##$##@+++.+.....+@#=~]~!~bb;!{_{3,:##++.....+@:i1a61t<<egfsf04;:$@+....",
+"..+.@@%####%%####@@++.+......+@@')~!!!!~3!{{!>-*&@%+.....+@#^h16ggptqpfapeo|,%#+....",
+"....@@%%####%###%@@@++........+@:)3~{{!!d!!{~)-'&#++......+%;901fa6gqgg600o4,$@@....",
+"..+.+@+##$##%@@@@##%@+++......+@$:'~]({{~d)>)~3)=:$%+.....+%-d!1aaa60q<he00h5;*#+...",
+".....++%$$$##%@@@@#%%@++.......+@$:3}[_{~)=,=3{3)=*#+......+#:;1aaaf1e5490f1e5d:+...",
+"....+.+@#&$#%@+++%##%@@+........@@#3]2}{~=*$'){!3=*$+.......@#$0aaaf19|,40f60id:+...",
+"......+@@#@@@++++@@@@+++........++%')!3==*&#:')==':#+.......+@#d06u95|-$;^h954;:@...",
+"........++@++++.++++++++.........++%***&&$#@%$&:::&#+........+@$;dd'-:$%$:,);;-$+...",
+".......+......+....+++++...........++@+@++@%@++@$$$%+..........@+#@@@@%%@%@@*'*#+...",
+"..........+.+..+.+...+...............++++@++++++@#@+.............++++@++++++#$%+....",
+"......................+.........................+++.........................+++.....",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"..........+...+.+.................++@+@+@+@+@+++..............+@@@@@@@@@@@++........",
+"......+++.++++..+++.............++@@%@##%#%@%@@@++..........+@@@##$$#$###%#%@+......",
+"....+++.++.+.+++.+++++.........+@%###$#####$#$##%@+........+@#:$::$:$:::$:$$#%+.....",
+"....++@@@+++++++++@++++.......++&'>-*&*$&$$#:*-'*$#@......+@,49o|;;,,:,:;|o4|,:%....",
+"...++##%@@@@++++@@#%@+++......+#'3!~;-,::$::,>~)=*:#+.....+$^06qeo4;;,;;49105d;$+...",
+"...+@#$#%@@@+@++@%###@++.....++#){}!);-,:*&&-~{!3>*#@....+%$efa6<no4;|;;nqf609|:@...",
+".+.+%#$#%@@+++@+@%##%@@+.....+@#)]_{d--,&***;3{{3='&+....+@:haaf<no4;|||nqff09^,@...",
+"..++@#$#%@@@@++@%%###%@++....+%#)]_{3-,,**::;3{{~)=&@+...+%*haaf<n44|b;|n<ff0e5-%+..",
+"...+%#$#%@+@+@++@%##%@@++....+@$)]_!);,,**:*-~!{~)=:%+...+#:haap<n44||||n1f6ph5;#+..",
+"...+%#$#%@@++@++@####%%+.....+@$)]_{b,,:****>~{!~)>:@+...+%*haa6<o4||b||nqffg<9;#+..",
+"..++@$$#%@+@++@+@%###@@@+....+@&)]({);,*::**-d]{!3=:%+...+#,0aaf<n4b;;||nqf61<9;%@..",
+"..++@#$#%@@+@++@@####@@++....@@$)]_^b,,::*:*-~{!~3=:%+...@%:haag<o4|;b;|npff109b#+..",
+".+.+@#$#%@@@+@++@%####@+.....@%$)]_{);,,:::*;d]{!3>:@+...%#,haag<n44;|;|nqjfq09;%+..",
+"...+%#$#%+@+++@+@%##%%@@+....+@$)](!b,,:::::>d{!~)>:#+...+#:0aageo4|-;|bnqff1<9;$@..",
+"..++@#$#%@@+@+++@####%%+.+...+@$)]_!),,*:&::;~]{!3>:@@...+#:haag<o4|;;;bnpjfg09;#@..",
+"...+%$$#@@%@@@@@%####@@@.....+@$)]({d;;,,,-,b!]{!)=*@+...+#:0aaf<eno44o4<pafg0n;#+..",
+"..++@##$##%%@@%@%#$##%@++....+@$)]_]!3|b;;;)~{(]!3>:%+...+@:haaapt<<neee1faa6<9;#@..",
+"...+@$$##########$$$##@++....+@#)](]]!!~!~~!{_/_{3=:%+...+#$haaaffgp1q1gfaaa605;#+..",
+"...++#$$##%%%@%@##$##@@@......+#={_}{!~~3333{]_}!3=:@+....@$9faafg1qqq0qfaaag05;%+..",
+"...+@###@@@@@@@@%#$##@@+.+....+#={]!3)>>=->;3!}{~>=&++....@$9fa6qe9n55nn<6af1e5-@+..",
+"....@%##@@@+++++@@#%%@@@......+%=~]~>,*&:$:&-){~~==&@.....+#i1a094|;;,;;o0f6195'%...",
+"...++%#@+++++++++@%%@@++.......@'3!)'&&&$#$$*=33>=*$+......@^06h4;,,:::,|90099d:+...",
+"....+++@++++.++++++@++++.......+$*'*$$##%##$&*''*'$#+......+:d^d,:$$$$$:,|!4dd,$+...",
+".....+++..++...++++++++.........+###@@@%%@@%%#$$###.........@$:$%%#%%#%%#:&*:$$+....",
+".............+.....+..............+++++++++@+@@@@+@...........+++++++++%@@#@#%@.....",
+"....................................+.+......+++................+.+......+++........",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"........+...+..+...................++++++++++..................++++@+++++...........",
+"......+..+++.+....+..............+++@@@%@@+++@+++............++@#####%@@@@@++.......",
+"......+++.++++++++.+.+..........+@#####$$#$##%@++@+.........@#$$$$$:*$:$$#%@@@+.....",
+"....++++++++++++.++++.+........+%$&$$&$$&&$&##$#%@%+.......+#:,,,,,,;,,,::*$##%@....",
+"...++++@@++@@+@+@++++++.+......@#*,,,,,,,*,**:::&$#@@+.....@:|4444444|4|||;;,,$%@+..",
+"....+%#####%@#%#%%#%%@@@.+.....@*3!!!!~dbb|dddd);)=:#@+....#|06gppt<<<tt<<q<ee5;*%+.",
+"...+%#$$$$#$%##$####$%@@++....+#){(_((]{!{{i]]]]{!3=:#@...+$hfaaaasrpgfjjaaaf61i;*@.",
+"...+@#&$$&$$##$$$$$$#$#%++....+#)][/[[(_{i_(____]]!>:$+...+$haaaaaasfjsasaaaaa69;:@.",
+"...++@##$$#$$#$$###%%%@@+++...+@')!{__}_i}_/}{!~~3)'$#@...+%^h6aaaasjasaafgq10hd*$@.",
+"....+@+@%$###$$$##@@@@@+.......+$:'3!ii}}_((i!>=='':@+.....+*>^06fjssasafpen954;#+..",
+".....++@@#$##$$&#%@+++@+.......++#$'3!]^]9//]d-***:#++.....+@$&oqgffjsaaj<o|||;$@+..",
+"....+.++@@%###$$$#+@+++.........@@#*-)d!!i_[}d,*:$$@+.......%#$;5eqqgjaaat4|;,*%+...",
+".......+++@@@#$$##+++++.+.......++@$&,--;{}[]d,&$##++.......+%#:;4onepsaaq4;,:$%+...",
+".....+.++++@+##&$%+++.+..........+@@#$&,,!i2}3&&$%%+.........+@#$:;44gaaa<;,:%#+....",
+".........++++%$$#%@++.+...........+@@$$:*)}/{b:$$@@+..........+@#:,;|<aaf<;,:#@+....",
+"........+.+++@#$#%++++.............+@@#$:>{/{)&$#%+............+@#$,;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<gjfgqe|$#+.",
+"......+.++@$$$%@@#$###%+++.......+@@$&3}/]3,b!}{!~)*#@+......+%#:,0aaaqo<gajgqh|$@+.",
+"........++%#&#%@@####%@+.+........+@$#3]2]~,)!i]!d=*#++.......+%::0aaaq4egfagq9d$@+.",
+".......+.+%#&##+%%###%@@+.........+@%$3][{d,b~]{!3>:#@.......++%$&0aaa<o<pjfg<9;$%..",
+"........++@$&##@%#$##%@++.........++##)]2]d,;!]!!~=*@+........+%$:haaat4epafgq9|%@..",
+".......+.+@#$$@@@###%%@+.+........+@@$)][]3-;!i{~3>:%@........+@#:haaa<oepff109;#@..",
+".........+%#&$@+@##$#@@@...........@@#){[]3,;!{]!)=:@+.........@%$haaa<4ngafp<9;#+..",
+".......+.+@#&##%%#####@++..........+@#)]2]!;3{}{!3>:%+.........+#$haaapeqfsa609;#+..",
+".........+@$&$#%#$$##%@++..........++#)_2_{3!}(]!3=$@+.........+@$eaaa6qgaaa605,#+..",
+"........+.@$&$###$$$#@@+...........+@@)}7/]!{_/_!)=&@..........+%#haaaa6faaa6h5-@...",
+"..........@%##%@%%##%@++............++'~]!3)~~]!3=*$+...........+@^1a60e16f609|:@...",
+"........+.+@@@@+@@%@@+@+............++&=)=':=)3)=':#+...........++'ih9!|5h0ei4;$+...",
+"...........++++.++@+@++..............++#$$$%&:'':&#@.............+@$:*&$,;!4)-:@....",
+"...............++++++++...............++@@@@$$:$$##+..............+@#%##:,;,:$$+....",
+"...........+.+...++....................+@++++@##@++................+%++@@#$$%%+.....",
+".............................................+.+.........................+.+........",
+"....................................................................................",
+"....................................................................................",
+"....+++++++..+.+.+..+..........+@###$##@+%+@+@+++..........+%$:::$$%@%@@@@+++.......",
+"...++@@@+++++++++++...........@#:=>=**:&##$$$#@++++.......%$;o9o4|;,$:*,::#@@++.....",
+".+++@###%%@+++++++++++.+.....@#$=~!~3>,:&::*:&$$%@+@+....%$,91600n4;,;;|;,:*$%@@+...",
+"..++@#$##%@@++@@@++++++......@$:3]_{!3>,&*'=-'&&$#%+++...%*)0aaa6qe4;|4oo4;,:$#@@+..",
+"..++@%####@#@%%#%#%@@+@@++...+#&=~]!!~)d;))d3~~))='*&#@..@$-91a6gq<<e<<q0q10eo^|-:@.",
+"...++%%%%%########$$$#%@@++..+@$'3~~~~!!!^!!!](}{!~>=*#+.+#:!0101qgp6g6gfaaaf6095d*+",
+"..+++@%%#%#$$##$$&&&$$$#%@++.+@#*=)3~d!___]}([77(_]!3>&@.+#$|oh<qqgsaaaaaaaaaaa609-@",
+"..+.+@@@%###$####$$$$##%@@+...%@:'-)d!]]_]!!]_//_{{~='$+..%#;4n<qgffaaggaaaaaa619!:+",
+"...+++@@%###$#%@##$$##%@+++..+@@$*-;~!5{_{~;!]__{!3=':%+.+%%*|oeqrraagqegfaaf6u94)$+",
+"....++@@####$%%@@####@@@++....+%#$,>4{{]i~b,>!{{!3='$#@+..@#:,|epfjfjg<4egff609d,$#+",
+"..+.++@@##$##%@+@@%%#%@@++....@%$:,)!]i{]~>,>)~~~~)'##+...@%:;4<6fjffqn4n<g1qqe4:$%.",
+"...++@@##$####%+@@@@#@#++.+...@@&'>~{_]]!d>:,=)>~33'$%@+..%#;49tfsjjgqn|45ee1004:#@+",
+"...++@@##$$##@%++@+@%#%@+.+...@%:-)!]_}{!3;:**,=3!3=$@+...@#;oegaasffqnb|b49<615,#@.",
+"..+.+@#######%@@+++@%##@++....@@*)~!i]i]!b-:&&:=3!~=$%@...%%d<1gjajfg<o;;;;o0f05:%%.",
+"...+@########@@++++@%##++.....+#>!}{!~!!!)-::&&=~]!=&@+...+$96afpqggg<o;;;;o1af9,@@.",
+"...+%$$$%@@@#%@+@++@%$$%++....@#3}(]d;)3!)-::&&=~_]>$@@...%: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<o<6aa09^;:$@.",
+"......+.++##$$#%####%@+++........+@%$:3]/}^d!!{!)':$#+.......+@$:;<aasrtgga6h4;,$@..",
+"......++.+@#$$#$###@@++.+........+@##$3{((]]]!!3=*&#@+.......+%$:,<faaaffrp05|,$%+..",
+".......+++@##$$$##%%+++..........+@#$:;!}_(/]{3):$#+++.......+@:,;egsaaaa6qe|:$%++..",
+"......++++%#$$$&$#%@@+++.........+%#$:3{_(/2_{3=*##@+........@%$,;<6saaaag<5|:$%+...",
+"....+..+++@##$&&$#@@++.+........+@@$&:;!]h[7/!>-*$@%+.......+%#:,;egaaaaageo|:%#+...",
+".....++++@@##$&&$$@@+++........++%##:*b!}/78/5>,$$#++......++#$:;|<psaaaafn4,:&%+...",
+"...+.++@@@##$$$&$#%+@.++.......+@$:,->~!i_/2_{3=,##@+......+#,;4oeqgjaaaafqn4:$@+...",
+"...++@@###$####$#$$#@+.+......+%:'=~{]}]}i]i}}}!>$#@+.....+#;49q6aaaafajsaa69,$#@...",
+"...+++%#$&$$###@#$$$#++.+.....+#*=~]/2__{{~3{_/_3*#%@+....%$d90aaaasff1<faaa0|:%@+..",
+"...+@%##$$$##%@@%#$##++++.....@$'3!]_/_]!~>=~{/]~*&#@+....@:^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<aaaae;,::,45h1f0^:+..",
+"....++@#&&$%@++++@@####@+.....+%$*=][8_)*:$&&=)3{]!=#+....@%,|9aaaj<|;,,;5h1faf5$+..",
+"...+++@%$&#%@@+++@%#%%%++.....+@$:'~}2}d-,:&,=~~~3)&@+....+@*;4gaaaqo4;,491110h;#@..",
+"....+++##$##%@++@%#%%@++........##:~]_{~;-*$=)!~)=*$@+.....+$:;0aaaqeo|,oh61hid*@+..",
+"......+@#$##@%@+@@$%@+++.......+@@#>!_]!3;,&=3{~=:$#+......+@%:n6ajgte4;o0f09;:$+...",
+".....+++@###$#@++@@@+++.........+%$')!{]}d-:*=)=*$#++.......%#:^h66aa<o;d5hid-$%+...",
+"......++@@#$$#%++@@+++.+........++%:-)!}/{;:**'*$#@+........+@%;oegaaje;||^|:$@%....",
+".......+++#$&$%@++++.+...........@@#$*!_8}3:&&#$@@@+.........%#:,dgaaa<;;,::##@+....",
+"........++@#$#@@@++++.+...........+%$:){_{3>,:$##+@+..........+#,;hfafqn4;:$$%@+....",
+".......+.++@%%##%+++.+............++@$')~~!!3*&##@++..........+@#:4h016p<4,$$@@+....",
+"........++++@%#$#@.+.+.+...........+@@#:'3!}~=#$@%++...........+##:;406a1o::##@+....",
+"..........+++@@##%@@++..............@%#$:=3!~)=*$#@+............@%$,;9061eo|,$%+....",
+"...........+.@@@@%%%+++..............+@##*=)333)*#@@.............+#$:d50000e|:#%....",
+"...........+.+++%###@+++..............+@@$:*)~]~>:#%..............+@%:;be6a19;$#....",
+".............++++%%%@++................++#$&')~3=:&@+..............+@$*;!hguo;,%+...",
+"...............+++@@@@@+................++@$&*='='*$+...............+@%&-d5^5^d*+...",
+"...............++.+++@@+..................++%#$:*='#+.................+@%$*;d54*@...",
+"...................+++++...................++++#&'*$+..................++@@*,^d:+...",
+"....................+++.....................+.++#$#+....................+.+@$:$@....",
+".................................................++..........................++.....",
+"...................................................................................."};
--- /dev/null
+#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};
--- /dev/null
+/* 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<<uz;+..",
+"..+#&#@+@#+....+*~7!-')~$++..+duvuo4eu-...",
+"..+@&#@@++.....+:~2{,:::+...++;uaf4b;;#...",
+"..+%#$%++..+...+$)/5>'&@+....+*(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:...",
+"...+@%#$%@+.....%:=)~}{)#.....#;5<qffh:.+.",
+"..++%@##$%+..+..@$;~^_])$+.+..#>n0czf0*+..",
+"..++#$$&$++....+$'!_([}>#....+&4xwvas9:...",
+"..+%$$%#%@.....@:3/_{{3*#....%b2av6f[d#...",
+".+%#&#@@++.+...@>{[{b'*%+.+..%ilafe5b&@.+.",
+".+@$##@++...+..%)}}3,'&#+....#/saq4|-$+...",
+"..@##@@%%@.....@=!]~,===@....@56a<oni^#...",
+"..++$#@###+....+&>]~=!{~$.+..+'nzgn7f6*...",
+"..++@%@#@@..+...%:;~~!3=%.....#>eq16[i#.+.",
+"...+++#@@@......+#:=)3=$+.+...+#>5hhi*@...",
+".....+.+.....+....@###@+....+..+%#:$#+....",
+"..........+......................+....+...",
+".+..++++.........+$::#+..+....+@*)b&@...+.",
+"...+%##@+..+..+..$=!~'&@...+...&9174'%....",
+"....+%##%+.......%')!{)&@......$!hgf(-%...",
+"+..++@@$#@+.+...+#$=3}{=&+....+#,o1wli*@..",
+"...++@@##$@...+.+#$->^}}'%.+..@$-oe1zz4#..",
+"+..+@###&&@+....@*3~^][2=#....#b[78lvai$..",
+"..@%$$$$:&@+...+$)(_i(76)$+..+*9avzsaah:+.",
+"..+#$#@@$&#+...@=!/{d~}2>$+..@^lax<qza9*@.",
+".+@#$#@@#$@+.+.@3]}d--^/=$+.+#haaqonfa5&@.",
+".+%##@@+%&%....%)]})--{[=$...#/vv<45fa5&+.",
+"..@#$%%%$$@....+'!}!-b]/-#...@!8a1oela4#..",
+"..++$#@@%$@.+..+#>}~>~{]:@...+*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<ul!#..",
+"...+&$%##&@...+.+=[])d}/=#...+%!vfq<lai$+.",
+"...%&##@$&#+....%=2idb_[)$@...#!alqtzan:@.",
+".+.@$#$$$$%+...+@'_((/[[>$+...$!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<z04%.",
+"..+@&$+%#$#+...+#)[^>-d_~'@..+:9a6nnqv1!%.",
+"...%$$#@%$@@...+#;2_dd](3:@..+:}al0<la0b%.",
+".++@&&&$$&@+.+.+#=72(_/(>$+..+$iaaasaa9*+.",
+"...@#&$$#@@+....@,}//{!~*@....$|zaau67b@..",
+"...+@#$@@+......@&b}_d':%+....%-<zs<^>&@..",
+"...++#$#@++.+....%:!_{)$@++....#;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%.",
+".+%#@@@$###%+.+#~{)==(}!~)$++:[l<o9asgp9'@",
+".+##+++$#@%%@++&!{'*=_{)~3=#@-uu^|owfe104:",
+"++%$@@@##%##%+#*!{*:,!!~3~3:#dlf4>46y1q01>",
+".@#%+++@##@##+@'{],&:>!]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<saq9o4*..",
+".+@@@#&@@++...%$*,>}/3-*:%..#'|onzv<ob-$..",
+"...++#$@++.+...@##:!('$#+....@$&;fa4,$%...",
+"...++%$++....+..+@$!_,#@..+...+#*uz4&@..+.",
+"....+#$@+........@#!_'$@.......+$fz4$@....",
+".....##++..+......#~_=$+....+..+%uv9,+....",
+"+....@#@+....+....+){'$..+......@_u!:.+...",
+"..+.+++........+...%#@+......+...#:@+...+.",
+"........+.................+...............",
+"......+...+..+..+..%%...+......++$$...+...",
+"....+@@..........+&==@......+..+*!i$......",
+".+..+%$..+....+..+#3!#....+....+$hu:....+.",
+".....@$+...+......@~]&.+........$8u'.+....",
+"....+@$+.........+@3}&......+...$uu)+.....",
+".+...%#++....+...+#~]:@..+.....+#ul=+.+...",
+"...++##+..+....+.+%~]:@......+.+$uz;@...+.",
+"....+@$++........+%~_:%...+....+#uz3#.....",
+".+..+@$+....+....+@3}*%+........#6ud$+....",
+".....%#%++...+....%3]=$+..+.....#/z^*@+...",
+"...+.@@#@......+..+'~~=%....+...%!76^#..+.",
+".....+@#@+.........#'{3&+........&5uh'@...",
+".+....+@@@.+.....+.+#*''@.+..+...+&3^!%...",
+"........++....+......+$:+.....+...+@*;@...",
+"....+.......+...........................+.",
+".+.......+....+...+.......+...+....+......",
+"................+...++++....+...++++++....",
+"...+.++++++......+#&$&&$$#.....+&:*'--*$..",
+"...+#%%%%%%@.+..+#)33))3)*%...+*h0e<h0ed#.",
+"+..+##%####%+...+*{!d!!!{3$+..@)l61qqqfh:+",
+"...@$#@@@#$%+..+@=({b;dd_~&@.+$!ay<t<pz6>@",
+"+.+@$$##$#&#@..+$=_}^^{i(]:@.+:nvzcgyxvu;#",
+"..+##$$$$$$#@..@'3__(9((({*%.@3[vsszwvaf|#",
+".+%#$##$#$$#@+.@3}_9__([_!=#.#2sszzsvas6o$",
+"..%#$#$$$&%%@..%>!}ii5(0i)*%.%_flmxxaaf<|#",
+"..++$#%#$&#@+..+#-]{{5(2^-#+.+&^lyggsac4*+",
+"...@$##@###++...#,(5~d^]!=#..+$4sxpp6fg5$.",
+"..++$#@#@%@@.+..@'}^|b)>>*@...#dw6t<ehe|@.",
+"...+###@@++.....+$!{!d>:$@....+>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<afd&@..",
+".++@$##&#+++..+$$=({~/{=&#..+:*5vx0v64-$+.",
+"+@@@$$%:$@@+..#'>~/}{29;=:@.$557alfalh5;%.",
+".##$&#$&&##@+.&{~]2/98/^3=#+=ffuavzavr0o&.",
+".+@@&$%$$@@+..%'=3[]^[_3>:+.$d52af6alq5;#.",
+"..+@$#%##@++...+#-(^b}^b&#@..%:^ar<zceb$+.",
+"..++$#@###@+...+%*_!;~!!:#....#~v1ngcgb$+.",
+"...+$@@+##+.+...+:}),>3!*#+...+;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<gx1n-#..",
+"..#$@@@$@@+...+%!}>;3_~*#@..+&uzee<w8b&@..",
+".+@#%%###@+...+@3!~;d]!*#+..+#[f<e<z1|$%..",
+"..+%##%#@@+....+=~{!~~3-$@...@^1lg1cq5*%..",
+"..+@$#%+%%%+...+#>(]3=)~=$...+:]azq5e75'..",
+"...@%@@+@%%+.+..+:!3=$'3=&....@-u75*4[o>..",
+"+...+++...++.....+##@@@%&$+....@:$###$-&+.",
+"...................+...+++..+.....+...@+..",
+"+......+.....+............................",
+"..+.......+....+..+.+...+.....+..+....+...",
+"...+...+.........@+@%@@@...+...@@#%#%@.+..",
+"..+@+++++++.+..+$:$$$#&:#+...+:>'*::'-:@..",
+"..@#%+++%%@+...@)~=*:&=~=:...#(cnd>;o7^'..",
+"..##%+++@#%+..+@!])'::)!)*+..$uze4bbemhb+.",
+".+%$%@@+%#%@...#~];,**){3'@.+$ufe4||ex04%.",
+".+##@++@@##@..+$~]>*:*){3'@.+&fzn4;|efq!%.",
+"..##%@@+@$@@..+#!i;,::b{~'+.+$ufn4;bex04%.",
+".+##@++@%$%@...#~];'::){~,@.+$fl94;|<f14%.",
+"..#$%%%@###@..+%!}~;;)!}~'+..$uvpene6v14@.",
+"..@$#@%@#$#@...@~]{~)~{_~,@..#8a6q00ua1~@.",
+"+.%#@@+@@#@@...+3!>***)!)*+..@/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|%.",
+"..+++%$%@##@....%&'{()~]~'@+..$;4fae<zg5$.",
+"..+@%$&##$##+.+.&=3_[!](]~:+.+'i[va6fvl/;@",
+"..+@@$&#$$$%@...&=3_[{]/}~*+..,i7vaflav1b@",
+"...++#$@###@+...+$:{/3!}!=$+..@:)uahguy9:+",
+"....+#$@@##@.....@$!_b3]~=@....#,uae1lg5#.",
+"....+%$%###@..+..+$!_;d{~'%....+&fanqf14#.",
+"+...+#$@@#@%.....+%!_>d]~'@+...@$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<z0^:+",
+"....+%$###++.....%${_^!!'&%...+#,fv66fi-#.",
+"...++##$#%++.....#$~_/]3:@+.+..#-1vvf0>#+.",
+"....+@$&$@+.+...@%: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!$..",
+"+.......++@++........@$:':.........@:;^;+.",
+"....+.....++.....+....+@$$..........+@':..",
+"+.....+.......+.............+..+.........."};
#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;
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;
--- /dev/null
+.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 <jwz@jwz.org>, 27-Apr-99.
typedef struct
{
- char *anDeltaMap;
+ signed char *anDeltaMap;
double nVelocityX, nVelocityY;
double nAngleX, nAngleY;
float nExtentX, nExtentY;
static void InitShadeBob( SShadeBob *pShadeBob, Bool bDark )
{
double nDelta;
- char iWidth, iHeight;
+ int iWidth, iHeight;
if( ( pShadeBob->anDeltaMap = calloc( nBobDiameter * nBobDiameter, sizeof(char) ) ) == NULL )
{
* 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
/* 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));
/* 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);
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 <jwz\@jwz.org>\n" .
" http://www.jwz.org/xscreensaver/\n";
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=" .
"&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";
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/(<A )/\n$1/gi;
foreach (split(/\n/)) {
next unless ($u =~ m@^http://@i); # skip non-http and relative urls.
next if ($u =~ m@[/.]altavista\.com@i); # skip altavista builtins
+ next if ($u =~ m@[/.]av\.com@i);
+ next if ($u =~ m@[/.]virage\.com@i);
+ next if ($u =~ m@[/.]photoloft\.com@i);
+ next if ($u =~ m@[/.]shopping\.com@i);
+ next if ($u =~ m@[/.]thetrip\.com@i);
+ next if ($u =~ m@[/.]cmgi\.com@i);
+ next if ($u =~ m@[/.]intelihealth\.com@i);
+ next if ($u =~ m@[/.]wildweb\.com@i);
next if ($u =~ m@[/.]digital\.com@i);
next if ($u =~ m@[/.]doubleclick\.net@i);
# to an image. Returns two URLs, both of which are the URL of the image.
# Returns () if nothing found this time.
#
-sub pick_from_photo_randomizer {
- my ( $timeout ) = @_;
- my $n = ($photo_randomizer_lo +
- int(rand() * ($photo_randomizer_hi - $photo_randomizer_lo)));
- my $url = $photo_randomizer . $n;
- return ( $url, $url, "photopoint" );
-}
+#sub pick_from_photo_randomizer {
+# my ( $timeout ) = @_;
+# my $n = ($photo_randomizer_lo +
+# int(rand() * ($photo_randomizer_hi - $photo_randomizer_lo)));
+# my $url = $photo_randomizer . $n;
+# return ( $url, $url, "photopoint" );
+#}
# Picks a random image on a random page, and returns two URLs:
$total = ++$total_1;
$count = ++$count_1 if $img;
- } elsif ($r < 70) {
- ($base, $img, $source) = pick_from_photo_randomizer ($timeout);
- $total = ++$total_4;
- $count = ++$count_4 if $img;
+# } elsif ($r < 70) {
+# ($base, $img, $source) = pick_from_photo_randomizer ($timeout);
+# $total = ++$total_4;
+# $count = ++$count_4 if $img;
# } elsif ($r < 80) {
# # HotBot sucks: 98% of the time, it says "no pages match your
which ($_) || die "$progname: $_ not found on \$PATH.\n";
$_ = `$_`;
($img_width, $img_height) = m/dimensions: *(\d+)x(\d+) /;
+ if (!defined($img_height)) {
+ die "$progname: xdpyinfo failed.\n";
+ }
}
my $bgcolor = "#000000";
#ifdef HAVE_XPM
# include <X11/xpm.h>
# 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 {
int char_width, char_height;
m_cell *cells;
m_feeder *feeders;
+ Bool small_p;
Bool insert_top_p, insert_bottom_p;
int density;
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))
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);
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)
{
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",
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;
if (insert)
free (insert);
+ init_spinners (state);
+
return state;
}
{
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)
;
if (cell->glyph && cell->glow == 0)
{
cell->glow = random() % 10;
- cell->changed = True;
+ cell->changed = 1;
}
}
}
else
f->y = -1;
}
+
+ if (! (random() % 500))
+ init_spinners (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;
}
}
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" },
--- /dev/null
+.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 <jwz@jwz.org>, 25-Apr-99.
#include <X11/SGIScheme.h>
#endif
+#include "yarandom.h"
#include "usleep.h"
#include "resources.h"
#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 */
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)";
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.
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.
Name: xscreensaver
Summary: X screen saver and locker
Vendor: Jamie Zawinski <jwz@jwz.org>
-Version: 3.18
+Version: 3.19
Release: 1
URL: http://www.jwz.org/xscreensaver/
Source: xscreensaver-%{version}.tar.gz